我一直在閱讀有關PDB文件以及它們如何與調試做,但爲什麼我要保持我船後PDB文件?如果出現問題,我可以在我的機器上進行調試。我錯過了什麼?.PDB文件的實際用途是什麼?
4
A
回答
2
爲了能夠正確調試,您需要在PDB文件中維護的符號。 PDB也可以保留髮布版本。
建議保留PDB的原因是,整個項目不需要再次重建,實際上這通常是構建服務器上的多日過程。在非常大的項目中,這可能非常麻煩。維護PDB將幫助您快速從SCM中檢索二進制文件和符號,並且可以更快地解決提交的問題(如果有的話)。
1
.pdb文件即可發貨給客戶以獲得準確的堆棧跟蹤。如果沒有.pdb,所有的堆棧跟蹤都只包含內存地址,並且很難確定這些地址對應的「手動」功能。但是,如果你有.pdb文件,調試器可以用符號重新構建堆棧跟蹤,這使得生活變得更加簡單。
另外,有時您不能在您的機器上重現問題,而查看問題的唯一方法是調試客戶的機器。這取決於您與客戶的特定關係,當然這是可能的...
3
PDB文件包含調試信息。如果至少爲發佈版本的軟件保留它們,則可以調試客戶可能遇到的任何崩潰。您不需要向他們發送PDB,只需讓他們使用Windows收集崩潰轉儲(.dmp)即可。然後,您可以打開例如WinDbg中的轉儲並調試問題。
1
在我的工作中重建或調試客戶崩潰時,我們生活和死於我們的PDB。我已經檢查了崩潰轉儲文件的年代和年代的二進制文件。謝天謝地,我們保留了PDB的這些年。如果沒有PDB,你只需花費幾個月的時間調試一次故障轉儲,就可以親吻你的時間。而如果你確實有PDB的話,那麼在調試一個小型轉儲的時候,導航堆棧變得非常容易。
並且一定要保留與二進制文件和PDB對應的源文件的副本。爲此使用版本控制是很好的。但有時你並不總是有這種奢侈品來對齊一切。
相關問題
- 1. pdb文件的用途是什麼?
- 2. pdb文件實際上做了什麼?
- 3. toContain()的實際用途是什麼?
- 4. 什麼是System.Transactions的實際用途?
- 5. Socket.ExclusiveAddressUse的實際用途是什麼?
- 6. Android NDK的實際用途是什麼?
- 7. array_diff_uassoc的實際用途是什麼?
- 8. jQuery的實際用途是什麼?
- 9. resx文件的實際用途是什麼?
- 10. android中.so文件的實際用途是什麼?
- 11. 什麼是PDB文件?
- 12. 臨時文件的實際用途
- 13. JUnit測試用例中「失敗」的實際用途是什麼?
- 14. 什麼是PHP的睡眠()的實際用途?
- 15. ES5提供的新方法的實際用途是什麼?
- 16. Observable.never()函數的實際用途是什麼?
- 17. <sparkle:ReleaseNotesLink>的實際用途是什麼?
- 18. 雙向覆蓋「bdo」的實際用途是什麼?
- 19. Lua在Mac OS X中的一些實際用途是什麼?
- 20. `git fetch`命令的實際用途/目標是什麼
- 21. 什麼是stream_wrapper_register在php中的實際用途?
- 22. 受保護構造函數的實際用途是什麼?
- 23. Callback類模板的實際用途是什麼?
- 24. '-x'參數的實際用途是什麼?
- 25. <dfn>標籤的實際用途是什麼?
- 26. 受保護繼承的實際用途是什麼?
- 27. getchar和putchar的實際用途是什麼?
- 28. 成員隱藏,什麼是它的實際用途
- 29. 該嵌套類的實際用途是什麼?
- 30. 「複製」構造函數的實際用途是什麼?
其實他們並不需要的PDB - 你做什麼,客戶只需向您發送轉儲。你把它加載到你的調試器,具有沿着你的.pdb的 – 2010-08-28 03:21:01
對於本地應用程序,航運.pdb文件到你的客戶是很危險的,因爲它們含有比相比,需要.PDB文件管理應用程序的更多信息。所以你應該問你的客戶沒有pdb文件的崩潰轉儲,然後用pdb文件在你的機器上分析它們。 – 2010-08-28 04:02:45