gdb中断点的使用
2017-04-19 20:49
190 查看
设置断点:
(gdb) break 断点
程序运行后,到达断点就会自动暂停运行。此时就可以查看该时刻的变量值,显示栈针,重新设置断点或者重新运行等。
断点可以通过函数名,文件内的行号来设置,也可以先指定文件名再指定行号,还可以指定与暂停位置的偏移量,或者用地址来设置。
(gdb) break 函数名
(gdb) break 行号
(gdb) break 文件名:行号
(gdb) break 文件名:函数名
(gdb) break +偏移量
(gdb) break -偏移量
(gdb) break *地址
在设置断点的时候,如果不指定断点位置,就在下一行代码上设置断点。
条件断点
(gdb) break 断点 if 条件
仅在特定条件下中断。对于已存在的断点,可使用condition为其添加条件。
(gdb) break 断点编号 条件
而删除指定编号断点的触发条件同样使用condition。
(gdb) condition 断点编号
查询断点
(gdb) info break
监视点
要想找到变量在何处被改变,可以使用 watch 命令(监视点, watchpoint)。
(gdb) watch <表达式>
<表达式>发生变化时暂停运行。<表达式>的意思是常量或变量等。
(gdb) awatch <表达式>
<表达式>被访问、改变时暂停运行。
(gdb) rwatch <表达式>
<表达式>被访问时暂停运行。
删除断点和监视点
用 delete 命令删除断点和监视点。
(gdb) delete <编号>
(gdb) break 断点
程序运行后,到达断点就会自动暂停运行。此时就可以查看该时刻的变量值,显示栈针,重新设置断点或者重新运行等。
断点可以通过函数名,文件内的行号来设置,也可以先指定文件名再指定行号,还可以指定与暂停位置的偏移量,或者用地址来设置。
(gdb) break 函数名
(gdb) break 行号
(gdb) break 文件名:行号
(gdb) break 文件名:函数名
(gdb) break +偏移量
(gdb) break -偏移量
(gdb) break *地址
在设置断点的时候,如果不指定断点位置,就在下一行代码上设置断点。
条件断点
(gdb) break 断点 if 条件
仅在特定条件下中断。对于已存在的断点,可使用condition为其添加条件。
(gdb) break 断点编号 条件
而删除指定编号断点的触发条件同样使用condition。
(gdb) condition 断点编号
查询断点
(gdb) info break
监视点
要想找到变量在何处被改变,可以使用 watch 命令(监视点, watchpoint)。
(gdb) watch <表达式>
<表达式>发生变化时暂停运行。<表达式>的意思是常量或变量等。
(gdb) awatch <表达式>
<表达式>被访问、改变时暂停运行。
(gdb) rwatch <表达式>
<表达式>被访问时暂停运行。
删除断点和监视点
用 delete 命令删除断点和监视点。
(gdb) delete <编号>
相关文章推荐
- Ubuntu下使用GDB断点Go程序
- gdb 使用condition命令设置断点条件
- GDB内存断点(Memory break)的使用举例
- linux gdb 断点设置以及使用
- docker使用GDB,无法进入断点的解决方法
- Ubuntu 14.04 Qt5 使用 GDB-ImageWatch 插件断点查看 opencv cv::Mat 矩阵
- Ubuntu下使用GDB断点Go程序
- GDB内存断点(Memory break)的使用举例
- gdb 内存断点watch 的使用
- GDB工具如何使用断点信息
- 如何使用gdb给某个模块(文件)的所有函数下断点
- Ubuntu 14.04 Qt5 使用 GDB-ImageWatch 插件断点查看 opencv cv::Mat 矩阵
- 使用gdb调试程序简介
- 断点的使用
- 浅谈gdb在漏洞发掘中的使用
- 使用gdb调试程序简介
- 几则gdb使用技巧
- GDB调试器使用详解(二)
- GDB调试精粹及使用实例
- Gdb调试精粹及使用实例