2

在 sys/ptrace.h 中,我看到了类似的内容:

@define PT_READ_I  1 /* read world in child's I space*/
@define PT_READ_D  2 /* read world in child's D space*/
@define PT_READ_U  3 /* read world in child's user structure*/

什么是“I 空间”、“D 空间”和“用户结构”?

4

1 回答 1

3

引用手册页:

传统上, ptrace() 允许机器具有不同的指令和数据地址空间,这就是为什么有两个请求:从概念上讲,PT_READ_I 从指令空间 读取,而 PT_READ_D 从数据空间读取。在当前的 NetBSD 实现中,这两个请求完全相同。

现在关于 PT_READ_U:

该空间包含有关进程的寄存器和其他信息;它的布局与系统中的用户结构相对应。

于 2012-04-17T08:25:39.027 回答