python 监控变量变化_GDB watch命令:监控变量值的变化

《GDB break命令》一节,给大家介绍了使用 break 命令在程序某一行的位置打断点。但还有一些场景,我们需要监控某个变量或者表达式的值,通过值的变化情况判断程序的执行过程是否存在异常或者 Bug。这种情况下,break 命令显然不再适用,推荐大家使用 watch 命令。

要知道,GDB 调试器支持在程序中打 3 种断点,分别为普通断点、观察断点和捕捉断点。其中 break 命令打的就是普通断点,而 watch 命令打的为观察断点,关于捕捉断点,后续章节会做详细讲解。

使用 GDB 调试程序的过程中,借助观察断点可以监控程序中某个变量或者表达式的值,只要发生改变,程序就会停止执行。相比普通断点,观察断点不需要我们预测变量(表达式)值发生改变的具体位置。

所谓表达式,就是包含多个变量的式子,比如 a+b 就是一个表达式,其中 a、b 为变量。

对于监控 C、C++ 程序中某变量或表达式的值是否发生改变,watch 命令的语法非常简单,如下所示:

(gdb) watch cond

其中,conde 指的就是要监控的变量或表达式。

和 watch 命令功能相似的,还有 rwatch 和 awatch 命令。其中:

rwatch 命令:只要程序中出现读取目标变量(表达式)的值的操作,程序就会停止运行;

awatch 命令:只要程序中出现读取目标变量(表达式)的值或者改变值的操作,程序就会停止运行。

强调一下,watch 命令的功能是:只有当被监控变量(表达式)的值发生改变,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来回答你的问题。关于gdbstub中的基本命令,gdbstub是GDB的一种运行模式,用于远程调试。在gdbstub模式下,可以使用以下基本命令: 1. target remote [HOST:]PORT:连接到远程主机的gdbserver进程。 2. set remotebaud BAUD:设置远程串行连接的波特率。 3. set remote hardware-breakpoint-limit N:设置远程硬件断点的数量限制。 4. set remote hardware-watchpoint-limit N:设置远程硬件监视点的数量限制。 5. monitor reset:重置目标设备。 6. monitor halt:停止目标设备。 7. monitor resume:恢复目标设备的执行。 8. continue:继续执行目标设备的程序。 9. step:单步执行程序。 10. next:单步执行程序,但是不进入函数内部。 11. finish:执行程序直到当前函数返回。 12. break:设置断点。 13. watch:设置监视点。 14. info registers:查看寄存器的。 15. x/Nfu ADDR:查看内存中的数据。 关于Linux gdb命令的用法,GDB是一个功能强大的程序调试器,可以帮助我们找出程序中的错误。以下是一些常用的命令: 1. run:运行程序。 2. break:设置断点。 3. next:单步执行程序。 4. step:单步执行程序,但是会进入函数内部。 5. finish:执行程序直到当前函数返回。 6. watch:设置监视点。 7. info locals:查看局部变量。 8. info functions:查看程序中的函数列表。 9. info breakpoints:查看已设置的断点。 10. print:查看变量。 11. backtrace:查看函数的调用栈。 12. set:修改变量。 13. run ARGS:运行程序时传递参数。 14. file:加载要调试的可执行文件。 15. quit:退出GDB。 希望这些信息能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值