【发布时间】:2016-11-30 16:33:45
【问题描述】:
所有, 使用 systemtap 脚本时遇到问题。 我不知道如何在 systemtap 脚本中获取 kill signal sender 的主机名。 例如。我在服务器 'sf1' 中执行 kill -9 xclock_process_pid。同时,我运行 1.stap -x xclock_process_pid 来监控 xclock, 在'sf1'中发送kill -9 xclock_process_pid时,有什么方法可以在systemtap脚本中获取服务器名称'sf1'?
但我遇到了一些问题。我的 1.stap 如下图所示:
#!/usr/bin/env stap
function hostname:string () %{
STAP_RETURN(current->nsproxy->uts_ns->name.nodename);
%}
probe oneshot {
log(hostname())
}
当我运行 'stap -g 1.stap' 时会出现以下错误你能帮帮我吗?语义错误:位置 0 的探测点不匹配(替代方案:__nfs __scheduler __signal __tcpmib __vm _linuxmib _signal _sunrpc _syscall _vfs begin begin(number) end end(number) error error(number) generic ioblock ioblock_trace ioscheduler ioscheduler_trace ipmib irq_handler kernel kprobe kprocess linuxmib module( string) nd_syscall netdev never nfs nfsd perf process process(number) process(string) procfs procfs(string) scheduler scsi signal socket softirq stap staprun sunrpc syscall tcp tcpmib timer tty udp vfs vm workqueue): systemtap.stap 中的标识符 'oneshot': 87:7 同时解析探测点 oneshot 源:probe oneshot { ^ Pass 2:分析失败。使用另一个“--vp 01”选项重试。
【问题讨论】: