首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于指令指针确定上下文

基于指令指针确定上下文
EN

Stack Overflow用户
提问于 2013-07-30 06:42:51
回答 1查看 265关注 0票数 1

我正在开发一个模拟器,它的指令跟踪来自QEMU模拟器。跟踪中的指令指针是虚拟指令指针。

我对32位Linux操作系统的基本理解是,在4GB的地址空间中,较低的3GB (即0-3GB )保留给应用程序,而上层的1GB (即3GB-4GB )保留给内核。

我的基本理解正确吗??

为了确定指令的上下文,即内核或应用程序,我使用了一个简单的check ip>3G。这有效吗??

还有一件事,这个简单的方法能很容易地扩展到64位操作系统吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-30 08:06:33

我想你是在说x86吧。

内核中有不同的虚拟内存拆分选项,可以在其配置文件中设置。看看VMSPLIT_*选项在arch/x86/Kconfig中的应用。

3G / 1G,2G / 2G,1G / 3G都是可能的。

要可靠地检查地址是属于用户空间还是属于内核空间,可以将其与TASK_SIZE值进行比较:

代码语言:javascript
运行
复制
static int
is_user_space_address(unsigned long addr)
{
    return (addr < TASK_SIZE);
}

至少可以在32位和64位x86系统上工作.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17939970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档