This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Kernel 4.4.0 support
- From: Arkady <arkady dot miasnikov at gmail dot com>
- To: systemtap at sourceware dot org
- Date: Tue, 4 Jul 2017 10:35:58 +0300
- Subject: Kernel 4.4.0 support
- Authentication-results: sourceware.org; auth=none
Hi,
I am building an STAP driver for
Linux ubuntu 4.4.0-83-generic #106~14.04.1-Ubuntu SMP Mon Jun 26
18:10:19 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
I have build the latest STAP (original STAP is 2.3 and fails to
compile Hello, world)
$ stap --version
Systemtap translator/driver (version 3.2/0.158, commit
release-3.1-121-g1c753c3afb0e + changes)
Copyright (C) 2005-2017 Red Hat, Inc. and others
This is free software; see the source for copying conditions.
tested kernel versions: 2.6.18 ... 4.11
enabled features: NLS
These single liners work fine
sudo stap -e 'probe begin { printf("Hello, World!\n"); exit() }'
stap -p4 -e 'probe syscall.open {printf("%s %u %u\n", filename, flags, mode);}'
In this script
stap -p4 -e 'probe kprocess.exec {printf("%u %u %u\n", $filename,
$name, $argv);}'
$name (Name of the system call) is not found:
semantic error: unable to find local 'name', [man error::dwarf]
dieoffset 0x1e67307 in kernel, near pc 0xffffffff81209110 in
SyS_execve /build/linux-lts-xenial-ep3zLI/linux-lts-xenial-4.4.0/fs/exec.c
(alternatives: $filename, $ret, $argv, $envp)): identifier '$name' at
<input>:1:55
The following line fails for $pid
stap -p4 -e 'probe scheduler.process_exit {printf("%u %s %u\n", $pid,
$name, $priority);}'
semantic error: while processing probe __scheduler.process_exit.tp
from: scheduler.process_exit from: scheduler.process_exit
semantic error: unable to find tracepoint variable '$pid'
(alternatives: $p, $$name, $$parms, $$vars): identifier '$pid' at
<input>:1:52
source: probe scheduler.process_exit {printf("%u %s %u\n",
$pid, $name, $priority);}
^
semantic error: unable to find tracepoint variable '$pid'
(alternatives: $p, $$name, $$parms, $$vars): identifier '$pid' at
:1:52
source: probe scheduler.process_exit {printf("%u %s %u\n",
$pid, $name, $priority);}
Thank you, Arkady.
^