GDB shows incorrect flow in post-mortem analysis

I am experiencing strange GDB behavior. When starting a posthumous analysis of a kernel dumped from a highly multithreaded application in C ++, a debugger command

bt
where
thread info

never tell me the thread that the program really broke. He continues to show me thread number 1. Since I'm used to seeing this work on other systems, I am curious if there is a bug in GDB or if they somehow changed the behavior. Can someone point me to a solution to this issue, this is PITA to search through 75 threads to find out what Debugger already knows.

By the way, I'm on Debian Squeeze (6.0.1), the GDB version is 7.0.1-debian, the x86 system, and fully 32-bit. On my old Debian installation (5.x), kernel debugging flushed by the same source provides me with the return line of the correct thread, as well as GDB on the Ubuntu 10.04 installation.

Thank!

+3
source share
1 answer

GDB does not know which thread caused the crash, and simply shows the first thread that it sees in core.

The Linux kernel usually unloads the crash stream first, so on most systems you get exactly the right stream as soon as you load coreinto GDB.

I never saw the kernel where it was broken, but I never used Debian 6.

I assume this was broken and then fixed, and Debian 6 with a broken kernel.

​​ Debian 6, , . Ubuntu 10.04 , .

, Google coredumper . SIGSEGV.

+3

All Articles