В Visual Studio скомпилированный исполняемый файл debugmode: jmp в тело функции вместо прямого адреса в вызове

представьте себе эту поддельную программу:

void foo ( void )
{
    // anything
}

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

При компиляции в режиме отладки с помощью Visual Studio компилятор создает своего рода «карту функций». или как это называется.

Таким образом, когда вы, например, следуете за foo () в отладчике или просто пытаетесь получить смещение функции через & amp; foo, вы попадаете в список & quot; список & quot; из jmp 's, который, когда вы будете следовать за ними снова, приведет вас к фактическому телу функции.

Мой вопрос: Есть ли возможность отключить это для функций с одиночным выбором, чтобы & amp; foo возвращал адрес тела функции, а не jmp. Конечно без отключения режима отладки.

Если нет, то какой флаг включает / отключает это для всей программы?

Заранее спасибо !

Редактировать для пользователя SigTerm: enter image description here

Ответы на вопрос(1)

Решение Вопроса

Отключите «инкрементное связывание»

Ваш вопрос очень похож на этот Адрес функции не фактический адрес кода

Ваш ответ на вопрос