2

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()システム コールとラベル付けされていません。システムコール番号は、各行のコロンに続く最初の番号です。

4

0 に答える 0