Linux   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何在Linux / Android 2.6.29中找到系统调用实现?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我想修改一些系统调用以进行跟踪.具体来说,无论何时打开系统调用,我都要打印一些消息. 我一直在寻找互联网和代码,我在kernel / goldfish / fs /目录中找到了open.c.此文件中有许多功能.我怎么知道确切地调用了哪个函数.我可以在所有这些函数中编写一些printk调用来查找它,但我也必为其他系统调用执行此操作. 所以,我有几个问题, 1)查找系统调用的实现细节的最佳方法是什么
我想修改一些系统调用以进行跟踪.具体来说,无论何时打开系统调用,我都要打印一些消息.

我一直在寻找互联网和代码,我在kernel / goldfish / fs /目录中找到了open.c.此文件中有许多功能.我怎么知道确切地调用了哪个函数.我可以在所有这函数中编写一些printk调用来查找它,但我也必为其他系统调用执行此操作.

所以,我有几个问题,

1)查找系统调用的实现细节的最佳方法是什么?

2)我使用的是内核2.6.29(金鱼-Android).不同内核版本的系统调用实现是否不同?

3)strace告诉我@L_44_16@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的回答,再次感谢他.

大佬总结

以上是大佬教程为你收集整理的如何在Linux / Android 2.6.29中找到系统调用实现?全部内容,希望文章能够帮你解决如何在Linux / Android 2.6.29中找到系统调用实现?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。