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可以监测在你的程序中的任何信号。

gdb学习-checkpoint,watch的更多相关文章

  1. gdb学习

    gdb学习 [参考资料] http://www.cnblogs.com/jiu0821/p/4483804.html 程序的运行状态有"运行"."暂停".&qu ...

  2. Linux之GDB学习

    Linux之GDB学习 GDB是一款优秀的调试工具,懂的人自然懂,一直以来用它都没有好好整理过使用方法,我用的也是皮毛,目前先整理一下皮毛,日后再更新 使用方法 编译C++ 从编译的角度上来说,需要在 ...

  3. Linux相关——关于gdb的checkpoint & breakpoints指令

    1,checkpoint ,,,这个指令简直,,,相见恨晚啊,居然现在才发现,.. 好吧来介绍一下这个指令:checkpoint(检查点) 我们调试程序,常常会出现好不容易发现了错误,却已经跑完那个地 ...

  4. GDB 学习

    通常使用gdb在Linux下调试C/C++程序,编译的时候加上-g选项(gcc -g ......).下面总结的是我自己经常使用(当然也有一些用的比较少)的gdb命令. (1)开始及退出 开始:gdb ...

  5. GCC/GDB学习

    GCC学习 1.gcc是根据后缀名来区分文件的 .c : c语言源文件 .a : 目标文件构成的库文件 .C/.cc/.cxx : c++源文件 .h : 头文件 .i : 预处理过的C源文件 .ii ...

  6. GDB使用checkpoint复现bug

    今天面试被问到一个问题,如何调试多进程的程序,我回答gdb attach [pid],之后又问如果程序中有些数据读取不对,但这种现象是偶然发生的,这时候要怎么操作,当时就懵了......,通过查找资料 ...

  7. GDB学习之道:GDB调试精粹及使用实例

    一:列文件清单  1. List  (gdb) list line1,line2 二:执行程序  要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出 ...

  8. gdb学习(一个)[再版]

    概要 gdb是GNU debugger的缩写,是编程调试工具. 功能 1.启动程序,能够依照用户自己定义的要求随心所欲的执行程序. 2.可让被调试的程序在用户所指定的断点处停住 (断点能够是条件表达式 ...

  9. gdb学习(二)[第二版]

    查看运行时数据 print - 查看变量值 ptype – 查看变量类型 #ptype i #ptype "aaa" 打印字符串"aaa"的类型 #ptype  ...

随机推荐

  1. tomcat work目录的作用就是编译每个项目里的jsp文件为java文件如果项目没有jsp页面则这个项目文件夹为空

    最近发现,很多网友喜欢把tomcat的work目录里的东西叫做缓存,其实那不是很恰当,work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录,这也正是为什么它 ...

  2. POJ 2191

    只会打表 #include <iostream> #include <cstdio> #include <cstdlib> #include <cstring ...

  3. 在不同的浏览器下FORM及它的小伙伴们默认样式的CSS属性值是不全然一致

    我们一般在定义CSS样式的时候都须要定义去掉HTML标签默认样式的CSS,原因是在不同的浏览器以下它们的表现出来的默认样式不全然一致,我们要保证在不同的浏览器下它们能正常显示出我们想要达到的预期效果, ...

  4. Boost.Asio c++ 网络编程翻译(16)

    TCP异步服务端 核心功能和同步服务端的功能类似,例如以下: class talk_to_client : public boost::enable_shared_from_this<talk_ ...

  5. linux下測试硬盘读写速度

    买了个ssd硬盘,就想着跟普通的机械盘做个比較.由于桌面装的是ubuntu系统,所以就想用linux的命令简单測一下好了 以下是ssd的性能数据: 測试写: xxx@WaitFish:~ > t ...

  6. 调用imagemagick做响应图片

    设计出图后经常需要改下尺寸放在别的项目上使用,每次都是设计手工处理,其实图片服务可以做更多事情,比如借助强大的im,可以通过url控制图片尺寸 var childProcess = require(' ...

  7. vmvare如何安装xp虚拟机

    http://jingyan.baidu.com/article/a681b0ded8e25e3b19434640.html 一直以来,许多的朋友都不熟悉怎么安装在虚拟机上装windows系统 200 ...

  8. 个人作业—Alpha项目测试

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass2 这个作业要求在哪里 https://edu.cnblo ...

  9. 获取类似QQ似的时间,昨天或具体日期

    最近在做一个聊天功能,并且要在用户列表上显示最后聊天时间,类似QQ的日期显示. 问群里和百度后,群里没人鸟我,网上也没搜到,最后苦于无奈只能自己封装了. 不过话说回来了,大哥与小弟的区别就是大哥写好封 ...

  10. ubuntu16.04 安装 docker-compose

    下载安装 docker-composecurl -L https://github.com/docker/compose/releases/download/1.15.0/docker-compose ...