问题标签 [watchpoint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
debugging - 如何监控在 gdb 中设置观察点所需的资源?
在 x86 GDB 上使用一些特殊的硬件资源(调试寄存器?)来设置观察点。在某些情况下,当资源不足时,GDB 会设置观察点,但它不起作用。有没有办法以编程方式监控 Linux 上这些资源的可用性?也许在procfs中的一些信息,或其他东西。我需要这些信息来选择池中的机器进行调试。
来自 GDB Internals: “由于它们依赖于硬件资源,因此硬件断点的数量可能会受到限制;当用户要求更多时,gdb 将开始尝试设置软件断点。(在某些架构上,尤其是 32 位 x86 平台上,gdb不能总是知道是否有足够的硬件资源来插入所有的硬件断点和观察点。在那些平台上,gdb 只有在继续被调试的程序时才会打印错误消息。)"
“请求了太多不同的观察点。(在某些体系结构上,在恢复调试程序之前无法检测到这种情况。)请注意,x86 调试寄存器用于硬件断点和观察点,因此设置过多的硬件断点可能会导致观察点插入失败。”
“32 位 Intel x86 处理器具有特殊的调试寄存器,旨在促进调试。gdb 提供了一个通用函数库,基于 x86 的端口可用于实现对观察点和硬件辅助断点的支持。”
gdb - 为什么观察点不起作用?
我正在研究 GDB 的观察点。我写了一个简单的测试代码如下:
在我的测试代码中,变量“x”发生了变化,但 gdb 并没有停止。为什么观察点在这里不起作用?非常感谢。
c++ - Is it possible to set a gdb watchpoint programmatically?
I want to set a watchpoint (break on hardware write) temporarily in my C++ program to find memory corruption.
I've seen all the ways to do it manually through gdb, but I would like to actually set the watchpoint via some method in my code so I don't have to break into gdb, find out the address, set the watchpoint and then continue.
Something like:
gdb - GDB 中数组的条件观察点
我们正在调试一个用 C++ 编写的布料模拟器,一个常见的问题是当某些东西将速度修改为NaN
或某个较大的数字时。
目前,我们必须对此进行测试的最佳方法是调用test_velocities_for_NaN()
速度慢且必须手动调用。
有没有办法使用 GDB 自动化这个过程?NaN
即,如果将浮点数组中的任何值修改为大于设置常量的值或某个值,是否能够中断?
c++ - 无法通过 gdb 将观察点设置为本地向量变量
这是我要设置的代码部分:
我用调试标志构建我的程序,这是我在 gdb 中所做的:
那么如何使用 gdb 检查我的 gen 值呢?即使我需要完整的向量值堆栈。
linux - 删除 Linux 内核 3.0.0 中的所有硬件观察点
在 GDB 中设置第一个(也是唯一可能的)硬件观察点watch varname
后,无法通过删除将其删除。
即使我只是退出 GDB,这个观察点似乎在下次重新启动之前都是启用的。当我在 GDB 重新启动后尝试设置另一个硬件观察点时,日志中会出现一条内核消息,告诉我,所有硬件观察点都已被占用。这似乎与设置 GDB 硬件观察点/如何设置软件观察点中的问题相同,但因为我需要一个硬件观察点,所以该解决方案不适用。
是否有工具或系统调用来删除这个(或所有)硬件观察点?CPU 是Core i5,Linux 内核是Ubuntu 11.10 (Oneiric Ocelot) 的 3.0.0-17-generic。
debugging - 硬件观察点是否仅适用于某些内存地址?
我有 gdb 7.3 和支持硬件观察点的设备。
我键入这样的后续命令:
为什么在第一个命令之后不接受硬件观察点?怎么了?
debugging - 在 gdb 中的 errno 上设置观察点
我试图找出 errno 何时更改。
一开始我在gdb中尝试了“watch errno”,导致报错
我可以通过使用“-pthread”编译来解决这个问题。但是,它仍然不起作用,我现在收到错误
当我输入“watch errno”时。我需要做什么才能在 errno 上设置观察点?
eclipse - Eclipse:如何在类内(方法外)放置断点
你好 ,
这是我的示例程序。我正在使用 Eclipse IDE 3.6 版本。
我可以在方法中放置断点(在这种情况下它是主要方法)这里我的问题是,我不能在 (X) 字符串消息行放置断点吗?
请告诉我,提前谢谢??
linux - 结构变量上的 gdb 观察点
我有这样的结构:
这个结构在大代码的不同地方被引用。指向这个结构的指针被传递给不同的函数,因此这个结构中的变量被更新。我想在这个结构中的变量 a 上设置一个观察点,因为它遍历许多函数。看看如何变化。如何设置这个观察点?