加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

如何在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的回答,再次感谢他.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读