问题标签 [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.
xcode - 如何在 Xcode 10 中设置观察点?
从理论上讲,如果我们中断应用程序的执行,并右键单击调试区域的变量部分中列出的变量,我们会得到一个带有选项“Watch variableName”的上下文菜单,如果我们点击它,一个为该变量设置了观察点...但是...我总是收到这条讨厌的消息:“错误:在此帧中找不到名为'$R#'的变量”,其中#因我尝试观察的变量而异。
我在这里做错了吗?
breakpoints - 如何在 LLDB 中使用硬件断点?
我正在使用 lldb Python API 来设置观察点并打印它:
从源代码:
我可以看到性能也很慢。有什么办法可以使用硬件断点?
编辑:
查看源代码似乎必须使用读取或写入设置来创建观察点,True
这就是我的情况。
stm32 - STM32 GPIO 寄存器上的观察点
在 STM32F4 上使用 Keil µVision 我试图向 GPIO 数据寄存器添加一个观察点,但它不会触发。我希望在输出数据写入该寄存器后立即触发观察点。将观察点设置为 os 计时器可以正常工作。据我所知,外设寄存器是在 STM32 F4 中映射的内存。
我在这里缺少任何(简单)解释吗?非常感谢任何提示。
c - eclipse中的Watchpoint vs watch表达式
我正在处理跨不同文件拆分的冗长 C 代码。在调试时,我希望模拟在某个参数的值发生更改(而不是特定值)的地方停止。
我在eclipse中遇到了watchpoint和watch expression feature有什么区别,什么最适合跟踪某个参数?
这里不是专家,所以请善待:)谢谢:)
c - M4 皮质中的观察点
我有一个全局常量数组const uint32_t p[5] = {1, 2, 3, 4, 5};
。我已将其设置为受读保护
当我使用 for 循环访问数组成员时,会生成 5 次中断,这正是我想要的。
但是,当我尝试使用没有任何循环的简单打印语句访问变量时
, DebugMon_interrupt 不产生。这种行为非常奇怪。
如果我从数组中删除 const 关键字,那么它可以正常工作,即在访问数组元素时,无论有无循环都会产生中断。
visual-studio-code - 如何在 vscode 中设置 C/C++ 内存观察点?
在gdb
I can typewatch &variable
中,然后继续,每当有东西写入该地址时,gdb 就会中断。
我正在使用 vscode 进行调试并想做同样的事情(这与监视窗口不同,它只会在断点被击中后显示变量值)。可能吗?
我可以通过单击“+”并输入来手动添加断点,&variable
但它永远不会变为活动状态并说模块尚未加载。我已经尝试-exec watch &variable
在调试器控制台窗口中手动输入,但是在使用播放按钮继续执行后它会挂起(vscode 认为程序正在再次运行,但事实并非如此)。
为此有一些 github 问题,但它们无故关闭:
linux - 在当前进程中添加观察点(不在 gdb 中,不用于调试)
我想知道是否可以在当前进程中添加观察点,以便在读取或写入内存时(取决于标志)将调用回调。
有相关的问题,但它们都是关于使用 gdb 或其他调试器进行调试的。这不是为了调试,也不是在跟踪另一个进程时。我希望进程本身在自己的地址空间中的内存位置设置观察点。通常对于这种事情,我会使用 ptrace,但据我从手册页了解(“ptrace() 系统调用提供了一种方法,一个进程(“跟踪器”)可以通过该方法观察和控制另一个进程(“tracee”),...” - 强调我的)它不能用于在当前进程中添加观察点。
有没有办法在不使用 ptrace 的情况下做到这一点?或者我可以在当前进程中使用 ptrace 来执行此操作吗?
c - gdb 打印长值观察使用 rand() 设置的变量
我正在使用gdb
脚本来观察变量的变化awatch
:
该程序:
输出似乎正确:
但是,如果我使用以下代码切换到此代码rand()
:
并运行相同的脚本,gdb
开始打印错误的值:
我读过这篇文章:gdb 在修改参数和编译时打印错误的值,-fvar-tracking
但它没有帮助。
为什么会有这种行为rand()
?
c++ - 为什么 GDB 观察点在转换为 std::array 的值类型时不会触发?
使用 GDB 10.1,我在以下位置设置了一个观察点std::array<Data, 1024> m_slots
:
哪里Data
是struct
。GDB 可以print sizeof(Data) = 32
并且成功地设置(硬件)观察点。当为每个字段构造/分配对象时,观察点会触发。当个别字段被更新时,观察点不会触发。相反,如果我这样做:
或者
然后观察点在字段更改时触发。在我看来,std::array<Data, 1024>::value_type
正是如此Data
。为什么行为不同?
x86 - 是否可以设置当 cpu 写入特定地址时中断的中断?
写入特定地址时是否可以使 x86 cpu 中断?
我想要一种硬件机制来监视某些地址的变化。