This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: backtrace not working on mainline x86_64
- From: "bibo,mao" <bibo dot mao at intel dot com>
- To: jrs at us dot ibm dot com
- Cc: SystemTAP <systemtap at sources dot redhat dot com>
- Date: Tue, 11 Apr 2006 10:41:37 +0800
- Subject: Re: backtrace not working on mainline x86_64
- References: <443AD8AA.8020702@us.ibm.com>
- Trustexchangesourcedmail: True
In recent x86_64, process kernel stack is different from trap stack, I
modify runtime/stack.c _stp_stack_sprint() function, the original is
__stp_stack_sprint (str, (unsigned long *)®_SP(regs), verbose, 0);
__stp_stack_sprint (str, (unsigned long *)REG_SP(regs), verbose, 0);
It works well for x86_86 in recent kernel version, this is only
temporary method.
Jose R. Santos wrote:
Hi folks,
I've notice that on x86_64, the way in which we walk the stack has
changed and this breaks backtrace() on mainline kernels. There are a
couple of dependencies that make coping the kernel's show_trace()
function not very straight forward. My hack seems to partially work but
also crashes the system from time to time. Has anyone experience this
or have a fix available that would work with 2.6.16 kernels?
Thanks
-JRS