gpt4 book ai didi

c - 在 XNU 项目中找到 __proc_info 符号

转载 作者:太空狗 更新时间:2023-10-29 15:07:54 36 4
gpt4 key购买 nike

我想弄清楚 VMMAP 进程是如何运作的。

用 dtrace 运行这个可执行文件后,似乎是方法 proc_regionfilename 提取了虚拟内存中每个部分的地址空间。

所以,我深挖了一点,在xnu文件下找到了它的实现
libsyscall/wrappers/libproc/libproc.c

在函数体中我看到主要调用是 proc_pidinfo :

retval = proc_pidinfo(pid, PROC_PIDREGIONPATHINFO, (uint64_t)address, &reginfo, sizeof(struct proc_regionwithpathinfo));

proc_pidinfo 依次调用 __proc_info 符号:

int __proc_info(int callnum, int pid, int flavor, uint64_t arg, void * buffer, int buffersize);

但是,在代码中找不到这个符号,我想知道它是如何在预编译、编译、链接或实时过程中创建的。

知道在哪里可以找到它,或者它是如何创建的(我还没有尝试编译内核)。

谢谢

最佳答案

proc_info 是一个系统调用,所以它的实现是在内核中。 10.11.2 版本的源代码可以在这里找到:

http://opensource.apple.com/source/xnu/xnu-3248.20.55/bsd/kern/proc_info.c

关于c - 在 XNU 项目中找到 __proc_info 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35549332/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com