- 第1步:我建立myProgram.exe併產生myProgram.pdb在它旁邊。
- 第2步:我故意在myProgram.exe中導致崩潰。
- 步驟3:有人問我,如果我想使用Visual Studio作爲調試器,和我做。
- 步驟4:Visual Studio從myProgram.pdb中加載符號。
- 第5步:我檢查調用堆棧以確定崩潰發生的地點(已知)。
- 第6步:我不皺眉或看起來很困惑,因爲這是應該的。
但是,如果我重命名myProgram.exe和myProgram.pdb到SomethingElse.exe和SomethingElse.pdb並重復這些步驟,結果是從步驟4起混合。據我所知,在我的生成機器上,VS將始終從重命名的PDB文件中成功加載符號。但是,在我的遠程目標機上,VS永遠不會加載符號 - 它總是告訴我PDB文件與可執行文件不匹配。爲什麼不?我打破了一個晦澀的規則嗎?在任何情況下,我都在運行Visual Studio 2005。是什麼導致符號不能從PDB文件加載?
我剛纔測試了這另一個「遠程」機器上(在我的辦公室),其上不會發生這種情況。顯然,對於實際的遠程機器來說,有一些特定的東西......它沒有聯網,除了生產時間以外難以訪問。所以我想我是在提示可能會導致對這些文件進行簡單名稱更改以使其PDB無法使用的技巧之後。如果新版本出現問題,工作人員將恢復爲已重命名的可執行文件...並且我失去了符號支持,因此很難追蹤那裏的問題。它只是變得非常惱人的:-( – omatai
這可能是一個愚蠢的問題,但你爲什麼不更改程序集名稱,而不是事後更改文件名嗎?無論如何,這是一個奇怪的行爲。 –
我重命名文件,當我創建一個新的版本 - 我保存一份副本作爲「myProgram [date] .exe」,以防我需要恢復它。但是最近,由於未處理的異常,工作人員已經恢復到這些重命名的文件。這個奇怪的行爲 – omatai