如何使用systemtap从用户空间探测中访问返回值

时间:2015-10-05 09:27:11

标签: systemtap

我想访问从" open" glibc的功能,如文件名或文件描述符

我试试

probe process("/lib*/libc.so.*").function("open") { 
   fd = $fd
   filename = user_string($filename)
   printf("%d %d %s %s\n",pid(),ppid(),filename,fd)
}

但是错误

  

语义错误:未解决的目标符号表达式:标识符' $ fd'   在malloc.stp:3:10           来源:fd = $ fd                                ^

     

通过2:分析失败。 [man error :: pass2]

1 个答案:

答案 0 :(得分:5)

CATALINA_HOME系统调用不会使用open参数,因此fd探针自然无法找到它。如果您希望从 .function中看到文件描述符,请调查open点和.function("...").return

$return