【问题标题】:Watchpoints for shared objects共享对象的观察点
【发布时间】:2011-06-09 03:49:41
【问题描述】:

如何在.gdbinit 中为将要从共享对象.so 内分配到堆上的特定内存位置添加观察点?

如果 .so 已经加载,则以下内容将起作用:

watch *((TOKEN*)0x084E4C40)

但是我想把它放在.gdbinit中,但这不起作用,因为它不知道TOKEN数据类型,说:

当前上下文中没有符号“TOKEN”。

如果我确实等到 .so 加载,我可以这样做。

对于我能够做到的断点:

set breakpoint pending on

但是,观察点似乎没有任何相似之处。

我唯一能想到的就是在设置观察点之前以某种方式从 .so 文件中加载调试符号。

但是该怎么做呢?

【问题讨论】:

    标签: c debugging gdb


    【解决方案1】:

    您并不真正需要符号,只需要您想要观看的内存块的大小。使用这个命令

    watch *(char(*)[NNN])0x084E4C40

    其中NNNsizeof(TOKEN)

    【讨论】:

      猜你喜欢
      • 2018-07-28
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 2019-09-09
      • 2018-04-29
      相关资源
      最近更新 更多