我遇到了一個奇怪的GDB行爲。當運行一個核心的事後分析,從C++中的大量多線程應用程序傾倒,調試器命令GDB在事後分析中顯示錯誤的線程
bt
where
thread info
從來沒有告訴我,該程序實際上崩潰的線程。它一直向我展示線程號1.由於我習慣從其他系統看到這個工作,所以我很好奇它是否是GDB中的一個Bug,或者它們是否以某種方式改變了行爲。任何人都可以指出我的解決方案,它是PITA來搜索75個線程,只是爲了找出調試器已經知道的東西。
順便說一句,我在Debian Squeeze(6.0.1)上,GDB的版本是7.0.1-debian,系統是x86並且完全是32位。在我以前的Debian(5.x)安裝中,調試一個由完全相同源代碼轉儲的內核,爲我提供了正確線程的回溯,就像Ubuntu 10.04安裝中的GDB一樣。
謝謝!
當GDB初始化並讀取核心文件時,它不給出終止摘要?通常包含活動線程摘要。 – wallyk 2011-05-19 17:28:47
今天啓動後,我重新編譯了源代碼並讓它再次崩潰。 GDB現在像一個魅力。現在我更加困惑......但無論如何感謝幫助。 – user761451 2011-05-20 08:47:18