【发布时间】:2017-05-10 17:52:08
【问题描述】:
目前,我想获取运行队列的地址,它是内核中的一个变量,不打算对外部的模块或代码可见。
我可以通过检查 /proc/kallsyms 来获取运行队列的地址。但是这个地址不是真正的地址,因为 ASLR。
我真的不想改变内核,所以我决定插入一个模块。 有谁知道如何获取内核内部变量的地址?
提前致谢!
【问题讨论】:
标签: linux module linux-kernel kernel
目前,我想获取运行队列的地址,它是内核中的一个变量,不打算对外部的模块或代码可见。
我可以通过检查 /proc/kallsyms 来获取运行队列的地址。但是这个地址不是真正的地址,因为 ASLR。
我真的不想改变内核,所以我决定插入一个模块。 有谁知道如何获取内核内部变量的地址?
提前致谢!
【问题讨论】:
标签: linux module linux-kernel kernel
您的查询:-
我想获取runqueues的地址,这是一个变量 内核?
runqueue 用struct runqueue 表示,它是调度器中的核心数据结构,而不是变量。
我可以通过检查 /proc/kallsyms 获得运行队列的地址。
有一些宏用于获取与给定处理器或进程关联的运行队列。从这个宏中,我们得到了运行队列结构和 CPU id 数组的基地址。我相信您无法从 /proc/kallsysm 检索运行队列信息。
所以,我认为要获取所有运行队列的信息,您必须制作多线程应用程序并将每个线程专用于特定的 CPU(设置 cpu 亲和力)。
【讨论】: