前言
这几天使用gcc编译的程序,gdb调式的时候,有些外部函数无法跟踪,进不去。 后来发现是因为gcc编译选项没有设置正确,现在找找资料,记录一下。
gcc参数选项
-g选项(-glevle): 生成调式信息,gnu调试器可以利用这个信息。可以在-g后面指定level生成调式信息的数量。level默认是2. (即-g等价于-g2)。
level 为0,不生成任何调式信息。因此,-g0将直接否定了-g选项,等于没有开启-g选项。
level 为1,生成最低限度的调式信息,足够对程序进行回溯跟踪,回溯跟踪指的是监视程序在运行过程中的函数调用历史,另外还包含函数描述信息、外部变量、行号表,但是不包含局部变量。
level 为2,此时产生的调试信息包括扩展的符号表、行号、局部或外部变量信息。