求助gdb调试代码时出的问题,附带源码

stitchwillow 2013-03-04 06:06:41
#include <stdio.h>

int main()
{
int a = 0;
char c = 'a';

if ('\0' == c)
{
printf("hello\r\n");
}
else if ((0 == a) && ('\t' != c))
{
printf("world\r\n");
}
else
{
printf("hehe\r\n");
}

return 0;
}

求高手复制一下上面的小程序,用gdb调试一下,
不知道为什么在打印完world以后会显示else if ((0 == a) && ('\t' != c))这一行,有哪高手能指导一下,在编译的时候只用过-g没加任何的-O。
...全文
152 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2013-03-05
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
layout regs
用这个命令显示每句C/C++代码对应的汇编指令,再单步调试。
stitchwillow 2013-03-05
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
layout regs
什么意思,不是很明白能讲的详细一点吗?
赵4老师 2013-03-05
  • 打赏
  • 举报
回复
重建所有
赵4老师 2013-03-05
  • 打赏
  • 举报
回复
layout regs
stitchwillow 2013-03-05
  • 打赏
  • 举报
回复
引用 1 楼 liao05050075 的回复:
我这没什么异常。。
用gdb单步调试,我这里到else if ((0 == a) && ('\t' != c))这一行再next到printf("world\r\n");这一行 再next打印world之后就会跑到else if ((0 == a) && ('\t' != c))这一行,这很正常吗,难道正常的不是应该跑到return 0;这一行吗?
xyc0305 2013-03-05
  • 打赏
  • 举报
回复
神奇的代码,神奇的BUG,学习了!
stitchwillow 2013-03-05
  • 打赏
  • 举报
回复
引用 12 楼 zhao4zhong1 的回复:
引用 11 楼 palm008 的回复: 我验证过,centos64位 gcc4.4.6 的却有楼主说的问题 也不排除是gcc有bug。套用之前一同事的名言:“凡是人造的东西都有bug!” 其实我认为:“上帝造的东西也有bug!不然怎么可能进化出人类?”
一直都很信任gdb的。
stitchwillow 2013-03-05
  • 打赏
  • 举报
回复
引用 10 楼 palm008 的回复:
你给的分数太少了。
抱歉,一直不知道怎么赚分,所以分越来越少,也就给不了多少分了。
赵4老师 2013-03-05
  • 打赏
  • 举报
回复
引用 11 楼 palm008 的回复:
我验证过,centos64位 gcc4.4.6 的却有楼主说的问题
也不排除是gcc有bug。套用之前一同事的名言:“凡是人造的东西都有bug!” 其实我认为:“上帝造的东西也有bug!不然怎么可能进化出人类?”
palm008 2013-03-05
  • 打赏
  • 举报
回复
我验证过,centos64位 gcc4.4.6 的却有楼主说的问题
palm008 2013-03-05
  • 打赏
  • 举报
回复
你给的分数太少了。
stitchwillow 2013-03-05
  • 打赏
  • 举报
回复
引用 8 楼 zhao4zhong1 的回复:
我瞎猜可能是优化生成的等价汇编代码你暂时没看懂。
我没有做过优化,代码就是上面的代码,编译的时候就是gcc -o name file.c -g 很感谢你的帮助。
赵4老师 2013-03-05
  • 打赏
  • 举报
回复
我瞎猜可能是优化生成的等价汇编代码你暂时没看懂。
stitchwillow 2013-03-05
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
引用 3 楼 zhao4zhong1 的回复: layout regs 用这个命令显示每句C/C++代码对应的汇编指令,再单步调试。
抱歉,看不懂上面那个框上的汇编究竟是什么意思,还是麻烦你讲明白点,为什么顺序执行的语句,在gdb调试的时候会无缘无故的往回跑?
liao05050075 2013-03-04
  • 打赏
  • 举报
回复
我这没什么异常。。

3,882

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 其它技术问题
社区管理员
  • 其它技术问题社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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