strace.cppというタイトルの PIN API で提供されているコード例をバイナリで使用すると、使用されたすべてのシステム コールとその他の情報を含む出力ファイルが提供されます。getpid()
テストとして使用するバイナリは、20 番目のシステム コールであるシステム コールを含む単純な C バイナリです。ソースは次のようになります。
struct {
unsigned int pid;
char data [16];
}test;
void foo(){
printf("In Foo!\n");
char *p = "hello world";
test.pid = getpid();
strcpy(test.data,p);
}
int main()
{
printf("Hello World!\n");
foo();
return 0;
}
PIN ツールが完了すると、strace.outという名前の作業ディレクトリに出力ファイルが作成されます。このファイルには、すべてのシステム コール情報が含まれています。このファイルには約 28 の異なるシステム コールが含まれていますが、いずれも 20 またはgetpid()
システム コールとラベル付けされていません。システムコール番号は、各行のコロンに続く最初の番号です。