checkpoint的内容参考:

http://blog.chinaunix.net/uid-23629988-id-2943273.html

这一篇主要是checkpoint,在next之前加checkpoint命令,然后就可以用 restart 1 来恢复到之前的checkpoint,可以避免从头再来。

用 info checkpoints 可以看到所有的checkpoints。

好像也能看到breakpoint的

(gdb) info checkpoints
* process at 0x80483e7, file test.c, line
process (main process) at 0x80483f7, file test.c, line

watch看

http://simohayha.iteye.com/blog/493091

watch是监测变量改变。watch expr [thread threadno] 是只针对这个线程对变量的改变。

rwatch是针对变量被读; awatch是针对变量被改变或者被读。

break是断点

tbreak是一次性的断点。

break location if condition 是condition为真的时候,到达这个location才会生效。

rbreak是带有regex的断点。

catch event是当事件发生的时候,会生效,

这些事件包括了:throw, catch, exception, exception unhandled, assert, exec, fork, vfork等。

tcatch指一次性的catch.

一个断点(包括 watchpoint和catchpoint)可以有下面四种状态. :

打开,关闭,enabled once,enabled for deletion

分别对应下面的:

disable [breakpoints][range..]  关闭指定的断点或者全部断点(如果没有range)

enable [breakpoints][range..] 打开指定的断点或者全部断点(如果没有range)

enable [breakpoints] once range  临时打开指定的断点(也就是说是一次性的,.

enable [breakpoints] delete range 临时打开指定的断点并只工作一次,也就是一次之后这个断点将会被删除.

clear删除断点,

clear location, 最常用的是:

clear function, clear file:function, clear linenum, clear file:linenum.

clear与delete的区别,clear是给出行号或者函数,而delete是给出断点编号。

condition除了跟在break后面,也是可以单独作为命令使用的:break condition

contidition bnum expression  当expression为真的时候,程序到达这个断点才会停止.

contidition bnum 从断点bnum删除掉一个condition.

ignore bnum count 设置一个断点bnum的忽略次数为count.也就是只有count次数后,这个断点才会起作用.

break里面还可以带上一串命令:

break
commands
///不输出任何东西
silent
///改变x的值
set x = y +
///然后continue
cont
end

用commands + end 来实现

step [count]

加count,是step多次,如果遇到断点会停止。

next [count] 
和step很类似,区别就是不会跟进函数。

step的行为通过step-mode来控制:

  1. set step-mode
  2. set step-mode on
  3. set step-mode off

on就可以使step停止在没有debug信息的函数的第一条指令上。off则是直接执行完这个函数。

这里要注意上面的命令都只是跳一行代码。而不是一条指令。

stepi是执行指令。nexti也是。

gdb可以监测在你的程序中的任何信号。

最新文章

  1. 用神奇的currentColor制作简洁的颜色动画效果
  2. nginx缓冲区优化
  3. 【BZOJ-2115】Xor 线性基 + DFS
  4. python 中类方法@classmethod
  5. 【转】ChainMapper 实例理解一
  6. UI2_视图切换ViewController
  7. Gulp实战和原理解析
  8. MSSQL Server 导入/导出到远程服务器
  9. HDU1632+半平面交
  10. C# -- 扩展方法的应用(Extension Methods)
  11. vim插件配置(一)
  12. type="submit" button的用法
  13. spring mvc和spring的区别
  14. 使用 nodeJs 开发微信公众号(获取access_token)
  15. win10 64位 安装scrapy
  16. URLSearchParams 接口
  17. openstry lua redis实现负载均衡
  18. C#编程(八十)---------- 异常类
  19. ASP.NET MVC 4 (十三) 基于表单的身份验证
  20. 如何使用 window api 转换字符集?(std::string与std::wstring的相互转换)

热门文章

  1. 打造一个全命令行的Android构建系统
  2. XTU1201:模和除
  3. Flex AsDoc 完整版
  4. Light OJ 1288 Subsets Forming Perfect Squares 高斯消元求矩阵的秩
  5. Qt 图像处理之 灰度变换
  6. Mac OS下PHP开发环境的搭建——基于XAMPP和IntelliJ IDEA
  7. c13--数组
  8. 利用机器学习进行DNS隐蔽通道检测——数据收集,利用iodine进行DNS隐蔽通道样本收集
  9. 转:Centos 7 使用git 用 ssh 连接github服务器
  10. [jzoj 5661] 药香沁鼻 解题报告 (DP+dfs序)