是否可以从使用调试信息编译的程序中获取字符串的地址?
例如:
int main(void)
{
// Call function
f();
return 0;
}
是否可以获取字符串"//调用函数"的地址?如果我使用"信息行x",我会得到一个地址,但它不包含字符串。它包含调用f()的指令;
是否可以获取字符串"//调用函数"的地址?
否,因为该字符串在编译的程序中是而不是。
编译过程的第一步是预处理,它扩展所有宏定义并剥离所有注释。
您可以通过运行来查看该步骤的输出
gcc -E t.c
您的评论不会出现在那里。
可以要求gcc在预处理的源中留下注释(带有-C
标志),但不可能将注释"编译"到最终的二进制文件中。