2015-11-08 48 views
0

是否可以从使用调试信息编译的程序获取字符串的地址?gdb:获取字符串/注释的地址

e.g,:

int main(void) 
{ 
    // Call function 
    f(); 
    return 0; 
} 

是否有可能得到的字符串 “//调用函数” 地址? 如果我使用“信息行x”,我得到一个地址,但它不包含字符串。它包含调用f();

回答

0

是否可以获取字符串“// Call function”的地址?

不,因为该字符串是而不是在编译的程序中。

编译过程中的第一步是预处理,它扩展了所有的宏定义,并去除所有注释

您可以通过运行

gcc -E t.c 

您的评论将在那里看到,步骤的输出。

可以让gcc在预处理源代码中留下注释(使用-C标志),但不可能将注释“编译”为最终的二进制文件。