有时候,我们需要用gdb取调试某些系统,但是这些系统又有很高的事实性。
这导致,我们不能够使用常规的gdb断点,中断后再进一步调试,因为者将导致程序被中断,并且等待太久之后,以后的逻辑走向不可预期(多线程)
这个时候,就推荐大家使用这个命令了,command,它可以预置一些命令,用来调试这种,不方便中断,但是可以预期的问题(必现问题,当然你也可以选择持续性的加日志,但是对于某些大型系统而言,每次编译,都是一次折磨)
下面说它的具体用法
首先,我们启动程序,然后加断点
b(reakpoint) xxx
这个时候,用info b 查看 它通常就是breakpoint 1
对应的,我们可以使用d(elete) 1来删除它
也可以使用我们这次主要讲述的command命令,来做一些特别的事情
比如
1 | b xxx //加某个断点 |
这样,当程序运行时,如果触发了断点,就会临时停下来,执行 p val_a 打印信息让我们查看,但是它确不回就此停下导致程序异常,因为他会接着执行c(ontinue)命令继续运行。
这就达到了,我们一定程度上动态调试的目的
- 本文作者: crazyboy
- 本文链接: http://crazyboy.www.crazyboy.info/blog/blog/2022/04/01/it/linux/gdb/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!