# strace -o out -e open ./stap -v probe.stp
Pass 1: parsed user script and 95 library script(s) using 41792virt/32064res/5952shr/25408data kb, in 180usr/10sys/188real ms.
WARNING: cannot find module kernel debuginfo: No DWARF information found [man warning::debuginfo]
semantic error: while resolving probe point: identifier 'kernel' at probe.stp:1:7
source: probe kernel.function("do_fork")
^
semantic error: no match
Pass 2: analyzed script: 0 probe(s), 0 function(s), 0 embed(s), 0 global(s) using 66304virt/35072res/7488shr/26368data kb, in 0usr/0sys/6real ms.
Pass 2: analysis failed. [man error::pass2]
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.
# cat out | grep vmlinu
open("/boot/vmlinux-3.13.0-76-generic", O_RDONLY) = 3
open("/lib/modules/3.13.0-76-generic/build/vmlinux.id", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug/boot/boot/vmlinux-3.13.0-76-generic.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug/boot/vmlinux-3.13.0-76-generic.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug/boot/boot/vmlinux-3.13.0-76-generic.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/debug/boot/vmlinux-3.13.0-76-generic.debug", O_RDONLY) = -1 ENOENT (No such file or directory)
#
===========
If stap (which internally uses elfutils) finds /boot/vmlinux file, and debuginfo
is not present in it, it uses it as "main elf" and looks for debuginfo file with ".debug"
extension(i.e. vmlinux-RELEASE.debug). Ubuntu installs debuginfo without any
extension (i.e. vmlinux-RELEASE).
If it does not able to find vmlinux from /boot/ it goes on continue looking for fie on
other paths without ".debug" extension. And it finds proper file. RHEL/Fedora on
powerpc uses /boot/vmlinuz name without actually compressing it. Hence stap
works in these distros.
In short, setting SYSTEMTAP_DEBUGINFO_PATH won't change existing functionality.
It will only change list of paths where to look for debuginfo file.
------- Comment From <email address hidden> 2016-02-15 11:06 EDT-------
Hi fche,
I think setting variable won't work in this case. Still I tried with that on ubuntu poweprc. Here is what I got:
===========
# export SYSTEMTAP_ DEBUGINFO_ PATH=/usr/ lib/debug/ boot
# echo $SYSTEMTAP_ DEBUGINFO_ PATH
/usr/lib/debug/boot
# strace -o out -e open ./stap -v probe.stp 32064res/ 5952shr/ 25408data kb, in 180usr/ 10sys/188real ms. function( "do_fork" )
Pass 1: parsed user script and 95 library script(s) using 41792virt/
WARNING: cannot find module kernel debuginfo: No DWARF information found [man warning::debuginfo]
semantic error: while resolving probe point: identifier 'kernel' at probe.stp:1:7
source: probe kernel.
^
semantic error: no match 35072res/ 7488shr/ 26368data kb, in 0usr/0sys/6real ms. doc/systemtap/ README. Debian should help you get started.
Pass 2: analyzed script: 0 probe(s), 0 function(s), 0 embed(s), 0 global(s) using 66304virt/
Pass 2: analysis failed. [man error::pass2]
Tip: /usr/share/
# cat out | grep vmlinu boot/vmlinux- 3.13.0- 76-generic" , O_RDONLY) = 3 lib/modules/ 3.13.0- 76-generic/ build/vmlinux. id", O_RDONLY) = -1 ENOENT (No such file or directory) usr/lib/ debug/boot/ boot/vmlinux- 3.13.0- 76-generic. debug", O_RDONLY) = -1 ENOENT (No such file or directory) usr/lib/ debug/boot/ vmlinux- 3.13.0- 76-generic. debug", O_RDONLY) = -1 ENOENT (No such file or directory) usr/lib/ debug/boot/ boot/vmlinux- 3.13.0- 76-generic. debug", O_RDONLY) = -1 ENOENT (No such file or directory) usr/lib/ debug/boot/ vmlinux- 3.13.0- 76-generic. debug", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/
open("/
open("/
open("/
open("/
open("/
#
===========
If stap (which internally uses elfutils) finds /boot/vmlinux file, and debuginfo RELEASE. debug). Ubuntu installs debuginfo without any
is not present in it, it uses it as "main elf" and looks for debuginfo file with ".debug"
extension(i.e. vmlinux-
extension (i.e. vmlinux-RELEASE).
If it does not able to find vmlinux from /boot/ it goes on continue looking for fie on
other paths without ".debug" extension. And it finds proper file. RHEL/Fedora on
powerpc uses /boot/vmlinuz name without actually compressing it. Hence stap
works in these distros.
In short, setting SYSTEMTAP_ DEBUGINFO_ PATH won't change existing functionality.
It will only change list of paths where to look for debuginfo file.