systemtap スクリプトを使用すると問題が発生します。systemtap スクリプトで kill シグナル送信者のホスト名を取得する方法がわかりません。例えば。サーバー '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 プローブ ポイント ワンショット ソースの解決中: プローブ ワンショット { ^ パス 2: 分析に失敗しました。別の「--vp 01」オプションを使用して再試行してください。