GDB'find'命令提前终止

我在GDB中寻找程序内存中的一系列特定字节。

从某个地址(0x104f90)以上开始的 “查找 “可以,但从该地址以下开始的 “查找 “就不行了。

(gdb) find /w 0x104f90, 0x108fe4, 0x6863203b
 0x108e08
 0x108e58
 0x108ee8

vs

(gdb) find /w 0x104f80, 0x108fe4, 0x6863203b
 Pattern not found.

这个地址周围的内存(似乎)可以被GDB访问。

(gdb) x/12x 0x104f80
0x104f80:  0x00000000  0x00000000  0x00000000  0x00000000
0x104f90:  0x00000000  0x00000000  0x00000000  0x00000000
0x104fa0:  0x00000000  0x00000000  0x00000000  0x00000000

而这两个地址都在堆上… info proc mappings 说堆从 0xe70000x109000

谁能告诉我这里缺什么?谢谢!我想在GDB中寻找程序内存中的特定系列字节。

解决方案:

问题是我用的是gdbserver,gdbserver有个bug,’find’函数如果在16000字节内找不到要找的东西就会放弃。请看 https:/sourceware.orgpipermailgdb-patches2020-April167829.html。 的官方错误报告。

解决方法是更新到gdb 10(会有一个修复),或者将 “查找 “查询限制在16,000字节以下。

给TA打赏
共{{data.count}}人
人已打赏
未分类

当在Windows Subsystem for Linux上安装带有本地扩展的Ruby gems时,是否有可靠的方法来避免权限拒绝错误?

2022-9-7 23:50:18

未分类

在React w Hooks中双向绑定多个输入。

2022-9-7 23:50:20

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索