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

c++ - 如何在 dbx 中设置硬件观察点?

我需要检测 Solaris 上 dbx 中的某些内存何时发生变化。我知道在 gdb 中我会使用watch <memoryLocation>. 但是,我目前正在使用 dbx,所以我需要知道如何在 dbx 中设置硬件观察点。设置硬件观察点的 dbx 命令是什么?

0 投票
0 回答
203 浏览

linux - 如何从*在*进程中设置硬件观察点?

我想在一个进程中为进程中的变量设置硬件观察点。那可能吗?我该怎么做?

使用 Linux 2.6.32 内核和 PowerPC A2 处理器。

0 投票
0 回答
244 浏览

animation - Cocos2d CCAnimate 在所有变量都还活着的时候给出 EXC_BAD_ACCESS

我正在制作坦克游戏,但我在使用 Cocos2d CCAnimate 时遇到了问题——更具体地说,我的 CCAnimation 变量自发地丢失了数据!

它们被用于坦克对象的状态改变器(tank.m)

'action' 在坦克的 .h 文件中预定义 - “id action;”

当游戏初始化时,坦克(有四个)初始化没有问题,它们都被设置为“kStateIdle”没有问题。

然后 GameEngine 主循环调用坦克进行更新 - 对其速度进行测试,并检查以确保它们尚未移动或受到伤害,并且状态更改为“kStateMoving” -

但是当游戏开始时

[CCAnimate actionWithAnimation:movingAnim restoreOriginalFrame:NO];

Cocos2d 在 'CCActionInterval' 中出现 'EXC_BAD_ACCESS' 崩溃,(调试器将 _cmd 报告为 'initWithAnimation: restoreOriginalFrame')

原因是 CCAnimation 'movingAnim'(和 idleAnim)突然损坏了。如果我在调试器中检查它们,它们有一个内存地址,但没有报告它们的帧值。当坦克初始化时,他们都在那里。他们在玩家坦克上都很好。没有什么可以释放它们(我什至从 Dealloc 方法中删除了它们)。

我已将它们定义为 tank.h 头文件中的(单原子,保留)属性。

那么他们可能去了哪里?有没有办法在他们身上放置一个观察点?(我有 Xcode 4.3.2,所以菜单中没有任何内容).. 或者有没有办法定义它们以便他们保留数据?

干杯!

卡尔

(PS。哇!然后我开始计算 3259 度的角度,我开始挠头并追踪数字(每当我看到它们就会恢复正常)并且 bam!Xcode 完全关闭。

当编辑器本身开始抛出抖动时,很难调试我的程序!)

0 投票
2 回答
4982 浏览

debugging - 如何找出在 Xcode 4 / lldb 中更改对象(或简单变量)的原因?

在某些调试器中,这称为对变量“设置陷阱”。我想要做的是在任何更改对象的语句上触发断点。或更改对象的属性。

我有一个 NSMutableDictionary ,它添加了一个值/键,但我找不到任何可以这样做的语句。

0 投票
2 回答
1890 浏览

gdb - GDB:以编程方式删除观察点

是否可以在不知道观察点编号的情况下删除观察点?

我正在使用附加到断点的命令在内存位置设置观察点。我想在另一个断点清除观察点,但我不知道如何在没有观察点编号的情况下清除观察点。是否有可以通过内存位置删除观察点的命令?

0 投票
2 回答
1974 浏览

c++ - XCode 4.5 观察点不起作用

我正在尝试在 iOS 上的 Xcode 4.5 中调试 C++ 代码,在连接的 iPad 2 上运行该应用程序。

我在我的代码上设置了一个常规断点,当我点击它时,我查看我的本地变量,单击一个变量并选择“Watch xxxxx”。

lldb 控制台显示:

错误:未能为 m_step 创建观察点

如果我尝试使用以下命令在控制台中手动设置,结果相同:

wsv xxxxx

我得到:

错误:Wathpoint 创建失败 (addr=0x..... size=4) 错误:发送 gdb 观察点数据包失败

我正在运行调试配置,使用 LLDB。是否有其他我应该检查的线索?

编辑:这是我的设置:

设置 设置 设置

0 投票
2 回答
408 浏览

