2009-06-26 122 views
0

我在某些C代碼中發生了一些崩潰,這些代碼沒有調試符號,而且我只用調用堆棧的絕對地址進行回溯。這是在窗口(64位)上。我更像是一名Linux員工,所以我在如何研究調試方面有些遺憾 - 在Linux上,我會運行valgrind下的代碼,但AFAIK,Windows 64位不存在這樣的工具。在沒有調試器的情況下進行調試

我有什麼選擇?我可以隨意修改C代碼,但是我無法使用調試符號來構建它。我無法使用調試符號構建的原因是我的二進制文件不是使用MS工具構建的(它使用mingw-w64構建)。

回答

1

您需要生成一個映射文件。映射文件列出了可執行文件/二進制文件中各種公共符號(函數,全局變量等)的地址。通常它可以通過將特殊開關傳入鏈接器來生成。

MSDN reference for /MAP

+0

我不使用MS編譯器,所以我不能使用這個 - 我編輯我的問題,使這個更清晰 – 2009-06-26 11:50:28

0

你或許應該使用的銘版GDB的,通過它可以瞭解嵌入二進制符號。

相關問題