【问题标题】:What are ‘I Space’ and ‘D Space’ on osx and the difference between themosx上的“I Space”和“D Space”是什么以及它们之间的区别
【发布时间】:2012-04-17 08:21:23
【问题描述】:

在 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 Space”和“D Space”以及“用户结构”?

【问题讨论】:

    标签: ios macos ptrace


    【解决方案1】:

    引用手册页:

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

    现在关于 PT_READ_U:

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

    【讨论】:

    • 如果我只知道地址,我该怎么办,你可能不知道它在哪里(可能在堆空间中),对吗?
    • 你从哪里得到的地址?通常,您应该有一些线索。无论如何,正如麦克马德所说,这并不重要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 2022-10-14
    • 1970-01-01
    • 2021-11-17
    • 1970-01-01
    • 1970-01-01
    • 2019-02-05
    相关资源
    最近更新 更多