标签: watchpoint

观察一个固定的地址

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

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

watch 0x10793ad0
Run Code Online (Sandbox Code Playgroud)

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

问题:

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

debugging gdb watchpoint

59
推荐指数
1
解决办法
4万
查看次数

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

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

  2. 反正有没有设置条件观察点,比如watch var1 if var1==0?在我的情况下,条件不起作用.每当var1值改变时,gdb就会停止,而不是直到var1 == 0为真.我的gdb是GNU gdb 6.8-debian.

gdb watchpoint

37
推荐指数
4
解决办法
3万
查看次数

跟踪Xcode中的变量或内存变化?

有没有办法跟踪Xcode中的变量更改或内存更改?我正在寻找像Visual Studio的数据断点这样的功能.

我想知道我的对象的视图框架在哪里被更改.我想在成员变量上设置断点并运行它.然后我可以确定它的变化.

iphone xcode watchpoint

18
推荐指数
2
解决办法
2万
查看次数

是否可以在Swift属性上设置观察点?

在Objective-C中,我有时会在LLDB中设置观察点,以便在实例变量发生变化时通知我.我也可以使用Swift属性吗?

现在,我能做到这一点的唯一方法是:

  • 将didSet处理程序添加到属性并在其中设置断点(但这需要停止程序并重新编译,这样会破坏目的)
  • 添加一个符号断点[setPropertyName:]但这仅在该类恰好支持Objective-C桥接时才有效

我还有其他选择吗?

xcode watchpoint ios lldb swift

17
推荐指数
2
解决办法
1830
查看次数

是否可以通过编程方式设置gdb观察点?

我想在我的C++程序中暂时设置一个观察点(硬件写入中断)来查找内存损坏.

我已经看过所有通过gdb手动完成的方法,但我想通过我的代码中的某些方法实际设置观察点,所以我不必闯入gdb,查找地址,设置观察点然后继续.

就像是:

#define SET_WATCHPOINT(addr) asm ("set break on hardware write %addr")
Run Code Online (Sandbox Code Playgroud)

c++ gdb watchpoint

15
推荐指数
3
解决办法
6221
查看次数

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

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

(gdb) watch *0x12F5D58
Hardware watchpoint 3: *0x12F5D58
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,它是硬件观察点,而不是软件,它可以解释缓慢的问题.

现在,调试器下的应用程序运行时间已从不到十秒变为一小时并且正在计数.到目前为止,观察点已触发三次,这是15分钟后第一次包含地址的内存页面可读sbrk.当然,在这15分钟内,由于内存页面无法访问,因此观察点应该是高效的吗?这仍然无法解释,为什么之后会如此缓慢.

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

$ gdb --version
GNU gdb (GDB) 7.0-ubuntu
[...]
Run Code Online (Sandbox Code Playgroud)

和库存GDB 7.1来源:

$ gdb-7.1 --version
GNU gdb (GDB) 7.1
Run Code Online (Sandbox Code Playgroud)

提前感谢任何想法可能是什么原因或如何解决/解决它.

编辑:删除演员

编辑:gdb 7.1

gdb watchpoint

13
推荐指数
3
解决办法
6841
查看次数

Java eclipse中调用者的条件断点

我试图在Eclipse调试器的Java程序中使用watchpoint跟踪值的更改.类层次结构非常复杂,我跟踪的值包含在容器中,容器在很多地方使用.

更具体地说,有一个容器SizeRequirement,它有一个属性minimum,我正在跟踪.许多组件的许多布局管理器都使用此类来定义组件大小的要求.我需要捕获完全调用,其中值更改/设置为一个特定的布局管理器和其中的一个特定组件.是否可以通过调用者过滤断点?我将尝试使用一些抽象代码来解释问题:

class ValueContainer {
  public String value;
}

class A {

  private ValueContainer valueContainer;

  public A () {
    valueContainer = new ValueContainer();
    valueContainer.value = "setByA";
  }

}

class B {

  private ValueContainer valueContainer;

  public B () {
    valueContainer = new ValueContainer();
    valueContainer.value = "setByB";
  }

}
Run Code Online (Sandbox Code Playgroud)

我设置了一个观察点value,我只希望断点只有在value由A类设置并且忽略B的调用时才挂起.

更糟糕的是,类SizeRequirement是swing库的一部分,并且深深地集成在代码中,因此我无法使用继承来替换某些孩子在我想跟踪它的某个确切位置.

编辑

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

    StackTraceElement[] arr = Thread.currentThread().getStackTrace();
    boolean contains = false;
    for(StackTraceElement e : arr) {
        if (e.getClassName().contains("A")) {
            contains = true; …
Run Code Online (Sandbox Code Playgroud)

java eclipse debugging watchpoint conditional-statements

10
推荐指数
1
解决办法
1800
查看次数

在XCode 6中,如何在不停止执行的情况下设置观察点?

您可以通过以下步骤在XCode中轻松设置观察点(顺便提一下,如果有更简单的方法,我想知道它......):
- 运行程序
- 在使用变量的代码中设置断点
-到达断点时,右键单击变量并选择"Watch"nameOfTheVariable"'
- 继续执行.

唯一的问题是每次变量值改变时执行都会停止.我希望XCode继续执行而不停止,即只显示控制台输出中的值更改.
这个功能似乎在命令行模式下可用,虽然我最初想避免它,但是我发布了一个使用该模式的解决方案(见下文),因为它似乎是我想要的唯一方法,即在显示变量时继续执行变化.

xcode watch watchpoint

9
推荐指数
1
解决办法
5768
查看次数

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

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

"没有'Z2'(写 - 观察点)数据包,无法清除硬件观察点"

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

我有一个追踪错误的错误,很容易通过观察点追踪,所以这真的很痛苦.

谁知道观察点是否应该起作用?如何让他们工作?

iphone xcode gdb watchpoint

7
推荐指数
1
解决办法
1629
查看次数

XCode 4.5观察点无法正常工作

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

我在我的代码上设置了一个常规断点,当我点击它时,我查看我的局部变量,点击一个变量并选择"Watch xxxxx".

lldb控制台显示:

错误:无法为m_step创建观察点

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

wsv xxxxx

我明白了:

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

我使用LLDB运行调试配置.有任何线索我是否应该检查?

编辑:这是我的设置:

设置 设置 设置

c++ debugging xcode watchpoint lldb

6
推荐指数
1
解决办法
1873
查看次数

标签 统计

watchpoint ×10

gdb ×5

xcode ×5

debugging ×3

c++ ×2

iphone ×2

lldb ×2

conditional-statements ×1

eclipse ×1

ios ×1

java ×1

swift ×1

watch ×1