2017-12-06 5 views
1

私は六角に命令コードを取得するには、Visual Studioと逆アセンブラウィンドウでデバッグを使用していますが、主なは(図1のような)関数を呼び出すとき、機能命令はsperateに表示されますセクション(図2) 機能の指示がメインの一部として表示されることを示す方法はありますか?逆アセンブラのVisual Studio C++

dissasemblerウィンドウでdissasemblerウィンドウ main section idisassemblerer window

機能部における要部 function section in dissasembler window おかげで、逆アセンブルは常に別のウィンドウになるだろう

+0

あなたが話していることを推測するのは難しいですが、私はあなたが関数をインライン化したいと思っています。これは、リリースビルドをビルドするまでは起こりません。現在、最適化されていないデバッグビルドコードがあります。 –

答えて

1

mov eax, 0CCCCCCCChに基づいて、あなたはDebugビルドで作業しているようです。

デバッグモードでは、Visual Studioではデフォルトで関数がインライン展開されません。

コンパイラ設定(C/C++ - 最適化 - インライン関数展開)では、リリースモードまたは関数インライン化を有効にすることができ、fun()への呼び出しはおそらくインライン展開されます。

0

、オプションがあります表示されている内容を制御できる逆アセンブリウィンドウのコンテキストメニュー(ソースコードの有無、命令のアドレスの有無など)。

+0

はい、わかりましたが、懸念事項は命令コードの順序です。つまり、機能コードをメインコードの一部として使用したいのですが、 – noor

+0

でも、メインコードの一部ではありません。逆アセンブリが示すように、それはそれ自身のローカル変数とスタック操作を持つ別の関数への '呼び出し'です。コードが実際に 'main'にあるのと同じ正確な指示ではありません – edtheprogrammerguy

+0

Hmmm、ありがとう、ありがとうございます。 – noor