4

トレースのためにいくつかのシステム コールを変更したいと考えています。具体的には、システムコールopenが行われるたびに、いくつかのメッセージを出力したいと考えています。

私はインターネットとコードを調べていてopen.ckernel/goldfish/fs/ディレクトリで見つけました。そして、このファイルには多くの機能があります。どの関数が正確に呼び出されているかをどのように知ることができますか。これらすべての関数でそれを見つけるためにいくつかの呼び出しを書くこともできprintkましたが、他のシステム呼び出しに対してもそれを行う必要があります。

そこで、いくつか質問があるのですが、

1) システムコールの実装の詳細を見つける最良の方法は何ですか?

2) カーネル 2.6.29 (goldfish-Android) を使用しています。システムコールの実装は、カーネルのバージョンによって異なりますか?

3)と' straceSYS_24 ' システム コールが実行されていることがわかります。ファイルを調べたところ、msgget がありません。msggetmsgrecvAndroid/bionic/libc/SYSCALLS.txt

しかし、android/bionic/libc/kernel/arch-arm/asm/unistd.hファイルを調べると、msggetそこにあることがわかります。何が起こっているのか理解できません。どうすれば の実装を見つけることができますmsggetか?

ありがとう。

4

1 に答える 1

4

このリンクには、ほぼすべてのシステム コール、その引数、およびそれぞれのファイル内の場所が記載されています。システムコールの詳細を見つけるのに役立ちました。

strace に対する回答は、上記の Chris のコメントに記載されています。もう一度彼に感謝します。

于 2013-01-02T06:10:00.707 に答える