CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Linux/Unix社区 >  程序开发区

关于gdb调试(break)

楼主shanglinhu(shanglinhu)2005-12-14 14:39:21 在 Linux/Unix社区 / 程序开发区 提问

我是一个新手,关于gdb调试要问大家,比如下面的程序  
  main()  
  {  
          int   i=0;  
          for   (i=0;i<100;i++)  
        {  
                  printf("%d",i);  
          }  
  }  
  问题一:因为如果不加断点,运行run,程序就自动执行完毕,所以先用了个break   main,当运行run后,现在我想在i=10时使程序停止一下,我加了句break   if   (i==10),但提示说Note:breakpoint   1   also   set   at   pc   0x804836a.  
  Breakpoint   2   at   0x804836a:   file   test.c,   line   6,我用info   b查看,显示有两个断点了,但条件断点不起作用,不知道怎么回事?  
  问题二:这里break   main不加的话就直接运行了,难道调试时每次都要加么?  
  问题三:如果在run前设断点break   if   (i==10),提示No   default   breakpoint   address   now,但为什么break   main就可以呢? 问题点数:50、回复次数:3Top

1 楼x86(大雪)回复于 2005-12-14 15:13:29 得分 25

假设    
  printf("%d",i);  
  是第8行。  
   
  b   8  
  设置第八行为第一个断点  
   
  condition   1   i==10  
  设置第一个断点当i==10时有效Top

2 楼YanDong_8212(谢科)回复于 2005-12-15 09:17:17 得分 25

一、break   if   i=100,这个才是设置条件断点。  
  二、每次调试都要单独加,但如果你不是从main开始想调试函数,可以直接输入break   if   i=100,同样能运行。  
  三、如果break   if   i=100不行,可能是没加-g编译选项。如果i不会等于100,加了断点也不会停。Top

3 楼shanglinhu(shanglinhu)回复于 2005-12-15 14:03:11 得分 0

我试了一下,如果break   if   i   =   100的话,会在i=100时停止,但往下就不会执行了,应该是break   if   i==100才对,但我又试了下,break   if   i==100不能放在太前面设置,否则不起作用,在循环开始时再设置才会停下来,我也不知道怎么回事.哪位能给我解释一下?Top

相关问题

  • 关于gdb的调试
  • gdb调试的问题??
  • gdb调试出现奇怪问题 , 怎么老围着 init.c 转? list , break 命令失效?!
  • 用gdb同时调试两个文件
  • 如何在gdb调试多线程?
  • 用gdb调试strcat()时的问题
  • 使用gdb进行C程序调试!
  • Fedora Core 3 下gdb调试问题
  • 如何使用GDB 调试STL代码?
  • Linux下的调试程序哪个比较好?GDB怎么样?

关键词

  • gdb

得分解答快速导航

  • 帖主:shanglinhu
  • x86
  • YanDong_8212

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo