.map文件的用途什麼時候使用/ MAP參數或「生成地圖文件」項目設置時,VC++鏈接器會產生什麼?我什麼時候需要它們?我如何從中受益?鏈接器生成的.map文件的用途是什麼?
回答
一篇關於如何使用地圖文件查找崩潰的好文章。
http://www.codeproject.com/KB/debug/mapfile.aspx
手工做的這一切是非常無趣。
我不知道任何可以讀取地圖文件並幫助找到崩潰位置的工具。如果有人知道請更新我們。
您很少需要它們,但它們可以方便地調試某些問題,因爲它們提供有關函數和數據位置的信息。
例如:
- 上的所有段的詳細信息(代碼,數據和其它)。
- 鏈接行號的代碼
您可以使用地圖文件進行調試工具。
你的意思是像打開流程的反彙編和檢查原始地址? – sharptooth 2009-04-16 11:55:08
這是一種可能性。就像我說的,你很少需要它們,但如果你需要它們,你很高興它們可用。 – 2009-04-16 11:56:30
對於嵌入式系統,映射文件更加有用。 (雖然你不會使用Visual C++是什麼;)
之類的東西知道你是運行了程序/數據存儲器的接近程度,什麼位置的特定變量在於,是很重要的。
的WinDBG使用.MAP和.pdb文件,以幫助調試崩潰,分析.hdmp和.mdmp崩潰轉儲時。
基本上它們將內存地址映射到.exe(或.dll)中的函數和變量。一般來說非常有用。
編輯:崩潰「事後」調試最有用的方法是使用WinDbg中,我(Windows平臺)。打開它並打開故障轉儲。然後將源路徑設置爲指向代碼(如果有的話),將符號路徑指向您的.map和.pdb,將圖像路徑指向.exe,然後在命令行中輸入「!analyze -v」 。現在你有一個完整的堆棧跟蹤代碼行和一切。
如果在路徑中有MS符號服務器,並且整個頁面堆已打開或adplus正在運行,則會更好。見我的這兩個最喜歡的WinDbg的資源:
第一站:: http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx
力載荷的符號:: http://www.osronline.com/ShowThread.cfm?link=182377
有用的網站:: http://www.dumpanalysis.org/blog/index.php/category/windbg-tips-and-tricks/page/7/
當你需要跟蹤鏈接地圖可以在大型項目中非常有用編譯單元和庫之間的依賴關係。通常情況下,鏈接器會報告導致問題的符號,而且通常只需搜索此符號名稱就不會返回任何結果(或者將返回大量符合read
等符號的誤報)。
沒有接頭的地圖,你唯一的選擇是分析所有可用的源文件,並希望您找到相關的點(如果宏被使用,這通常是這種情況預處理後傳)。
鏈接器映射通常有一個名爲「由文件/符號引用」的節,它告訴您項目的另一個對象文件需要哪個對象文件,以及哪個符號被引用。
我曾經在一個項目上工作,該項目必須在沒有語言環境支持的系統上移植。鏈接器報告「未定義的參考_localeconv_r
」錯誤,這將是一個痛苦,通過搜索來源追查。幸運的是,使用-Map=output.map
生成的GCC鏈接器映射文件通過單個搜索顯示了所有有問題的功能。
- 1. OrmLite生成的「ormlite_config.txt」文件的用途是什麼?
- 2. 創建超鏈接的鏈接元素的用途是什麼?
- 3. 編譯和鏈接時由Xcode生成的文件是什麼?
- 4. .jd文件的用途是什麼?
- 5. Perforce文件「.perforce」的用途是什麼?
- 6. Silverlight.js文件的用途是什麼?
- 7. vshost文件的用途是什麼?
- 8. MonkeyTalkAPI.js文件的用途是什麼?
- 9. mdf文件的用途是什麼?
- 10. unmanaged.dll.manifest文件的用途是什麼?
- 11. .edmx文件的用途是什麼?
- 12. features.h頭文件的用途是什麼?
- 13. CRX文件的用途是什麼?
- 14. _p.h文件的用途是什麼?
- 15. .info中文件[]的用途是什麼?
- 16. mongo.lock文件的用途是什麼?
- 17. * .pro文件的用途是什麼?
- 18. vshost.exe文件的用途是什麼?
- 19. Symfony2 bootstrap.php.cache文件的用途是什麼?
- 20. Schema.rb文件的用途是什麼?
- 21. pdb文件的用途是什麼?
- 22. 「rawproto」文件的用途是什麼?
- 23. cordova:platform_www文件夾的用途是什麼?
- 24. .csproj文件的用途是什麼?
- 25. 鏈接器和生成文件有什麼區別?
- 26. 生成的FormItems中的validationErrorNotifier的用途是什麼?
- 27. ASP.NET Handler(.ashx)文件的用途和用途是什麼?
- 28. 什麼是GPX文件?它的用途是什麼?
- 29. 什麼是Android密鑰庫文件,它的用途是什麼?
- 30. goto的可接受用途是什麼?
GNU Gas用`-a`生成`.map`文件。 – 2015-10-15 08:37:05