![](/img/trans.png)
[英]Is there a way to browser Source Code when pressing F12 if I only have the DLL and PDB files?
[英]How to read a crash dump file (I have source code and .pdb files)
我已經閱讀了StackOverflow上已有的問題,但我仍然無法使其工作。
我有
我嘗試將迷你轉儲文件放在調試目錄中,然后在Visual Studio 2010中打開它。我不知道這是正確的做法,還是下一步做什么。
正常的Debug菜單中的“Start Debugging”顯示為灰色。
Minidump文件摘要選項卡的右上角有一個帶有“操作”的框。 所以我點擊了“僅使用Native進行調試”,但我得到的是“當前位置沒有可用的源代碼”。
我必須遺漏一些非常簡單的事 - 請有人給我一個提示嗎?
只是將各種信息匯總到一個答案中:
你有程序生成時創建的.pdb文件嗎? 只是重建相同的源不起作用, 您需要為每個構建保留.pdb文件 。 - Alex Farber 2013年 2月20日11:05
“當PDB與二進制文件(DLL或exe)匹配時,調試器會匹配文件名,時間戳和校驗和等信息。” (Saikat Sen,Codeproject文章)
按照AlexFarber的提示,我將源代碼和發布文件夾從客戶的版本復制到我的計算機上(整個版本已保存,包括Release文件夾中的.pdb和.exe文件)。
然后我將轉儲文件復制到release文件夾中,並將Microsoft符號加載到同一文件夾中。
然后我再次將轉儲文件打開到Visual Studio 2010中。
我沒有看到比以前更有幫助的東西,我認為是由於這一點 - 看到這個SO問題的接受答案 。 我使用的是C#和.NET 2.0程序集,似乎我只能查看.NET 4.0程序集的源代碼。
我將在接下來的同一個問題上嘗試Hans Passant推薦的名為sos.dll的WinDbg加載項。
如何滿足使用同一版本的pdb文件的需要:
如果您使用WinDbg,我認為您可以針對相同的.pdb文件獲得此要求。 來自virtualdub “如果調試器很頑固並且不想加載符號,因為它認為它們不匹配,你可以使用.symopt + 0x40來設置”加載任何東西“標志。”
另外,如果我理解正確,您可以使用上面的sergmat引用的chkmatch工具來匹配.exe和.pdb文件。
據我所知,你有一個客戶的minidump,我認為他正在使用你的應用程序的Release版本和Debug PDB文件。
這就是你的問題,你的PDB和迷你轉儲不匹配。 為了查看清晰的堆棧跟蹤,PDB應該具有與生成轉儲文件的應用程序相同的構建配置/平台。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.