- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
gdb单步调试(中)
一、设置断点( BreakPoint )我们用 break 命令来设置断点。正面有几点设置断点的方法:break function在进入指定函数时停住。 C++ 中可以使用 class::function 或 function(type,type) 格式来指定函数名。break linenum在指定行号停住。break +offsetbreak -offset在当前行号的前面或后面的 offset 行停住。 offiset 为自然数。break filename:linenum在源文件 filename 的 linenum 行处停住。break filename:function在源文件 filename 的 function 函数的入口处停住。break *address在程序运行的内存地址处停住。breakbreak 命令没有参数时,表示在下一条指令处停住。break ... if condition... 可以是上述的参数, condition 表示条件,在条件成立时停住。比如在循环境体中,可以设置 break if i=100 ,表示当 i 为 100 时停住程序。查看断点时,可使用 info 命令,如下所示:(注: n 表示断点号)info breakpoints [n]info break [n]二、设置观察点( WatchPoint )观察点一般来观察某个表达式(变量也是一种表达式)的值是否有变化了,如果有变化,马上停住程序。我们有下面的几种方法来设置观察点:watch expr为表达式(变量) expr 设置一个观察点。一量表达式值有变化时,马上停住程序。rwatch expr当表达式(变量) expr 被读时,停住程序。awatch expr当表达式(变量)的值被读或被写时,停住程序。info watchpoints列出当前所设置了的所有观察点。三、设置捕捉点( CatchPoint )你可设置捕捉点来补捉程序运行时的一些事件。如:载入共享库(动态链接库)或是 C++ 的异常。设置捕捉点的格式为:catch event当 event 发生时,停住程序。 event 可以是下面的内容:1 、 throw 一个 C++ 抛出的异常。( throw 为关键字)2 、 catch 一个 C++ 捕捉到的异常。( catch 为关键字)3 、 exec 调用系统调用 exec 时。( exec 为关键字,目前此功能只在 HP-UX 下有用)4 、 fork 调用系统调用 fork 时。( fork 为关键字,目前此功能只在 HP-UX 下有用)5 、 vfork 调用系统调用 vfork 时。( vfork 为关键字,目前此功能只在 HP-UX 下有用)6 、 load 或 load libname 载入共享库(动态链接库)时。( load 为关键字,目前此功能只在 HP-UX 下有用)7 、 unload 或 unload libname 卸载共享库(动态链接库)时。( unload 为关键字,目前此功能只在 HP-UX 下有用)tcatch event只设置一次捕捉点,当程序停住以后,应点被自动删除。四、维护停止点上面说了如何设置程序的停止点, GDB 中的停止点也就是上述的三类。在 GDB 中,如果你觉得已定义好的停止点没有用了,你可以使用 delete 、 clear 、 disable 、 enable 这几个命令来进行维护。clear清除所有的已定义的停止点。clear functionclear filename:function清除所有设置在函数上的停止点。clear linenumclear filename:linenum清除所有设置在指定行上的停止点。delete [breakpoints] [range...]删除指定的断点, breakpoints 为断点号。如果不指定断点号,则表示删除所有的断点。 range 表示断点号的范围(如: 3-7 )。其简写命令为 d 。比删除更好的一种方法是 disable 停止点, disable 了的停止点, GDB 不会删除,当你还需要时, enable 即可,就好像回收站一样。disable [breakpoints] [range...]disable 所指定的停止点, breakpoints 为停止点号。如果什么都不指定,表示 disable 所有的停止点。简写命令是 dis.enable [breakpoints] [range...]enable 所指定的停止点,
您可能关注的文档
- Ubuntu 10.04下安装libgtk2.0-dev.doc
- Gtk与Directfb的移植全过程.doc
- LINUX下禁止ping命令的方法与windows下禁止ping的设置方法.doc
- 英汉翻译中引伸手法的运用.doc
- 英语单词记忆的词根词缀总结-amaor编辑.doc
- MySQL主-主双向同步测试报告.doc
- 河南科技大学研究生英语课堂作业2.doc
- 自动化毕业论文文献综述.doc
- 道林格雷堕落原因分析.doc
- Linux编辑器vi使用方法详细介绍.doc
- 七章货物的保险.pptx
- 三章国际间接投资.pptx
- 人性假设理论.pptx
- 外研高一英语必修三ModuleIntroduction汇总市公开课获奖课件省名师示范课获奖课件.pptx
- 月相成因优质获奖课件.pptx
- 小学二年级语文课件《狐假虎威》省名师优质课赛课获奖课件市赛课一等奖课件.pptx
- 养羊业概况专题知识讲座.pptx
- 微生物的实验室培养市公开课获奖课件省名师示范课获奖课件.pptx
- 人教版六年级下册式与方程整理与复习市公开课获奖课件省名师示范课获奖课件.pptx
- 必威体育精装版高中精品语文教学:第二单元-第7课-诗三首:涉江采芙蓉、-短歌行、归园田居市公开课获奖课件省名师.pptx
文档评论(0)