【问题标题】:Use gdb without compiling with "-g" flag使用 gdb 而不用“-g”标志编译
【发布时间】:2017-04-11 10:30:08
【问题描述】:

如果你在编译时没有“-g”标志的可执行文件上使用gdb,你还能调试吗?如果是这样,与调试使用“-g”编译的可执行文件相比,您会看到什么不同?

【问题讨论】:

  • 是的,你可以。你试过了吗?

标签: c gcc gdb


【解决方案1】:

gcc 中添加-g 选项可以添加调试符号和信息。然后,在调试时,显示的信息更易于阅读。

来自online manual

-g

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-29
    • 2021-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多