2012-03-29 156 views
0

我是一名中级C程序员,正在学习他的方式。我最近学会了使用GDB(实际上被迫),并且正在使用Ptrace做一些代码。
我正在浏览ptrace上的一些代码,遇到“DEBUG INFO”。什么是调试信息?

我想知道这意味着什么,什么时候应该将其包含在我的代码中?
什么是调试信息文件?

我找不到从谷歌和维基有关这个。这个标签也没有维基。 可能是如果你能指向我正确的方向我可以通过写一个报答。

+0

我从网上下载[这里]'strace'代码(http://sourceforge.net/projects/strace/files/strace/),但力找到'strace.c'任何'DEBUG INFO'。你指的是哪个文件?你能在这里粘贴一个片段吗? – 2012-03-29 06:16:20

+0

@PavanManjunath:对不起。这不是strace。那是一个错误。对不起,浪费你的时间。我正在寻找这个代码。请给我时间。 – 2012-03-29 06:22:04

回答

2

你所指的DEBUG_INFO可能只是linux内核的一个选项(和定义)。配置内核时启用它会告诉编译器将调试信息包含在生成的二进制文件中。这个调试信息本身就是附加数据,它允许调试器(以及其他工具,如strace,addr2line,gprof,...)将它执行的二进制代码与源代码(源代码行,变量名等等)进行编译。您可以从DWARF(流行的调试数据格式)中找到有关调试信息的更多详细信息。

+0

我写了一个自己的答案,它不在这附近:)谢谢并接受:) +1! – 2012-03-29 06:46:59

1

检查what is a core dump。您可能会得到一些指示。

+0

在这里引用一个相关的代码片段是很好的 – nico 2012-03-29 06:23:38

+0

@peter:我没有在那里得到答案,但我知道了很多有趣的事实。谢谢你:) – 2012-03-29 06:37:35

+0

@peter:我想用更多的链接发布另一个答案,但也想站点你的例子。这会被劫持吗? – 2012-03-29 06:39:24

0

整个功劳归功于彼得的答案。 起初,我通过“What is core dump
那时,我发现了以下link这实际上告诉

之间的差异
  1. 调试版本
  2. 发行版本来就

    是:调试版本包括同时调试信息一个发布版本没有这些,并且是优化代码。 另外这个answer可以帮助你获得更多的信息。