12

gcc/g++ リンカ オプション "-Map" によって生成される ".map" ファイルは何に使用されますか? そして、それらをどのように読むのですか?

4

3 に答える 3

14

マップ ファイルを生成し、本番環境に置くソフトウェアのコピーを保持することをお勧めします。

クラッシュ レポートの解読に役立ちます。システムによっては、クラッシュからスタック ダンプを取得できる可能性があります。スタック ダンプにはメモリ アドレスが含まれ、レジスタの 1 つには命令ポインタが含まれます。これは、メモリ アドレス コードが実行されていたことを示しています。一部のシステムでは、コード アドレスを移動することができますが (動的ライブラリをロードする場合、したがって動的)、下位バイトは同じままにする必要があります。

マップ ファイルは、メモリ ロケーション -> コード ロケーションからの MAP です。指定されたメモリ アドレスにある関数の名前が表示されます。最適化のため、あまり正確ではないかもしれませんが、クラッシュの原因となるバグを探すための出発点となります。

商用ソフトウェアを作成して 30 年になりますが、マップ ファイルを使用したのはこれだけです。二回成功。

于 2016-04-20T06:51:51.780 に答える