Hi, I've been playing around with extracting the frame pointer from rBP register and using that to perform backtracing on the x86_64 platform. With a non-threaded user application, I was able to do that successfully. However, when attempting to do that with multi-threaded app, this seems to fail on spawned threads (not the main thread). I am running 2.6.13-rc5, and I have attached my test application source and the .config I used for the kernel. The test application is compiled as: gcc -Wall -fno-omit-frame-pointer -lpthread -o ttest1 ttest1.c Basically the test application registers a signal. After the threads are spawned, the main thread uses pthread_kill to signal the target threads. The signal handler then extracts the user context and then dumps out the rBP register as the frame pointer. When the main thread signals itself, the rBP looks to be a valid pointer. However, when the signal handler is executing under the spawned target threads' contexts, the value of rBP shows up as 0x00000000ffffffff consistently. I dumped out the rBP value in pt_regs that is passed to arch/x86_64/kernel/signal:~462: do_notify_resume() from entry.S, and the rbp value in pt_regs is also 0xffffffff. So basically the value that was copied from kernel to user context is "bad". Am I doing something wrong, or is this intended to be this way on x86_64, or is something incorrect in the kernel? This method works fine on i386. Thanks for any help! -- Dave