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