gdb - 在 GDB 中设置观察点
问题描述
有没有办法为特定变量设置观察点,但只观察它的值是否在特定函数中发生变化?我有缩小变量值的函数,所以只想“观察”它在函数中的值,而不是仅仅做
(gdb) watch <variable-name>
因为这将需要更长的时间才能运行。
解决方案
我有缩小变量值的函数,所以只想“观察”它在函数中的值,而不仅仅是做
watch <variable-name>
.
如果您在具有硬件观察点支持的系统上,并且变量是全局的,那么仅在感兴趣的函数中观察变量没有任何优势——观察点没有开销,所以您不妨将其保留在地方。
但是让我们假设变量不是全局变量,或者您的平台只有软件观察点(非常慢)。
在这种情况下,您要做的是在感兴趣的函数的入口和返回时设置断点(请参阅此答案)。
有了这些断点后,将命令附加到它们。入口断点命令将设置一个观察点,返回断点将删除它。
推荐阅读
- javascript - 如何在 Vue 中更新、保存和显示头像?
- python - 我在 pygame 中的游戏无法正常运行
- java - 如何在方法签名中调用 application.yaml 参数?爪哇
- haproxy - 如何在fluentd中读取未转义的json?
- python - 计算极坐标中样条曲线的梯度
- rest - 来自 Rest API 的 Magento 2 股票信息
- react-admin - React admin Content-Range 标头在不存在时丢失
- html - 如何使视频的高度与 html 中的窗口相同
- sql - 为什么我的带有聚合函数的 SQL 查询在较大的查询中运行时会向我返回错误的值?
- mysql - 我无法登录 mysql 服务器,当我尝试以 root 身份登录时,即使我输入了正确的密码。(我确信密码是正确的 100%)