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

如何使用systemtap从用户空间探测中访问返回值,systemtap,Systemtap,我想访问从glibc的“open”函数返回的数据,例如文件名或文件描述符 我试着 但这是一个错误 语义错误:未解析的目标符号表达式:标识符“$fd” 在马洛克,stp:3:10 资料来源:fd=$fd ^ 通过2:分析失败。[人工错误::pass2] open系统调用不接受fd参数,因此.function探测自然找不到它。如果您希望看到从打开返回的文件描述符,则探测函数(“…”)。返回点和$return probe process("/lib*/libc.so.6").function("ope

我想访问从glibc的“open”函数返回的数据,例如文件名或文件描述符

我试着

但这是一个错误

语义错误:未解析的目标符号表达式:标识符“$fd” 在马洛克,stp:3:10 资料来源:fd=$fd ^

通过2:分析失败。[人工错误::pass2]


open
系统调用不接受
fd
参数,因此
.function
探测自然找不到它。如果您希望看到从
打开
返回的文件描述符,则探测
函数(“…”)。返回
点和
$return

probe process("/lib*/libc.so.6").function("open").return {
    fd=$return
    path=user_string(@entry($filename))
    printf("open %s -> $d\n", path, fd)
}
probe process("/lib*/libc.so.6").function("open").return {
    fd=$return
    path=user_string(@entry($filename))
    printf("open %s -> $d\n", path, fd)
}