【问题标题】:What's the difference in debug information between gcc with and without "-ggdb1" option?带有和不带有“-ggdb1”选项的 gcc 之间的调试信息有什么区别?
【发布时间】:2011-04-23 14:59:18
【问题描述】:

默认情况下,gcc 会将符号表添加到可执行文件中,因此gdb 将获得可读的堆栈跟踪。

gcc 手册页中 -ggdb1 选项的文档说:

级别 1 产生的信息最少,足以在您不打算调试的程序部分中进行回溯。这包括函数和外部变量的描述,但没有关于局部变量的信息,也没有行号。

...在我看来,这与在没有任何与调试相关的参数的情况下调用 gcc 相同。但显然发出了额外的符号(.debug_frame、.debug_str、.debug_loc)。

那么究竟有什么区别,使用-ggdb1 编译而不是简单地不剥离可执行文件有什么好处?

【问题讨论】:

    标签: c gcc debug-symbols


    【解决方案1】:

    找到dwarfdump 实用程序(libdwarf 的一部分)并查看在这些部分中发出了哪些调试信息。而不是自己决定使用 1 级调试信息编译和不剥离可执行文件之间是否有任何区别。 DWARF 规范也是免费提供的。

    【讨论】:

      猜你喜欢
      • 2017-09-22
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 2019-08-16
      • 1970-01-01
      • 2012-01-27
      • 1970-01-01
      • 2012-11-27
      相关资源
      最近更新 更多