b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

gdb 条件断点_gdb break_windows 调试工具(14)

电脑杂谈  发布时间:2017-04-10 23:05:23  来源:网络整理

设置捕捉点(CatchPoint)

可设置捕捉点来补捉程序运行时的一些事件。如载入共享库(动态链接库)或是C++的异常。设置捕捉点的格式为:

catch

当event发生时,停住程序。event可以是下面的内容:

●throw 一个C++抛出的异常 (throw为关键字)。

●catch 一个C++捕捉到的异常 (catch为关键字)。

●exec 调用系统调用exec时(exec为关键字,目前此功能只在HP-UX下有用)。gdb 条件断点

●fork 调用系统调用fork时(fork为关键字,目前此功能只在HP-UX下有用)。

●vfork 调用系统调用vfork时(vfork为关键字,目前此功能只在HP-UX下有)。

●load 或 load 载入共享库(动态链接库)时 (load为关键字,目前此功能只在HP-UX下有用)。

●unload 或 unload 卸载共享库(动态链接库)时 (unload为关键字,目前此功能只在HP-UX下有用)。

tcatch

只设置一次捕捉点,当程序停住以后,应点被自动删除。

维护停止点

上面说了如何设置程序的停止点,gdb中的停止点也就是上述的三类。在gdb中,如果觉得已定义好的停止点没有用了,可以使用delete、clear、disable、enable这几个命令来进行维护。

Clear

清除所有的已定义的停止点。

clear

clear

清除所有设置在函数上的停止点。

clear

clear

清除所有设置在指定行上的停止点。

delete [breakpoints] [range…]

删除指定的断点,breakpoints为断点号。如果不指定断点号,则表示删除所有的断点。range 表示断点号的范围(如:3-7)。其简写命令为d。

比删除更好的一种方法是disable停止点。disable了的停止点,gdb不会删除,当还需要时,enable即可,就好像回收站一样。

disable [breakpoints] [range…]

disable所指定的停止点,breakpoints为停止点号。如果什么都不指定,表示disable所有的停止点。简写命令是dis.

enable [breakpoints] [range…]

enable所指定的停止点,breakpoints为停止点号。

enable [breakpoints] once range…

enable所指定的停止点一次,当程序停止后,该停止点马上被gdb自动disable。

enable [breakpoints] delete range…

enable所指定的停止点一次,当程序停止后,该停止点马上被gdb自动删除。

停止条件维护

前面在介绍设置断点时,提到过可以设置一个条件,当条件成立时,程序自动停止。这是一个非常强大的功能,这里,专门介绍这个条件的相关维护命令。

一般来说,为断点设置一个条件,可使用if关键词,后面跟其断点条件。并且,条件设置好后,可以用condition命令来修改断点的条件(只有break和watch命令支持if,catch目前暂不支持if)。

condition

修改断点号为bnum的停止条件为expression。

condition

清除断点号为bnum的停止条件。

还有一个比较特殊的维护命令ignore,可以指定程序运行时,忽略停止条件几次。

ignore

表示忽略断点号为bnum的停止条件count次。

为停止点设定运行命令

可以使用gdb提供的command命令来设置停止点的运行命令。也就是说,当运行的程序在被停住时,我们可以让其自动运行一些别的命令,这很有利行自动化调试。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-40594-14.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...