javascript - 在 JavaScript 中观察匿名函数中的变量

我想确定何时更改特定变量。我使用这段代码来观察我可以访问的任何对象的任何属性都取得了巨大的成功,但它可以用于像这样声明的变量吗?:

肯定A不会最终成为window. 它可能是跨越第 2 行到 5999 行的匿名函数对象的属性吗?因此,如果我命名该函数以便可以引用它,我能否以某种方式watchAvar/prop 上使用它?

我可以使用哪些其他方法来确定 var 的设置位置?

0 投票
3 回答
10686 浏览

c - 如何检测堆栈粉碎错误的违规代码

在一个复杂的程序中,我遇到了一个堆栈粉碎错误,粘贴在下面。我很难找出它发生在哪里。我使用 printf-debugging 找到了该函数,并注意到检查实际上是在函数返回期间发生的(执行 return 之前的 printf,函数调用之后的那个不是)。

但是,这是一个巨大的功能。我已经阅读了所有内容,但没有注意到其中有任何堆栈溢出机会。因此,我需要更好地估计错误在哪里。我该如何进一步调试呢?

我认为如果我可以在堆栈粉碎检测内存上添加一个调试器观察点将是最简单的,因此它会在粉碎时中断执行,而不是在函数返回时中断执行。如果是这样,我怎么知道这是哪个内存?

对于那些想要查看源代码的人,我建议在 Stack Overflow 上查看任何堆栈粉碎问题。如果您真的想查看我正在使用的代码,请获取 freedink 源代码(有问题的函数是 updateFrame)。

更新

在 gcc-patches 列表中,这个问题是在 2009 年讨论的。不过似乎还没有得出结论。至少当我在 gdb 中说“信息本地人”时,我没有看到任何名称出现(正如该线程中某处所建议的那样)。如果有人能告诉我如何找到它__stack_guard__(这不起作用,因为它被拒绝了),那将回答我的问题。

下次更新

好的,经过大量搜索,我发现了一些完全出乎意料的东西。从堆栈回溯中可以看出,退出 libSDL 函数时会检测到堆栈粉碎。现在通常 SDL 功能可以正常工作,而 freedink 充满了错误。所以我什至不认为我会在 SDL 中遇到错误。然而,我似乎做到了。它正在尝试播放 MIDI 文件。如果我将不同的 midi 文件复制到它的位置,则程序可以正常工作。

所以我目前的问题解决了,但我的问题仍然没有回答。尽管堆栈回溯确实指向堆栈被破坏的函数(因此它比我想象的更有用),但它没有为守卫提供地址,这也可能有用(用于设置观察点)。

0 投票
1 回答
201 浏览

c++ - 查找第一次写入 LLDB 中的变量

我正在使用 LLDB 调试一个大型程序,并且有一个bool随处使用的变量,通常称为 extern。我已经调试了一段时间,无论我在哪里设置断点,值总是true. 我想找到这个值的设置位置 - 我已经尝试搜索代码并在每次分配该变量时设置断点,但似乎没有一个被触发,并且在稍后的断点处,该值总是true. 有什么方法可以确定第一次写入变量吗?

0 投票
2 回答
2249 浏览

java - Java eclipse中调用者的条件断点

我正在尝试使用 Eclipse 调试器中 Java 程序中的观察点来跟踪值的变化。类层次结构非常复杂,我正在跟踪的值被包装在容器中,该容器在许多地方都使用过。

更具体地说,有一个 container SizeRequirement,它有一个 property minimum,我正在跟踪它。许多布局管理器在许多地方为许多组件使用此类来定义对组件大小的要求。我需要捕捉确切的调用,其中值更改/设置为一个特定的布局管理器和其中的一个特定组件。是否可以按调用者过滤断点?我将尝试使用一些抽象代码来解释这个问题:

我设置了一个观察点value,我只希望断点仅在valueA 类设置并忽略 B 调用时暂停。

更糟糕的是,类SizeRequirement是 Swing 库的一部分,并且深度集成在代码中,所以我不能使用继承在我想要跟踪它的某个确切位置用某个子代替换它。

编辑

所以这就是我用作条件断点的条件。信不信由你,它有效。:)