- Tapset function print_ubacktrace_fileline() now understands DWARF5 (PR30407)
+- Debuginfod probes may now be filtered by archive name.
+ This allows for probing only certain versions of a program
+ though a glob on the basename of the archive/package name.
+ For example if one of the files on the deubinfod server is
+ curl-minimal-8.0.1-5.fc38, the probe can be filtered to only
+ include the fedora 38 distro of the program (as in example below).
+
+ # export DEBUGINFOD_URLS="URL1 URL2 ..."
+ # stap -e 'probe debuginfod.archive("*.fc38").process("/usr/*/curl").begin { log("Hello World") }'
+
- The kernel-user message transport system added framing codes, making
the transport more reliable, but becoming incompatible across
pre-5.0 versions. Use matching versions of stap and staprun.
catch {close}; catch {wait}
if {$pass == 1} then { pass $subtest } else { fail $subtest }
+ # Test 1d: package
+ set subtest "$test package"
+ set systemtap_script {
+ probe
+ debuginfod
+ .archive("*probe*")
+ .process("/usr/local/bin/hello")
+ .function("main")
+ { printf("HelloWorld\n") }
+ }
+ spawn sh -c "$stap_path -ve \'$systemtap_script\' -p2 2>&1"
+ wait_n_secs 5
+ set pass 0
+ expect {
+ -timeout 5
+ -re {.*process\(\"f0aa15b8aba4f3c28cac3c2a73801fefa644a9f2\"\).function\(\"main\"\)*} { incr pass }
+ eof { }
+ timeout { fail "$subtest (timeout)" }
+ }
+ catch {close}; catch {wait}
+ if {$pass == 1} then { pass $subtest } else { fail $subtest }
+
# Cleanup
catch { exec rm -rf "/tmp/staptest" }
kill -INT $debuginfod_pid