7

Visual Studio 2010/2012を使用すると、スイッチを使用してc ++ソースファイルをコンパイルし/FAs、結果のコードのアセンブリ出力を生成できます。ただし、生成されたasmファイルには、すべてのシンボルがマングル形式で含まれています。

Visual Studioにマングルされていないシンボルを代わりに生成させるスイッチまたは他のスマートな方法はありますか?asmファイルを手動でフィードすることもできますundname.exeが、カスタムのビルド後イベントよりもスイッチの方がはるかに便利です。

4

2 に答える 2

1

/FA の出力の性質上、そうすることができません。FA は有効なアセンブリ コードを出力します。マングルされていない C++ 関数を表現するために必要なシンボルは、Microsoft の x86 アセンブリでは有効なラベル名ではありません。匿名の名前空間の適切な表記法もありません。

これらのケースを処理する出力は、アセンブラを使用してコンパイルできません。そのような名前を処理するアセンブラを作成した場合、それをアセンブルするために適用する名前マングリング規則を知る必要があります。これは、アセンブリを出力する主な目的を無効にします (正確に何が起こっているかを確認するため)。

于 2013-09-07T21:21:26.840 に答える