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 回答