簡體   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