Chinaunix

标题: 关于gdb调试的疑惑 [打印本页]

作者: madahah    时间: 2009-07-26 21:57
标题: 关于gdb调试的疑惑
我在用gdb调试时,发现程序并不是按照代码顺序执行的,在没有任何跳转语句时,程序却执行前面代码去了,然后又跳回去执行刚才的代码,不知道这是为什么??
作者: system888net    时间: 2009-07-26 23:19
原帖由 madahah 于 2009-7-26 21:57 发表
我在用gdb调试时,发现程序并不是按照代码顺序执行的,在没有任何跳转语句时,程序却执行前面代码去了,然后又跳回去执行刚才的代码,不知道这是为什么??


具体点大家更容易理解你的问题.
作者: aaaaa5aa    时间: 2009-07-27 02:31
把程序代码贴出来,这样大家好分析
作者: shan_ghost    时间: 2009-07-27 09:57
编译时关掉优化。不然调试时无法保证执行次序和源码相同
作者: prolj    时间: 2009-07-27 10:01
很正常啊,不用贴代码了。
作者: aaaaa5aa    时间: 2009-07-27 10:10
原帖由 prolj 于 2009-7-27 10:01 发表
很正常啊,不用贴代码了。

能说下GDB调试时不按代码顺序执行的原因么
作者: fender0107401    时间: 2009-07-27 10:13
别开优化。
作者: net_robber    时间: 2009-07-27 10:14
1.别开优化
2.修改代码后,重新编译一下
作者: madahah    时间: 2009-07-27 12:43
代码就是postgresql,直接看代码好多不懂,就编了版debug的,回去把优化关了试试,谢谢大家的答案
作者: figure_hit    时间: 2009-07-27 14:35
标题: 回复 #1 madahah 的帖子
可能是调试的文件里的符号表在定位源文件的时候出错,建议看看反汇编代码,看看自己的代码到底运行到那个label了。
作者: madahah    时间: 2009-07-27 21:47
回来把优化关了,就不会出现那种情况了,谢谢大家了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2