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

Rachita Kothiyal rachita at in.ibm.com
Sun Oct 22 20:56:38 UTC 2006


On Thu, Oct 19, 2006 at 01:00:43PM -0700, Ben Woodard wrote:
> 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.

Hi Ben

You are right, my bad.
Thanks to Dave who now has it fixed :)

Rachita

> 
> 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