2

この偽のプログラムを想像してみてください。

void foo ( void )
{
    // anything
}

int main ()
{
    foo ();
    return 0;
}

Visual Studioを使用してデバッグモードでコンパイルすると、コンパイラはある種の「関数マップ」を作成します。

したがって、たとえばデバッガーでfoo()をフォローする場合、または&fooを介して関数のオフセットを取得しようとすると、jmpの「リスト」が表示されます。これを再度フォローすると、実際の関数に移動します。体。

私の質問は次のとおりです。&fooがjmpではなく関数本体にアドレスを返すように、選択された単一の関数に対してこれを無効にする可能性はありますか。もちろん、デバッグモードを無効にする必要はありません。

そうでない場合、プログラム全体でこれを有効/無効にするフラグはどれですか?

前もって感謝します !

ユーザーSigTermの編集: ここに画像の説明を入力してください

4

1 に答える 1

9

「インクリメンタルリンク」をオフにします

あなたの質問はこれによく似て います関数のアドレスは実際のコードアドレスではありません

于 2012-06-02T03:29:09.797 に答える