【发布时间】:2013-06-06 13:10:54
【问题描述】:
调试符号是在编译过程的哪个阶段实际生成的。
如果我用 -g 选项编译一个目标文件,那么无论是什么目标文件都必须内置(共享库、静态库、可执行文件),输出中总会有调试符号吗? 如果在链接过程中不指定-g,输出二进制文件是否有调试符号?
【问题讨论】:
-
您是在询问特定的编译器吗?
-
并非所有编译器都有 -g 选项。所问的问题不能笼统。
-
-g 我的意思是编译器标志包含调试符号!!!
-
都是一样的,不同的编译器和不同的平台,存在不同的符号处理方式。这个问题没有单一的答案。
-
您不仅需要查看编译选项:还需要查看链接器选项。您可以使用调试符号编译东西,但链接器可能会将它们剥离。例如,对于 HP,您需要在链接器选项中添加 +noobjdebug 以获取调试符号。
标签: c debugging compiler-construction