我是Windows編程環境的新手。所以,如果你能幫助我這個將不勝感激:pdb不匹配或未找到 - 在Windows中調試
我有一個應用程序Controller.exe
,我建立在TeamCity
構建服務器。該應用程序的生成生成exe
文件和pdb
文件。
當我在部署機器上運行Controller.exe
時,它會崩潰並生成轉儲。
在應用程序中我已經啓用傾銷崩潰有以下:
unsigned long stackSize = 16384;
SetThreadStackGuarantee(&stackSize);
SetUnhandledExceptionFilter(WriteLargeMiniDump);
功能WriteLargeMiniDump()
成功寫入轉儲。我知道這一點,因爲當我在開發計算機上運行Controller.exe
時,它會生成轉儲文件,我可以成功打開它並在源代碼中查看崩潰行。
但是,在由TeamCity服務器生成的exe
和pdb
的情況下,我無法調試轉儲。當我在visual studio 2015
中打開轉儲文件並嘗試到Debug with Native Only
時,它表示pdb
未加載。
我搜索了一下,檢查pdb
文件是否正確。於是我下載了Debugging Tools for windows
其中symchk.exe
。
當我運行symchk.exe
它提供了以下錯誤:
SYMCHK: Controller.exe FAILED - Controller.pdb mismatched or not found
SYMCHK: FAILED files = 1
SYMCHK: PASSED + IGNORED files = 0
Controller.pdb
是在同一個目錄,我複製從TeamCity
服務器生成的exe
。
我在這裏錯過了什麼嗎?
什麼是二進制的文件大小?我們在這裏講的是本地C++還是.NET程序集?這是一個奇怪的錯誤,它幾乎聽起來像.pdb由於複製錯誤或雙寫錯誤而被切碎。 –
@ justin.m.chase'exe'大約2MB,'pdb'大約15MB – Monku
請看看時間戳記。也許構建已被更改爲不生成調試數據庫,並且您正在複製過時的pdb。 – IInspectable