[Crash-utility] crash version 4.0-4.1 is available

Vivek Goyal vgoyal at in.ibm.com
Tue May 1 11:24:44 UTC 2007


On Fri, Apr 27, 2007 at 12:12:29PM -0400, Dave Anderson wrote:
> 
> - Implemented dependable backtraces for the x86_64 architecture. (!!!)
>   This feature builds upon the current "low_budget" backtrace function,
>   and also required the fix for the BUG()/ud2a disassembly problem
>   addressed in 4.0-3.22.  It does not require kernel unwind support,
>   but rather it calculates function framesizes by disassembling the
>   code from the beginning of the function to the point where it calls
>   the next function, parsing for add or sub instructions on the rsp,
>   and for push and pop instructions, thereby determining the framesize
>   of the function at the point of the call.  This is similar to what is
>   done for x86, but requires far less hackery.  You will notice a slight
>   hitch the first time a "bt" is done on a task, but for each text
>   return address in any backtrace, its framesize is cached for all
>   subsequent instances.  It also accounts for backtrace text return
>   addresses from the .text.lock section, by appending "(via function)"
>   to the end of the frame line.  Also, because it layers on top of the
>   current backtrace code, it does not compromise the capability of
>   switching between the process, IRQ, and exception stacks.  That all
>   being said, 100% accuracy cannot be guaranteed.  But for the ~30
>   sample dumpfiles I keep around for x86_64 testing, I cannot find any
>   obviously invalid backtraces.  However, if there is any doubt, the
>   "bt -o" option will perform backtraces using the "old" manner; and
>   "bt -O" will force the old manner to always be used.  Of course the
>   "bt -t" and "bt -T" options are still available.  It's interesting to
>   redirect the output of "foreach bt" to a file using this version, and
>   then compare it with the output from an older version.
>   (anderson at redhat.com)
> 

Hi Dave,

Why to go for this approach? Does it give better backtraces as compared
to retrieving the information from kernel vmlinux (unwind info) or
from debug sections? 

Thanks
Vivek




More information about the Crash-utility mailing list