使用 ptrace 在一系列地址上设置观察点/断点

问题描述 投票:0回答:1

我正在编写一段代码,其中父进程与子进程共享共享内存。

  1. 我希望能够让父亲在孩子读取值之前替换共享内存的内容。

我知道我可以设置一个硬件断点,如下例所示,但这不起作用,我猜是因为存在一些权限错误,但即使使用 sudo 我也无法使其工作。 无论如何,系统的断点数量是有限的,所以我不能为每个地址都设置断点。

  1. 另外,我知道断点被触发后,它就会消失。我想保持它永久。

我能做什么?

示例代码

c debugging breakpoints ptrace
1个回答
0
投票

我需要一个硬件断点,但是硬件断点的数量有限(通常总共4个),因此不可能覆盖大范围的地址。 另一种方法是使用 GDB 中的观察点,它在代码中执行单个步骤,直到找到正确的地址。

© www.soinside.com 2019 - 2024. All rights reserved.