トレースのためにいくつかのシステム コールを変更したいと考えています。具体的には、システムコールopen
が行われるたびに、いくつかのメッセージを出力したいと考えています。
私はインターネットとコードを調べていてopen.c
、kernel/goldfish/fs/
ディレクトリで見つけました。そして、このファイルには多くの機能があります。どの関数が正確に呼び出されているかをどのように知ることができますか。これらすべての関数でそれを見つけるためにいくつかの呼び出しを書くこともできprintk
ましたが、他のシステム呼び出しに対してもそれを行う必要があります。
そこで、いくつか質問があるのですが、
1) システムコールの実装の詳細を見つける最良の方法は何ですか?
2) カーネル 2.6.29 (goldfish-Android) を使用しています。システムコールの実装は、カーネルのバージョンによって異なりますか?
3)と' strace
SYS_24 ' システム コールが実行されていることがわかります。ファイルを調べたところ、msgget がありません。msgget
msgrecv
Android/bionic/libc/SYSCALLS.txt
しかし、android/bionic/libc/kernel/arch-arm/asm/unistd.h
ファイルを調べると、msgget
そこにあることがわかります。何が起こっているのか理解できません。どうすれば の実装を見つけることができますmsgget
か?
ありがとう。