Linux相关——关于gdb的checkpoint & breakpoints指令
1,checkpoint
,,,这个指令简直,,,相见恨晚啊,居然现在才发现,。。
好吧来介绍一下这个指令:checkpoint(检查点)
我们调试程序,常常会出现好不容易发现了错误,却已经跑完那个地方了,或者纯属手残直接跑到下一步了(就是我),
这时如果我们又要重新跑一遍来在错误处停下是很浪费时间的,(我就经常跑十多次,每次都错过,,,,)
这个时候就可以用到checkpoint了
使用方法:在程序运行的时候使用checkpoint,它会在当前运行状态设置一个快照,于是当你下一次错过调试点的时候,你就可以回到这个快照继续!而不是重新开始!!!
restart xxx 重新从第xxx号快照开始运行
万一我们忘记了对应位置的快照编号怎么办呢?
没关系我们有info
info checkpoint(s) 查看快照信息
注意如果程序被终止,那么已保存的快照将会消失。(出现段错误也属于程序被强行终止)
2,save breakpoints
这个也是非常有用啊,有时候设置断点很多,但删除了之后(重新调试)想恢复哪些断点怎么办?
难道一个一个手敲?
不,我们有save breakpoints哈哈哈哈哈
食用方法:在gdb的时候,已有断点的状态,我们输入save breakpoints gdb.cfg(任意文件名+任意后缀)(其实我也不知道是不是任意后缀都可以,,,不过目前试过.in 和 .cfg都是可以的
然后当前状态下所有的断点信息就被保存到了gdb.cfg文件中,于是当下一次我们想要恢复断点时,我们只需要输入:
source gdb.cfg(上次保存的文件名)即可
不过这个指令是增加断点,不会删除当前的断点的,
也就是说如果你当前有一个之前没有的断点,不用担心使用了之后会把你现在的断点删除,这个指令的作用只是增加,不是覆盖
最新文章
- C++ map的基本操作和使用
- Atitit.自然语言处理--摘要算法---圣经章节旧约39卷概览bible overview v2 qa1.docx
- MySQL 存储过程控制语句
- /dev/random 和 /dev/urandom的一点备忘
- MVC 表单提交【转】
- git 常用命令使用
- DataTable的筛选,过滤后绑定数据源的两种方法(DataTable的select和使用linq返回List集合)
- JAVA学习之Ecplise IDE 使用技巧(2)第二章:键盘小快手,代码辅助
- Application Designer Security
- zeromq
- SQLserver通过链接服务器连接oracle
- js 动态计算折扣后总价格
- 转HTMLTestRunner 生成测试报告
- vimrc 配置支持backspace
- mysql trigger 权限的说明
- UFLDL教程笔记及练习答案二(预处理:主成分分析和白化)
- 利用hexo+github+nodejs搭建自我博客的一天
- ASP.NET Core中使用GraphQL - 第七章 Mutation
- opencv检错:程序运行过程正常,当跳出函数时出现断言错误(Debug Assertion Failed)
- apollo入门demo实战(二)
热门文章
- Git学习系列 (二)
- CDN 缓存策略(转)
- iOS性能调优工具
- 如何在Mac OS系统下搭建Java开发环境 配置Java环境变量
- Iview 表单提交: Cannot read property 'validate' of undefined
- Java开发工程师(Web方向) - 02.Servlet技术 - 第2章.Cookie与Session
- 流畅的python(笔记)
- 微信小程序navigator跳转失效
- html常用小知识
- 数独:dfs+剪枝+位运算+排除冗余+优化搜索顺序(未完)