[Crash-utility] [RFC] Crash patch for DWARF CFI based unwind support

Ben Woodard woodard at redhat.com
Thu Oct 19 20:00:43 UTC 2006


Rachita,

Just started playing with this. I think something will need to be done 
to the make system to make this work properly on ia32. I just tried to 
compile a patched version crash and I got:


cc -c -g -DX86 -D_FILE_OFFSET_BITS=64 x86_64.c
In file included from x86_64.c:17:
unwind_x86_64.h:1:1: warning: "BITS_PER_LONG" redefined
In file included from x86_64.c:16:
defs.h:2509:1: warning: this is the location of the previous definition
In file included from x86_64.c:17:
unwind_x86_64.h:5: error: conflicting types for 'size_t'
/usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h:213: error: 
previous declaration of 'size_t' was here
make[4]: *** [x86_64.o] Error 1
make[3]: *** [gdb] Error 2
make[2]: *** [all-gdb] Error 2
make[1]: *** [gdb_merge] Error 2
make: *** [all] Error 2

Obviously, we shouldn't be compiling the x86_64 stuff for ia32 so that 
is why I'm thinking that some makefile tweaks are necessary.

BTW the customer site that I'm working at LLNL is VERY VERY interested 
in this and basically made it my top priority to put it through its 
paces. As you update the patch please keep me in the loop.

-ben

Rachita Kothiyal wrote:
> Hi Dave
> 
> The following patch adds support for DWARF CFI based stack unwinding
> for crash. Since this method uses the call frame instructions for 
> unwinding, it generates better backtraces than the existing backtrace
> mechanism. So when we have the unwind info available, this new method 
> will be called, else we fall back to the existing mechanism.
> 
> There still are a couple of things which need to be done, viz
> 1. Extend to obtaining unwind info from modules as well(currently
>    doing only for the kernel)
> 2. Currently reading the unwind info from eh_frame section only(ie
>    __start_unwind to __end_unwind). Need to add facility to read from
>    the .debug_frame(if .debug_frame is present in cases where .eh_frame
>    is absent. Will have to read from the vmlinux if we want to read the
>    .debug_frame info)
> 3. Add FRAME_POINTER support.
> 
> Please provide your suggestions and comments.
> 
> Thanks
> Rachita




More information about the Crash-utility mailing list