如何在Linux / Android 2.6.29中找到系统调用实现?
发布时间:2020-12-13 23:04:26 所属栏目:Linux 来源:网络整理
导读:我想修改一些系统调用以进行跟踪.具体来说,无论何时打开系统调用,我都要打印一些消息. 我一直在寻找互联网和代码,我在kernel / goldfish / fs /目录中找到了open.c.此文件中有许多功能.我怎么知道确切地调用了哪个函数.我可以在所有这些函数中编写一些printk
我想修改一些系统调用以进行跟踪.具体来说,无论何时打开系统调用,我都要打印一些消息.
我一直在寻找互联网和代码,我在kernel / goldfish / fs /目录中找到了open.c.此文件中有许多功能.我怎么知道确切地调用了哪个函数.我可以在所有这些函数中编写一些printk调用来查找它,但我也必须为其他系统调用执行此操作. 所以,我有几个问题, 1)查找系统调用的实现细节的最佳方法是什么? 2)我使用的是内核2.6.29(金鱼-Android).不同内核版本的系统调用实现是否不同? 3)strace告诉我正在进行msgget,msgrecv和’SYS_24’系统调用.我查看了Android / bionic / libc / SYSCALLS.txt文件,msgget不存在. 但是当我查看android / bionic / libc / kernel / arch-arm / asm / unistd.h文件时,我可以在那里找到msgget.我无法理解发生了什么,然后我如何才能找到msgget的实现? 谢谢. 解决方法
This link提到了几乎所有的系统调用,它们的参数和各个文件中的位置.它帮助我找到系统调用细节.
Chris的上述评论中给出了对strace的回答,再次感谢他. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |