繁体   English   中英

在XNU项目中找到__proc_info符号

[英]Locate __proc_info symbol in XNU project

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

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

所以,我深入挖掘,并在文件下的xnu中找到了它的实现
libsyscall /包装/ 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM