This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: systemtap doesn't run
- From: Mark Wielaard <mjw at fedoraproject dot org>
- To: Development discussions related to Fedora <devel at lists dot fedoraproject dot org>
- Cc: Jan Synacek <jsynacek at redhat dot com>, systemtap at sourceware dot org
- Date: Fri, 06 Sep 2019 22:38:42 +0200
- Subject: Re: systemtap doesn't run
- References: <CAPsXM8Vru1a1M7Q4tj8jkL99o+1_jz7JA86Nq-8a__rKPbkV_A@mail.gmail.com>
Hi Jan,
CC systemtap upstream list, because I think this is not a great error
message.
On Fri, 2019-09-06 at 09:53 +0200, Jan Synacek wrote:
> I'm trying to run systemtap on F29 and I'm getting the following
> error:
>
> $ sudo stap -v journal.stap
> Pass 1: parsed user script and 491 library scripts using
> 355824virt/129076res/9628shr/119256data kb, in 290usr/40sys/334real
> ms.
> semantic error: while resolving probe point: identifier 'process' at
> journal.stap:1:7
> source: probe
> process("/usr/lib/systemd/systemd-
> journald").function("dispatch_message_real")
> {
> ^
>
> semantic error: no match (similar functions: read, free, getenv,
> page_size,
> safe_atoi)
>
> So, 'process' is not a valid identifier? There seems to be something
> wrong
> with the basic systemtap installation. I do have matching debuginfo
> for
> both kernel and systemd installed. Running stap-prep only wants to
> install
> kernel-debuginfo.
>
> How do I make this basic use-case work?
It is a bit hard to say, because you didn't include journal.stap.
But I can replicate what you get with:
stap -v -e 'probe process("/usr/lib/systemd/systemd-
journald").function("dispatch_message_real") { log ("hit"); }'
You get that error message if stap cannot find that function symbol.
So first that ^ carrot should really not be at "process", but at
"function" (or really "dispatch_message_real").
stap really should tell you how to get that symbol. By installing the
matching debuginfo package.
You also get that message if the debuginfo and main package don't match
up. I had:
$ rpm -q systemd-debuginfo systemd
systemd-debuginfo-241-12.git1e19bcd.fc30.x86_64
systemd-241-10.git511646b.fc30.x86_64
The full version-release number should be identical.
After updating the systemd package, so it matched the systemd-
debuginfo
package, things finally started to work.
[mark@f30 ~]$ stap -e 'probe process("/usr/lib/systemd/systemd-
journald").function("dispatch_message_real") { log ("hit"); }'
hit
hit
hit
Cheers,
Mark