我正在分析一個創建的.dmp文件,我有一個調用堆棧,它給了我很多信息。但是我想雙擊調用堆棧並讓它帶給我源代碼。在查看內存轉儲的調用堆棧時,如何在VS中指定源代碼目錄?
我可以右鍵單擊調用堆棧並選擇符號設置..我可以把位置放到PDB。但是源代碼目錄沒有選項。
我正在分析一個創建的.dmp文件,我有一個調用堆棧,它給了我很多信息。但是我想雙擊調用堆棧並讓它帶給我源代碼。在查看內存轉儲的調用堆棧時,如何在VS中指定源代碼目錄?
我可以右鍵單擊調用堆棧並選擇符號設置..我可以把位置放到PDB。但是源代碼目錄沒有選項。
不幸的是,源代碼目錄是硬編碼到pdb的,但是如果你知道需要的文件夾,你可以使用符號鏈接,路口的窗口概念。
我使用的工具Junction Link Magic
加載PDB後,手動導航到與當前執行位置匹配的源文件。 PDB包含構建其關聯二進制文件的源文件的路徑和文件名,我懷疑調試器足夠聰明,可以在注意到顯示的文件名和與當前二進制位置相關的文件名匹配時進行匹配。
閱讀this article關於如何建立一個源服務器(又名SRCSRV)集成在您的網站。
我花時間爲我們的代碼庫遵循這些步驟,現在我們可以在過去6個月內從我們軟件的任何版本取得一個.dmp文件...使用符號獲取堆棧跟蹤...並在調試器中查看確切的源代碼行。由於這些步驟已集成到我們的自動構建中,因此現在的開銷很小。
我確實需要爲ClearCase編寫一個自定義索引器,但它們對於Perforce,TFS以及其他的可能存在預先存在的索引器。
值得注意的是,VS2005中的.dmp支持有點不穩定..在VS2008中它比較穩定。
您還需要配置的Visual Studio搶了微軟產品的符號從這裏除了你自己的符號服務器:
http://msdl.microsoft.com/download/symbols
即在少數地方描述如在Debugging Tools for Windows現場。
Windbg允許您設置與PDB路徑相同的源路徑。
它不夠聰明。經過測試(至少在VS2005中) – 2012-03-26 10:19:43