问题标签 [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.

0 投票
1 回答
656 浏览

xcode - 如何在 Xcode 10 中设置观察点?

从理论上讲,如果我们中断应用程序的执行,并右键单击调试区域的变量部分中列出的变量,我们会得到一个带有选项“Watch variableName”的上下文菜单,如果我们点击它,一个为该变量设置了观察点...但是...我总是收到这条讨厌的消息:“错误:在此帧中找不到名为'$R#'的变量”,其中#因我尝试观察的变量而异。

我在这里做错了吗?

0 投票
0 回答
386 浏览

breakpoints - 如何在 LLDB 中使用硬件断点?

我正在使用 lldb Python API 来设置观察点并打印它:

从源代码:

我可以看到性能也很慢。有什么办法可以使用硬件断点?

编辑:

查看源代码似乎必须使用读取或写入设置来创建观察点,True这就是我的情况。

0 投票
3 回答
421 浏览

stm32 - STM32 GPIO 寄存器上的观察点

在 STM32F4 上使用 Keil µVision 我试图向 GPIO 数据寄存器添加一个观察点,但它不会触发。我希望在输出数据写入该寄存器后立即触发观察点。将观察点设置为 os 计时器可以正常工作。据我所知,外设寄存器是在 STM32 F4 中映射的内存。

我在这里缺少任何(简单)解释吗?非常感谢任何提示。

0 投票
1 回答
465 浏览

c - eclipse中的Watchpoint vs watch表达式

我正在处理跨不同文件拆分的冗长 C 代码。在调试时,我希望模拟在某个参数的值发生更改(而不是特定值)的地方停止。

我在eclipse中遇到了watchpoint和watch expression feature有什么区别,什么最适合跟踪某个参数?

这里不是专家,所以请善待:)谢谢:)

0 投票
1 回答
96 浏览

c - M4 皮质中的观察点

我有一个全局常量数组const uint32_t p[5] = {1, 2, 3, 4, 5};。我已将其设置为受读保护

当我使用 for 循环访问数组成员时,会生成 5 次中断,这正是我想要的。

但是,当我尝试使用没有任何循环的简单打印语句访问变量时

, DebugMon_interrupt 不产生。这种行为非常奇怪。

如果我从数组中删除 const 关键字,那么它可以正常工作,即在访问数组元素时,无论有无循环都会产生中断。

0 投票
1 回答
1562 浏览

visual-studio-code - 如何在 vscode 中设置 C/C++ 内存观察点?

gdbI can typewatch &variable中,然后继续,每当有东西写入该地址时,gdb 就会中断。

我正在使用 vscode 进行调试并想做同样的事情(这与监视窗口不同,它只会在断点被击中后显示变量值)。可能吗?

我可以通过单击“+”并输入来手动添加断点,&variable但它永远不会变为活动状态并说模块尚未加载。我已经尝试-exec watch &variable在调试器控制台窗口中手动输入,但是在使用播放按钮继续执行后它会挂起(vscode 认为程序正在再次运行,但事实并非如此)。

为此有一些 github 问题,但它们无故关闭:

0 投票
1 回答
308 浏览

linux - 在当前进程中添加观察点(不在 gdb 中,不用于调试)

我想知道是否可以在当前进程中添加观察点,以便在读取或写入内存时(取决于标志)将调用回调。

有相关的问题,但它们都是关于使用 gdb 或其他调试器进行调试的。这不是为了调试,也不是在跟踪另一个进程时。我希望进程本身在自己的地址空间中的内存位置设置观察点。通常对于这种事情,我会使用 ptrace,但据我从手册页了解(“ptrace() 系统调用提供了一种方法,一个进程(“跟踪器”)可以通过该方法观察和控制另一个进程(“tracee”),...” - 强调我的)它不能用于在当前进程中添加观察点。

有没有办法在不使用 ptrace 的情况下做到这一点?或者我可以在当前进程中使用 ptrace 来执行此操作吗?

0 投票
1 回答
61 浏览

c - gdb 打印长值观察使用 rand() 设置的变量

我正在使用gdb脚本来观察变量的变化awatch

该程序:

输出似乎正确:

但是,如果我使用以下代码切换到此代码rand()

并运行相同的脚本,gdb开始打印错误的值:

我读过这篇文章:gdb 在修改参数和编译时打印错误的值,-fvar-tracking但它没有帮助。

为什么会有这种行为rand()

0 投票
0 回答
36 浏览

c++ - 为什么 GDB 观察点在转换为 std::array 的值类型时不会触发?

使用 GDB 10.1,我在以下位置设置了一个观察点std::array<Data, 1024> m_slots

哪里Datastruct。GDB 可以print sizeof(Data) = 32并且成功地设置(硬件)观察点。当为每个字段构造/分配对象时,观察点会触发。当个别字段被更新时,观察点不会触发。相反,如果我这样做:

或者

然后观察点在字段更改时触发。在我看来,std::array<Data, 1024>::value_type正是如此Data。为什么行为不同?

0 投票
1 回答
65 浏览

x86 - 是否可以设置当 cpu 写入特定地址时中断的中断?

写入特定地址时是否可以使 x86 cpu 中断?

我想要一种硬件机制来监视某些地址的变化。