gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 00:57:29 32 4
gpt4 key购买 nike

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

我试试

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

但是报错

semantic error: unresolved target-symbol expression: identifier '$fd' at malloc.stp:3:10 source: fd = $fd ^

Pass 2: analysis failed. [man error::pass2]

最佳答案

open 系统调用没有fd 参数,因此.function 探测器自然找不到它。如果您想查看文件描述符 open 返回,然后探测.function("...").return 点, 和 $return

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

关于systemtap - 如何使用 systemtap 从用户空间探测访问返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32945176/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com