gdb调试可以查看应用程序源代码的原理是什么?

chen277910405 2011-07-08 03:56:37
请教各位,我们知道gdb 调试一个程序时,需要-g加入调试信息 gdb调试可以查看应用程序源代码的原理是什么?
有谁能帮忙解答一下吗?
谢谢了
...全文
499 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jernymy 2011-07-17
  • 打赏
  • 举报
回复
楼主可以参考makefile和gcc命令手册,有对-g的介绍,就是在程序中加入源码调试信息
所以一般项目都会有debug版本,和release版本
debug版本可以方便调试,不过程序会大
release版本程序小
IterZebra 2011-07-16
  • 打赏
  • 举报
回复
当加入-g参数的时候,在编译链接出来的二进制文件中,有专门的.debug段,这些段中存有调试使用的信息。这些信息包括行号、文件名等。




hrx1989 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 threeleafzerg007 的回复:]

两方面:
一是: gcc 或者 g++ -g 的时候,会把源文件文件名和行数加到二进制文件中(绝对路径)。 这样,你在gdb的时候,只要绝对路径保持一样,gdb就能找到相应的source code.

二是: 符号表.
[/Quote]


符号表是什么意思??
threeleafzerg007 2011-07-15
  • 打赏
  • 举报
回复
两方面:
一是: gcc 或者 g++ -g 的时候,会把源文件文件名和行数加到二进制文件中(绝对路径)。 这样,你在gdb的时候,只要绝对路径保持一样,gdb就能找到相应的source code.

二是: 符号表.
IamGooday 2011-07-15
  • 打赏
  • 举报
回复
符号表就是函数名的集合啦。
ww2000e 2011-07-15
  • 打赏
  • 举报
回复
http://blog.csdn.net/carry1314lele/article/details/4251452

http://www.ibm.com/developerworks/cn/linux/l-cn-embedded-ptrace/index.html

gdb基于ptrace库
就想叫yoko 2011-07-15
  • 打赏
  • 举报
回复
学习~~
刚学LINUX
今天看书上说 DEBUG版可能比RELEASE 大10倍
hotspring110 2011-07-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 threeleafzerg007 的回复:]

两方面:
一是: gcc 或者 g++ -g 的时候,会把源文件文件名和行数加到二进制文件中(绝对路径)。 这样,你在gdb的时候,只要绝对路径保持一样,gdb就能找到相应的source code.

二是: 符号表.
[/Quote]+++
K_s_G 2011-07-11
  • 打赏
  • 举报
回复
mark
luomoweilan 2011-07-10
  • 打赏
  • 举报
回复
-g选项把调试信息加入到了程序中。
louyong0571 2011-07-08
  • 打赏
  • 举报
回复
-g的时候 把符号表之类的调试信息加进去了,所以-g编译出来要比不加-g的大很多。
gdb就根据这些信息来的
justkk 2011-07-08
  • 打赏
  • 举报
回复
把相关信息一起写入执行文件了吧

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