使用gdb而不使用" -g"旗

时间:2017-04-11 10:30:08

标签: c gcc gdb

如果对使用" -g"编译的可执行文件使用gdb;国旗,你还能调试吗?如果是这样,与调试使用" -g"编译的可执行文件相比,您会看到什么区别?

1 个答案:

答案 0 :(得分:5)

-g中添加gcc选项可以添加调试符号和信息。然后,在调试时,显示的信息更具人性化。

来自online manual

  

-g

     

以操作系统的本机格式(stabs,COFF,XCOFF或DWARF)生成调试信息。 GDB可以使用这些调试信息。

在大多数使用stabs格式的系统上,-g允许使用只有GDB才能使用的额外调试信息;这些额外的信息使调试在GDB中更好地工作,但可能使其他调试器崩溃或拒绝读取程序。如果要确定是否生成额外信息,请使用-gstabs +, - gstabs,-gxcoff +, - gxcoff或-gvms

例如,对于使用-g编译的二进制文件,在gdb中运行可以显示函数名称,而没有-g,您将只看到函数指针(地址)