How to get stack from every thread when doing crash dump?
Marcel Moolenaar
marcel at xcllnt.net
Tue Jul 5 00:21:11 GMT 2005
On Jul 4, 2005, at 4:14 PM, Ed Maste wrote:
> I tried changing the linker script to put both in the .debug_frame
> section, but ld faild ("Not enough room for program headers"). The
> .eh_frame section is marked loadable, so it seems ld still tries to
> create a phdr entry for it. Once I can figure out how to address
> that I'll test out adding the .cfi_ pseudo-ops to exception.s.
This will not resolve the problem. The problem relates to how signal
frames need to be handled in userland code. In order to unwind across
traps and signal frames, the debugger needs to know 2 things: which
functions are for kernel entry (or signal trampoline) and how to get
to the saved registers. Only the first can possibly be addressed by
unwind information. One still need to teach the debugger about the
trapframes (or signal frames) themselves.
I'm working on the import of GDB 6.3, which allows us to handle this
case by registering special frame unwinders.
Adding .cfi directives is probably a good idea, but it needs a bit
more work to fix backtraces.
--
Marcel Moolenaar USPA: A-39004 marcel at xcllnt.net
More information about the freebsd-arch
mailing list