问题标签 [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 投票
5 回答
2992 浏览

python - 有没有带有观察点的免费 python 调试器?

pdb 和 winpdb 似乎都缺少这个(对我而言)必不可少的功能。我看到一些东西暗示 WingIDE 有它,但我更喜欢免费的解决方案,如果我必须付费,我更愿意为比 Wing 更好的东西付费。

0 投票
0 回答
537 浏览

watchpoint - 飞思卡尔 CodeWarrior:在 HCS08 上注册观察点

当 SR(全局中断掩码)的 I 位更改其状态时,我需要中断调试。

飞思卡尔 CodeWarrior 6.1

单片机:HCS08

0 投票
4 回答
30127 浏览

gdb - 如何在本地范围的变量上设置持久和条件观察点?

  1. 如果我为当前作用域的本地变量设置了观察点,那么当超出作用域时它将被自动删除。有什么方法可以设置一次并在进入相同范围时使其自动保持活动状态?

  2. 无论如何设置条件观察点,比如watch var1 if var1==0?在我的情况下,条件不起作用。var1只要' 的值发生更改,gdb 就会停止,而不是直到var1 == 0为真。我的 gdb 是 GNU gdb 6.8-debian。

0 投票
2 回答
1643 浏览

iphone - iphone Xcode 3.1.4 3.1.2 SDK,观察点不起作用?

如果我尝试设置观察点,则会收到 gdb 错误:

“没有'Z2'(写观察点)数据包无法清除硬件观察点”

然后它似乎损坏了设备(在重新启动设备时它抱怨操作系统对于 SDK 来说太旧了,即使它是 OS 3.1.2)。

我有一个要追踪的错误,用观察点很容易追踪,所以这真的很痛苦。

有人知道观察点是否应该工作?如何让他们工作?

0 投票
2 回答
2180 浏览

c++ - 如何在由 C++ 中的许多文件组成的程序中设置 gdb 观察点?

我正在尝试设置一个观察点来监视由许多 C++ 文件组成的包中的变量。

有很多文件

abc.cpp qwe.cpp .. xyz.cpp 等等

我想在 abc.cpp 文件中的某个函数 qwerty() 中监视变量“temp”如何设置观察点?

我试过了

观看 abc.cpp::temp 观看 abc.cpp:temp 观看温度

但我看到错误 No symbols 'abc.cpp::temp','abc.cpp:temp','temp' not in current context 还有一个信息观察点告诉我没有设置观察点。请注意,我可以为同一个变量成功设置断点

0 投票
4 回答
7838 浏览

gdb - GDB 硬件观察点非常慢 - 为什么?

在大型 C 应用程序中,我在内存地址上设置了硬件观察点,如下所示:

如您所见,它是一个硬件观察点,而不是软件,这可以解释缓慢。

现在调试器下的应用程序运行时间已从不到十秒变为一小时并且还在增加。到目前为止,观察点已经触发了 3 次,第一次是在 15 分钟后,当包含地址的内存页被sbrk. 由于内存页面不可访问,在这 15 分钟内,观察点肯定应该是有效的吗?这仍然无法解释,为什么之后速度如此之慢。

平台为 x86_64,GDB 版本为 Ubuntu 9.10 包:

并从以下来源构建 GDB 7.1:

提前感谢您提供任何可能的原因或如何解决/解决它的想法。

编辑:移除演员表

编辑:gdb 7.1

0 投票
5 回答
5733 浏览

c - 用于检测内存损坏的 Linux C 调试库

以前有时在带有简单 MMU 的嵌入式系统上工作时,我曾经动态地对该 MMU 进行编程以检测内存损坏。

例如,在运行时的某个时刻, foo 变量被一些意外数据覆盖(可能被悬空指针或其他)覆盖。所以我添加了额外的调试代码:

  • 在初始化时,foo 使用的内存被指示为 MMU 的禁止区域;
  • 每次故意访问 foo 时,访问该区域之前是允许的,之后是禁止的;
  • 添加了一个 MMU irq 处理程序来转储主机和负责违规的地址。

这实际上是某种观察点,但直接由代码本身自行处理。

现在,我想在 x86 平台上重用相同的技巧。问题是我离理解 MMU 在这个平台上是如何工作的,以及它是如何被 Linux 使用的,但我想知道是否已经存在任何库/工具/系统调用来处理这个问题。

请注意,我知道存在各种工具,如 Valgrind 或 GDB 来管理内存问题,但据我所知,这些工具都没有被调试代码动态重新配置。

我主要对 Linux 下的用户空间感兴趣,但也欢迎任何有关内核模式或 Windows 下的信息!

0 投票
1 回答
339 浏览

linux - 如何在 Linux 中通过 procfs 设置观察点?

我正在尝试在 Linux(Ubuntu)下构建一个类似调试器的程序,但遇到了一些问题。据我所知,/procvfs 提供了创建观察点的机制,但我似乎不知道如何。

一些手册页将我指向“控制文件”,据称位于/proc/<pid>/ctl,但我无法在任何地方找到该文件。(也许这个文件只适用于 Solaris?或者是 Ubuntu 的错?)

0 投票
2 回答
2082 浏览

c - gdb watch pointer that is not valid yet

I have the following code:

I wan't to watch for arr[10] and see when that array element is being modified.

How can I do this? gdb says the following:

Is there a way to tell gdb to watch an invalid memory and stop only when it becomes valid?

PS: I have gdb versions 6.0, 6.3, 6.4, 6.6, 6.8, 7.0 and 7.1

Thanks

0 投票
1 回答
47400 浏览

debugging - 观察点固定地址

对于我当前的嵌入式应用程序,我试图将 GDB 观察点放在一个固定的内存地址。

例如,我的应用程序更新了以下地址:0x10793ad0。为了确定代码的哪一部分破坏了值,我尝试了

即使 GDB 在此之后没有打印任何错误,它也无法在执行期间中断,即使我验证了该值在执行开始和结束之间被修改。

问题:

  1. 我真的可以把手表放在一个固定的地址吗?我在网上没有遇到任何这样的例子。
  2. 这是正确的方法还是我错过了什么?