.mapファイルの使用方法/ MAPパラメータまたは「マップファイルの生成」プロジェクト設定を使用すると、VC++リンカが生成するものは何ですか?いつ私はそれらを必要とし、どのように私はそれらから恩恵を受けますか?リンカが生成する.mapファイルの使用方法は?
答えて
クラッシュを検出するためにマップファイルを使用する方法に関する素晴らしい記事です。すべて手動でこれを行う
http://www.codeproject.com/KB/debug/mapfile.aspx
はとてもつまらないです。
マップファイルを読み込んでクラッシュ場所を見つけるのに役立つツールはありません。もし誰かが私たちを更新してください知っている。
ほとんど必要はありませんが、機能やデータの場所に関する情報を提供するため、いくつかの問題をデバッグするのに便利です。例えば
:すべてのセグメントで
- 詳細情報(コード、データおよび他の)。あなたがツールをデバッグするためのマップファイルを使用することができ、コード
から
プロセスの逆アセンブリを開いて、未処理のアドレスを調べるという意味ですか? – sharptooth
それは可能性です。私が言ったように、あなたはそれらをめったに必要としませんが、あなたがそれらを必要とするなら、あなたは彼らが利用可能であることをうれしく思います。 –
組み込みシステムの場合、マップファイルはもっと便利です。 (あなたはそれにVisual C++を使用しませんが)
プログラム/データメモリがどれだけ近づいているか、特定の変数が存在する場所を知っていることは重要です。
UNIXプラットフォームには、リストファイルと同様のものはありますか?はいの場合は、どうすれば生成できますか? – Shree
いいえ。コンパイラーの資料を確認してください。 –
WinDBGは.mapファイルと.pdbファイルを使用して、.hdmpと.mdmpクラッシュダンプを解析するときにクラッシュをデバッグするのに役立ちます。
基本的にメモリアドレスは、.exe(または.dll)内の関数と変数にマップされます。一般的に非常に便利です。
EDIT:「事実の後」をデバッグする最も有効な方法は、私のためにWinDbgを使用しています(Windowsプラットフォーム)。それを開き、クラッシュダンプを開きます。その後、コードを指すようにソースパスを設定し(シンボルを持っている場合)、.mapと.pdbを指すシンボルパスと.exeへのイメージパスを入力し、コマンドラインに「!analyze -v」と入力します。今度は、コード行とすべてを含む完全なスタックトレースがあります。
パスにMSシンボルサーバーがあり、フルページヒープがオンになっていたり、adplusが実行されている場合は、さらに優れています。わたしのこれらの2つの好きな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. .shpファイルから.mapファイルを生成するには?
- 2. webpackJsonpを使用せずにjsファイルを生成する方法
- 3. AS3を使用してサンプルswfファイルを生成する方法
- 4. PdfReportを使用して.xlsxファイルを生成する方法
- 5. GNUリンカに32ビットELF実行ファイルを生成させよう
- 6. Structure Map with OpenRastaの使用方法
- 7. vim map twoコマンドの使用方法
- 8. デフォルトのgccオプションをリンカに適用する方法は?
- 9. GNUリンカの使用中に「ファイルが認識されません」
- 10. ibtoolを使用して文字列ファイルを生成する方法は?
- 11. OpenEmbedded生成画像の使用方法
- 12. Osmosisが.mapを生成する際のデータを無視する
- 13. XMLファイルを作成または生成する方法
- 14. Qt:Windows用に生成されたmap/pdbファイルはありません。
- 15. loadUIを使用して負荷を生成する方法は?
- 16. LLVMを使用してコールグラフを生成する方法は?
- 17. DataImportHandlerを使用してIdを生成する方法は?
- 18. phpを使ってdocファイルを生成する方法
- 19. netbeansを使用してJ2EEでearファイルを生成する方法
- 20. wsejbdeploy antタスクを使用してibm-ejb-jar-bnd.xmiファイルを生成する方法
- 21. ウォーターマークを使用してPHPで.DOCファイルを生成する方法
- 22. javaコードを使用してapkファイルをプログラムで生成する方法
- 23. JavaScriptファイルとそのテストケースを使用してTypeScriptファイルを自動的に生成する方法は?
- 24. .netプロジェクト用の.exeファイルの作成方法と使い方は?
- 25. javaを使用して.docファイルを作成する方法は?
- 26. Windows APIを使用してファイルを作成する方法は?
- 27. JarOutputStreamを使用してJARファイルを作成する方法は?
- 28. Javaを使用してXMLファイルを作成する方法は?
- 29. は、ApacheのドリルからPSVファイルを生成する方法
- 30. DICOMファイルのSOPInstance UIDを生成する方法は?
GNU Gasは '-a'で' .map'ファイルを生成します。 –