2014-01-12 21 views
1

我有一個exe編譯與mingw但通過Windows MiniDump函數生成核心轉儲。如果我在WinDbg中打開核心轉儲,請將調用堆棧地址複製到文本文件中,然後通過addr2line運行它。但是,肯定會有更好的辦法。有另一個調試器可以解析gcc和minidump文件生成的調試信息嗎?如何從通過Windows MiniDump調用生成的核心轉儲獲取堆棧跟蹤?

+1

通常,如果您在windbg或visual studio調試器中打開轉儲文件,它將自動加載符號(如果它們可用並給您一個調用堆棧)。您是否擁有生成轉儲的可執行文件和PDB文件?總是讓它們可用的一種好方法是使用符號服務器來存儲它們。 –

+0

@RetiredNinja正如我所說,可執行文件是建立贏mingw-gcc,因此沒有PDB文件。 – chacham15

+0

http://blog.morlad.at/blah/mingw_postmortem –

回答

0

您可以使用幾種工具(Visual Studio,WinDbg,DebugDiag)從小型轉儲中提取調用堆棧甚至診斷。我已經寫了一個簡短的「如何做」指南,which you can find here

如果您只看到地址,而不看到實際的函數調用名稱和位置,則很可能是您使用的工具的your symbol path is not set up correctly或者應用程序的.pdb文件丟失(和/或您還沒有設置符號服務器)。