1

我在一個文件夾中編譯了我的應用程序的調試版本。現在有所有的dll,pdb和帶有pdb的exe。 我現在用Taskmanager創建了一個從此路徑開始運行的應用程序的MiniDump。現在,我可以在Visual Studio 2010中打開這個dmp-File。但是當我嘗試調試時,會出現一條消息,指出找不到符號。我已經將我的符號(pdb)的路徑添加到Visual Studio中的符號路徑 - 但沒有成功。我也嘗試在模塊的ContextMenu上加載符號。它在那裏搜索MyApp.pdb,我選擇了正確的pdb。但我收到消息A matching symbol file was not found in this folder調試MiniDump

我能做些什麼來驗證我的MiniDump與Visual Studio 2010(所以它會找到我的符號)驗屍調試?

回答

1
  1. 做你的PDB和dll具有相同的時間戳?重建時它們是否都被重新創建?

  2. 嘗試使用chkmatch來確保您的dll和pdb匹配。

使用chkmatch這樣: chkmatch -c MyApp.exe MyApp.dll

輸出應該是這個樣子

調試信息文件:
格式:PDB 7.00
簽名:{ef4bc52f-0161- 4e0a-8654-cc1368d7a8a6}年齡:1

結果:匹配

如果您的pdb與您正在轉儲的exe位於相同的位置,您不應該需要設置符號路徑。

你在使用.NET 4嗎?

+0

@wal - 是的他們有相同的時間戳。 chkmatch給我的結果 調試信息文件: 格式:PDB 7.00 簽名:{0c98df34-162a-4fed-ab4a-2f241f7d1ffc}年齡:1個 結果:匹配 是,我使用.NET 4 的應用程序,我嘗試調試是一個x86應用程序。該機器是一臺裝有Visual Studio 2010 Premium和Windows 7的x64機器。請問這是一個問題嗎? – BennoDual

+0

@ t.kehl確實很奇怪!有最新的VS服務包?不確定現在要建議什麼;我剛剛嘗試了你正在嘗試的一個臨時項目,它對我來說工作正常。你想給我發送你的東西(pdb,dll和dmp文件)嗎? – wal

+0

@ t.kehl如果您正在調試x86應用程序,那麼您需要使用Windows調試工具來獲取32位轉儲文件。當你打開DMP文件時,VS會提醒你注意,但是 – wal