使用在二进制文件上标题为strace.cpp的PIN API中提供的代码示例,应提供包含所有使用的系统调用的输出文件,以及一些其他信息。我用作测试的二进制文件是一个简单的C二进制文件,它包含一个getpid()
系统调用,这是第20次系统调用。来源如下:
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()
系统调用。系统调用号是每行冒号后面的第一个数字。