C 调试或链接时,单词“quot;符号「;提到

C 调试或链接时,单词“quot;符号「;提到,c,debugging,symbols,pdb-ms,C,Debugging,Symbols,Pdb Ms,我正在与gdb合作,并在文档中找到了“符号”的参考资料。这是外部(导出)可见变量的另一个词吗 谢谢 Scott它们是代码中的条目,在编译代码时生成。变量、函数等。符号是变量、函数、类的人名。。。如果没有符号,您将看到所有内容都只是地址上的数据。 示例: 使用符号: call printf 无符号 call dword ptr 0x804480 “符号”是一种符号标识符,包括函数名和变量名 编译器/链接器在生成期间创建一个符号表,调试器使用该表为这些实体提供源代码级符号名,而不是普通地址(因

我正在与gdb合作,并在文档中找到了“符号”的参考资料。这是外部(导出)可见变量的另一个词吗

谢谢


Scott

它们是代码中的条目,在编译代码时生成。变量、函数等。

符号是变量、函数、类的人名。。。如果没有符号,您将看到所有内容都只是地址上的数据。
示例:
使用符号:

call printf
无符号

call dword ptr 0x804480 

“符号”是一种符号标识符,包括函数名和变量名

编译器/链接器在生成期间创建一个符号表,调试器使用该表为这些实体提供源代码级符号名,而不是普通地址(因此您可能会遇到“符号调试器”的名称)。

和调试符号(可能因“stab”的方式而命名),例如,存储在符号表中)还引用了链接器需要的数据之上和之外的数据,例如行号/地址映射、类型信息、局部变量,并且不要忘记“静态”符号(链接器显然不需要这些符号,但它们显然对调试非常重要)


当然,PE图像不需要(或者通常拥有)这样的“符号表”——只需要导入/导出表。因此,在Windows的上下文中,“符号”和“调试符号”倾向于互换使用,以表示链接后留下的任何符号;使用MS的工具链,这些(几乎?)总是进入“pdb”文件。(请参阅。)

感谢汇编器示例输出。