Compare commits

...
Sign in to create a new pull request.

84 commits

Author SHA1 Message Date
Jonathan Wakely
0eafb3090d Patched to workaround Autoconf 2.72 incompatiblity with GCC 16 2026-01-13 18:57:21 +00:00
Jonathan Wakely
070cdc17ea Rebuilt for Boost 1.90 2026-01-13 10:52:47 +00:00
Frank Ch. Eigler
6fe8d3d7ef upstream release 5.4 2025-10-31 14:14:14 -04:00
Martin Cermak
93ca322655 Fix the CI gating setup
Fix the CI gating setup per https://docs.fedoraproject.org/en-US/ci/gating/
2025-09-22 20:32:15 +02:00
Frank Ch. Eigler
703cf33b20 Automated weekly systemtap rawhide release: 5.4~pre17585496g86ab88eb 2025-09-22 10:01:32 -04:00
Frank Ch. Eigler
02ce13f371 Automated weekly systemtap rawhide release: 5.4~pre17585473g1fe4178d 2025-09-22 09:23:23 -04:00
Python Maint
e304ee7f0d Rebuilt for Python 3.14.0rc3 bytecode 2025-09-19 14:59:01 +02:00
Python Maint
ccde07acbd Rebuilt for Python 3.14.0rc2 bytecode 2025-08-15 15:19:43 +02:00
Fedora Release Engineering
360287bbf0 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 19:02:43 +00:00
Python Maint
846836105b Rebuilt for Python 3.14 2025-06-03 14:30:52 +02:00
Frank Ch. Eigler
967cf9e53d disable dyninst buildreq on i686 2025-05-02 14:55:11 -04:00
Frank Ch. Eigler
b9c00fd898 rebase to upstream release 5.3 2025-05-02 14:45:36 -04:00
Frank Ch. Eigler
423d7bf3e5 Respin against newer dyninst 2025-02-06 09:04:46 -05:00
Frank Ch. Eigler
3105e88d5b expect disabled dyninst on i686 2025-01-24 18:52:57 -05:00
Frank Ch. Eigler
a230f161dd respin try for dyninst 13 2025-01-24 15:51:58 -05:00
Frank Ch. Eigler
12f28a923c Respin against dyninst 13.0.0 2025-01-24 15:25:54 -05:00
Frank Ch. Eigler
2da431cab3 Automated weekly systemtap rawhide release: 5.3~pre17373816g7a71d34b 2025-01-20 09:01:46 -05:00
Frank Ch. Eigler
e8c03b8035 Automated weekly systemtap rawhide release: 5.3~pre17373794g3efe129d 2025-01-20 08:26:17 -05:00
Frank Ch. Eigler
4f28506db7 Automated weekly systemtap rawhide release: 5.3~pre17373422g9a48fbea 2025-01-19 22:04:39 -05:00
Frank Ch. Eigler
ae0cad098c Automated weekly systemtap rawhide release: 5.2~pre17373420g1e894ff0 2025-01-19 22:01:49 -05:00
Fedora Release Engineering
eb8c0fea4c Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 12:16:21 +00:00
Frank Ch. Eigler
17f221776b upstream systemtap 5.2 release 2024-11-08 19:58:20 -05:00
William Cohen
67e80ccf00 Automated weekly systemtap rawhide release: 5.2~pre17283218gc5774e18 2024-10-07 13:24:16 -04:00
William Cohen
5a82cccf73 Automated weekly systemtap rawhide release: 5.2~pre17277956g0b7f6722 2024-10-01 11:15:22 -04:00
Frank Ch. Eigler
9c79ac67a5 Automated weekly systemtap rawhide release: 5.2~pre17250223gd07e4284 2024-08-30 08:52:32 -04:00
Martin Cermak
e42e009a44 CI Tests: Move systemtap tests to separate git repo
* Move systemtap tests to separate tests repo:
  https://src.fedoraproject.org/tests/systemtap
* For automated CI gating purposes use:
  https://src.fedoraproject.org/tests/systemtap-gating
2024-08-19 17:50:12 +02:00
Martin Cermak
6ba46a9a04 CI Tests: Regression/stap-ERROR-Build-id-mismatch-with: Skip on rhel9 (known RHEL-50105) 2024-08-16 18:27:34 +02:00
Martin Cermak
4bf1177f47 CI Tests: Regression/small-tests: run each subtest as a separate testcase 2024-08-16 18:02:50 +02:00
Martin Cermak
91da2bdd2e CI Tests: Regression/small-tests: provide TESTS var to specify tests to run 2024-08-16 17:22:11 +02:00
Lumir Balhar
20b4dc7947 Final split of sdt-dtrace and sdt-devel (rhbz#2296275)
https://fedoraproject.org/wiki/Changes/Separate_dtrace_package
2024-08-12 10:54:45 +00:00
Martin Cermak
d0c648ee8c CI Tests: Mark Sanity/quick-smoke-test as 'tier 1' 2024-08-09 13:30:01 +02:00
William Cohen
eedaf37e14 Automated weekly systemtap rawhide release: 5.2~pre17224323g98d1ea34 2024-07-31 09:27:17 -04:00
Lumir Balhar
93948388bc New sdt-dtrace subpackage for dtrace tool (rhbz#2296275)
This is phase one of the approved self-contained change:
https://fedoraproject.org/wiki/Changes/Separate_dtrace_package

Phase two will be to switch all packages that need the dtrace tool
to the new systemtap-sdt-drace and then we can remove
the requirement from systemtap-sdt-devel package.
2024-07-18 10:01:34 +02:00
William Cohen
8c07a00957 Automated weekly systemtap rawhide release: 5.2~pre17206355g1a07290a 2024-07-10 14:19:34 -04:00
William Cohen
f95124e787 Automated weekly systemtap rawhide release: 5.1~pre17206206ge48abca5 2024-07-10 10:10:10 -04:00
Martin Cermak
956a4db3d9 CI Tests: ftrace-logging-tapset test: adjust expected output 2024-06-28 13:02:36 +02:00
Martin Cermak
36b1f19663 CI tests: Regression/small-tests: extend test time 2024-06-20 14:36:31 +02:00
Martin Cermak
897096ec80 CI Tests: second-command-not-captured: raise STP_OVERLOAD_THRESHOLD for ppc64le
In tests/Regression/second-command-not-captured raise the
STP_OVERLOAD_THRESHOLD.  In practice the original treshold
500000000LL was hit here and there, causing intermittent
testcase failures.  This was reproducible manually in cca
50% of tests.
2024-06-20 14:20:53 +02:00
Martin Cermak
dd61c2d292 CI Tests: Port backtrace test for kernel-6.10
Modern kernel-6.10 doesn't have function kmem_cache_alloc(),
but we can test with another one, such as schedule().
2024-06-19 10:48:55 +02:00
Martin Cermak
73bce465bd CI Tests: Suppress selected rhel10/ppc64le error::dwarf problems 2024-06-17 18:42:00 +02:00
Martin Cermak
4ae3ff2152 CI Tests: Do not rely on python-unversioned-command.rpm 2024-06-13 12:15:54 +02:00
Python Maint
95a46ceb44 Rebuilt for Python 3.13 2024-06-08 22:34:35 +02:00
Frank Ch. Eigler
64a9703628 release 5.1 2024-05-16 12:03:54 -04:00
Martin Cermak
11f44c8ba2 CI tests: Regression/small-tests update 2024-05-08 08:22:55 +02:00
Martin Cermak
87e8ee9d88 CI tests: python probing: behave on rhel 2024-05-08 08:04:34 +02:00
Martin Cermak
668b8dd42a CI test updates
- Add upstream testsuite tests/Regression/upstream-testsuite
  to the CI testplan.  However, this one isn't a good measure
  for gating, because it is too complex and flaky.  But it's
  good to have test results at hand.  This testcase reports a
  failure only in case of an infrastructure problem.  Individual
  .exp test failures are not a show stopper from the persp of
  the CI gating.
- Add upstream systemtap build and install pseudo testcase.
  tests/Install/upstream-systemtap to the testplan.
  This one is disabled by default (in its main.fmf file).  The
  point here is to be able to test with upstream version of
  systemtap in case a working fedora build isn't available.
  This is a helper for manual testing, although if enabled, it
  will do its job in the automated CI pipeline too.
- Use FMF tag instead of tier attributes to define the testplan.
- Testcase updates:
  * tests/Regression/second-command-not-captured
  * tests/Regression/python-probing
2024-04-17 08:29:50 +02:00
Martin Cermak
63994d2843 Align with modern FMF specs. 2024-02-21 15:26:12 +01:00
Frank Ch. Eigler
4ae6e4b029
testsuite: adapt to "egrep" deprecation
sigh
2024-01-25 17:56:30 -05:00
Frank Ch. Eigler
756feba063 Automated weekly systemtap rawhide release: 5.1~pre17062192g5fd8daba 2024-01-25 16:47:16 -05:00
Frank Ch. Eigler
6b9b658442 testsuite: adapt to "fgrep" deprecation
Since for some reason upstream grep deprecated "fgrep", and for some reason
fedora packagers followed suit, some these tests scripts fail with the goofy
"fgrep: warning: fgrep is obsolescent; using grep -F" warning.
2024-01-25 16:42:18 -05:00
Frank Ch. Eigler
5c095346d4 Regression/PR16166/towers.c: gcc14 warning suppression 2024-01-25 16:38:34 -05:00
Frank Ch. Eigler
9c100ef16f restore SPDX %changelog blurb 2024-01-25 15:04:14 -05:00
Frank Ch. Eigler
0cecbe6966 Automated weekly systemtap rawhide release: 5.1~pre17062114g2604d135 2024-01-25 14:39:53 -05:00
Frank Ch. Eigler
f078b4cd79 Automated weekly systemtap rawhide release: 5.1~pre17060399gb6abf4bd 2024-01-23 15:00:09 -05:00
Frank Ch. Eigler
086a7444b9 Automated weekly systemtap rawhide release: 5.1~pre17059382g67086c54 2024-01-22 10:44:38 -05:00
Frank Ch. Eigler
d628fd39d2 Automated weekly systemtap rawhide release: 5.1~pre17056139g6c0b92b3 2024-01-18 16:39:40 -05:00
Frank Ch. Eigler
4aed2098f3 Automated weekly systemtap rawhide release: 5.1~pre17056120g2ccc0c4c 2024-01-18 16:07:50 -05:00
Jonathan Wakely
2783b620ad Rebuilt for Boost 1.83 2024-01-18 05:21:41 +00:00
Martin Cermak
1d4a6f14bb CI Tests: Robustify Regression/RHEL6Feature-cpp-backtraces 2023-11-24 15:13:33 +01:00
Frank Ch. Eigler
2a2af534e3 Resolves: RHEL-16549, systemtap uprobe partial registration failure can cause crashes 2023-11-16 18:50:39 -05:00
Frank Ch. Eigler
7e30728b5f Upstream release 5.0 2023-11-04 12:31:05 -04:00
Martin Cermak
5d53a19f79 Fix Regression/ipv6-tapset-support for modern Fedoras 2023-10-13 23:05:42 +02:00
William Cohen
b7cac72f19 Automated weekly systemtap rawhide release: 5.0~pre16958465gca71442b 2023-09-27 16:30:49 -04:00
Fedora Release Engineering
92650f2647 Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 03:06:17 +00:00
Frank Ch. Eigler
3be2cacf55 Automated weekly systemtap rawhide release: 5.0~pre16891249ge891a37e 2023-07-11 21:23:14 -04:00
Frank Ch. Eigler
f303d28d53 Automated weekly systemtap rawhide release: 5.0~pre16890184ge891a37e 2023-07-10 15:47:14 -04:00
Frank Ch. Eigler
6c6cf1bcac Automated weekly systemtap rawhide release: 5.0~pre16885234gd98d6c2d 2023-07-04 22:17:16 -04:00
Frank Ch. Eigler
61a9dae5ea Automated weekly systemtap rawhide release: 5.0~pre16885197g6b17715f 2023-07-04 21:30:50 -04:00
Python Maint
6464adf385 Rebuilt for Python 3.12 2023-06-13 23:29:35 +02:00
Mark Wielaard
11422e39ad 4.9-2 - rebuilt for f39-build-side-67564 target 2023-05-19 22:49:33 +02:00
Martin Cermak
91acc811a1 CI Tests: Set DEBUGINFOD_URLS based on test FMF context.
Tests are supposed to be executed within defined context, such as e.g.
tmt --root . -c arch=x86_64 -c distro=fedora-38 -c trigger=build run ...

FTR: https://tmt.readthedocs.io/en/stable/spec/plans.html#context

This update sets DEBUGINFOD_URLS based on the provided distro
via the ci.fmf file.
2023-05-19 10:34:46 +02:00
Martin Cermak
3759fe484f CI Tests: Instead of waiting for a random event/hit, trigger one via ping 2023-05-18 13:09:44 +02:00
Martin Cermak
863bc06741 CI Tests: Regression/small-tests: Use debuginfod on Fedora 2023-05-18 12:26:45 +02:00
Martin Cermak
ca2a8a03ea CI Tests: Work around PR29765 2023-05-17 17:19:46 +02:00
Martin Cermak
12975603f1 CI Tests: Multiple updates
tests/Regression/RHEL6Feature-cpp-methods:
  Fix locale/LANG dependent sort collation prob
tests/Regression/python-probing:
  Make sure needed debuginfo is in place
tests/Regression/wrong-data-returned-by-nfs-commit-done:
  Refactor, improve clranup, simplify
2023-05-04 17:56:45 +02:00
Martin Cermak
6e53120fd1 CI Tests: Relax check for RPMs (not applicable to rhel8 modules) 2023-05-02 10:47:18 +02:00
Frank Ch. Eigler
0a08050f43 upstream release 2023-04-28 17:21:02 -04:00
Martin Cermak
8ea2489c53 CI Testing: Extend test coverage on Fedora
Enable most of the tests on Fedora.  Port some of them to Fedora.
Annotate expected failures with respective bugzilla IDs.
2023-03-10 15:27:23 +01:00
Frank Ch. Eigler
340640bc27 rhbz2173032 2023-02-23 16:37:59 -05:00
Martin Cermak
1c8c98dbcd CI testing: Drop the Regression/testsuite-upstream-raw TC 2023-02-22 09:48:52 +01:00
Martin Cermak
6e2eede1a1 CI tests: bz2152970 is a known issue 2023-02-21 20:41:54 +01:00
Martin Cermak
671f002697 Make yamllint happier 2023-02-21 18:46:22 +01:00
Martin Cermak
da710f5bb8 CI tests: On Fedora run Tier1 tests only. 2023-02-21 16:46:33 +01:00
Jonathan Wakely
f407c7e3a1 Rebuilt for Boost 1.81 2023-02-20 22:18:20 +00:00
152 changed files with 308 additions and 7482 deletions

29
.gitignore vendored
View file

@ -84,3 +84,32 @@
/systemtap-4.8~pre16594741g5bdc37b9.tar.gz
/systemtap-4.8~pre16650659g6a096a7d.tar.gz
/systemtap-4.8.tar.gz
/systemtap-4.9.tar.gz
/systemtap-5.0~pre16885197g6b17715f.tar.gz
/systemtap-5.0~pre16885234gd98d6c2d.tar.gz
/systemtap-5.0~pre16890184ge891a37e.tar.gz
/systemtap-5.0~pre16891249ge891a37e.tar.gz
/systemtap-5.0~pre16958465gca71442b.tar.gz
/systemtap-5.0.tar.gz
/systemtap-5.1~pre17056120g2ccc0c4c.tar.gz
/systemtap-5.1~pre17056139g6c0b92b3.tar.gz
/systemtap-5.1~pre17059382g67086c54.tar.gz
/systemtap-5.1~pre17060399gb6abf4bd.tar.gz
/systemtap-5.1~pre17062114g2604d135.tar.gz
/systemtap-5.1~pre17062192g5fd8daba.tar.gz
/systemtap-5.1.tar.gz
/systemtap-5.1~pre17206206ge48abca5.tar.gz
/systemtap-5.2~pre17206355g1a07290a.tar.gz
/systemtap-5.2~pre17224323g98d1ea34.tar.gz
/systemtap-5.2~pre17250223gd07e4284.tar.gz
/systemtap-5.2~pre17277956g0b7f6722.tar.gz
/systemtap-5.2~pre17283218gc5774e18.tar.gz
/systemtap-5.2.tar.gz
/systemtap-5.2~pre17373420g1e894ff0.tar.gz
/systemtap-5.3~pre17373422g9a48fbea.tar.gz
/systemtap-5.3~pre17373794g3efe129d.tar.gz
/systemtap-5.3~pre17373816g7a71d34b.tar.gz
/systemtap-5.3.tar.gz
/systemtap-5.4~pre17585473g1fe4178d.tar.gz
/systemtap-5.4~pre17585496g86ab88eb.tar.gz
/systemtap-5.4.tar.gz

View file

@ -1,7 +1,15 @@
--- !Policy
product_versions:
- fedora-*
decision_context: bodhi_update_push_stable
decision_contexts: [bodhi_update_push_testing]
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
- !PassingTestCaseRule {test_case_name: baseos-qe.koji-build.scratch-build.validation}
--- !Policy
product_versions:
- fedora-*
decision_contexts: [bodhi_update_push_stable]
subject_type: koji_build
rules:
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}

View file

@ -1,12 +1,12 @@
summary: CI Gating Plan
discover:
how: fmf
directory: tests
filter: 'tier: 1'
how: fmf
url: https://src.fedoraproject.org/tests/systemtap-gating.git
ref: main
directory: tests
prepare:
how: install
exclude:
- glibc-headers-x86
- glibc-headers-s390
- name: prepare
how: shell
script: ./plans/prepare.sh
execute:
how: tmt
how: tmt

View file

@ -1,7 +0,0 @@
summary: Setup task
prepare:
script: ./plans/ci/prepare/prepare.sh
recommend:
- koji
- bind-utils
- avahi-tools

View file

@ -1,12 +1,9 @@
#!/bin/bash
export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS"
export DEBUGINFOD_TIMEOUT=300
# On Rawhide, the running kernel packages won't probably be avail in
# configured repos. Debuginfo isn't a problem, we access that using
# the debuginfod.
__install_deps ()
__fedora_install_deps ()
{
TMPD=$(mktemp -d)
pushd $TMPD
@ -20,8 +17,12 @@ __install_deps ()
set -xe
source /etc/os-release
# Install needed packages
stap-prep || __install_deps
if [ "$ID" == "fedora" ]; then
stap-prep || __fedora_install_deps
fi
stap-prep
# Report installed packages

View file

@ -1,50 +0,0 @@
commit 47cab810bb7ea315a2dec23c2f61e7ba74515b82
Author: Martin Cermak <mcermak@redhat.com>
Date: Fri Dec 16 16:08:20 2022 -0500
tapset: nfs.proc.commit_done compilation on some kernels
Correct:
9.0 Server x86_64 # stap -vp3 nfs.proc.commit_done.stp
Pass 1: parsed user script and 482 library scripts using 108088virt/88468res/12460shr/75476data kb, in 190usr/60sys/501real ms.
semantic error: invalid access '->task' vs 'void*': operator '->' at /usr/share/systemtap/tapset/linux/nfs_proc.stpm:16:21
source: ( get_ip(&@nfs_data->task) )
^
in expansion of macro: operator '@_nfs_data_server_ip' at /usr/share/systemtap/tapset/linux/nfs_proc.stp:1421:15
source: server_ip = @_nfs_data_server_ip($task->tk_calldata)
^
diff --git a/tapset/linux/nfs_proc.stp b/tapset/linux/nfs_proc.stp
index 9b1f65f5f..4413384f9 100644
--- a/tapset/linux/nfs_proc.stp
+++ b/tapset/linux/nfs_proc.stp
@@ -1442,10 +1442,11 @@ probe nfs.proc3.commit_done = kernel.function("nfs3_commit_done") !,
valid = @_nfs_data_valid($data)
}
else {
- server_ip = @_nfs_data_server_ip($task->tk_calldata)
- prot = @_nfs_data_prot($task->tk_calldata)
- count = @_nfs_data_res_count($task->tk_calldata)
- valid = @_nfs_data_valid($task->tk_calldata)
+ _tk_calldata=@choose_defined($task->tk_calldata, @cast($task, "rpc_task", "kernel:nfs")->tk_calldata)
+ server_ip = @_nfs_data_server_ip(_tk_calldata)
+ prot = @_nfs_data_prot(_tk_calldata)
+ count = @_nfs_data_res_count(_tk_calldata)
+ valid = @_nfs_data_valid(_tk_calldata)
}
timestamp = 0
version = 3
diff --git a/tapset/linux/nfs_proc.stpm b/tapset/linux/nfs_proc.stpm
index 8576c0f33..4fe40b2a5 100644
--- a/tapset/linux/nfs_proc.stpm
+++ b/tapset/linux/nfs_proc.stpm
@@ -13,7 +13,7 @@
@define _nfs_data_server_ip(nfs_data)
%(
- ( get_ip(&@nfs_data->task) )
+ ( get_ip(@choose_defined(&@nfs_data->task, &@cast(@nfs_data, "nfs_commit_data", "kernel:nfs")->task)) )
%)
@define _nfs_data_prot(nfs_data)

View file

@ -1,30 +0,0 @@
commit 578e60102871d11ed8c18d36f6286f3a96258d8f
Author: Ryan Goldberg <rgoldber@redhat.com>
Date: Thu Dec 1 16:15:44 2022 -0500
PR29676: Wildcard expansion fix for labels
PR29676, introduced an bug where function symbols from the symbol
table were expanded in the function component resulting in wildcards
not being expanded in labels. This fix, removes the issue by restricting
the symbol table query to probes which don't need further debuginfo to
expand.
diff --git a/tapsets.cxx b/tapsets.cxx
index 0ec71ebda..46b10f26e 100644
--- a/tapsets.cxx
+++ b/tapsets.cxx
@@ -1256,7 +1256,11 @@ dwarf_query::handle_query_module()
// in the symbol table but not in dwarf and minidebuginfo is
// located in the gnu_debugdata section, alias_dupes checking
// is done before adding any probe points
- if(!pending_interrupts)
+ // PR29676. Some probes require additional debuginfo
+ // to expand wildcards (ex. .label, .callee). Since the debuginfo is
+ // not available, don't bother looking in the symbol table for these results.
+ // This can result in 0 results, if there is no dwarf info present
+ if(!pending_interrupts && !(has_label || has_callee || has_callees_num))
query_module_symtab();
}

View file

@ -1,78 +0,0 @@
commit 05eb6742c169226ae09f1737aa8b9dc1dc12adb5
Author: Mark Wielaard <mark@klomp.org>
Date: Tue Nov 29 18:50:58 2022 +0100
Handle DWARF5 DW_OP_implicit_pointer and DW_OP_entry_value
These are the same as the GNU extensions for older DWARF,
DW_OP_GNU_implicit_pointer and DW_GNU_entry_value.
diff --git a/loc2stap.cxx b/loc2stap.cxx
index efc78cc57..53316a480 100644
--- a/loc2stap.cxx
+++ b/loc2stap.cxx
@@ -23,6 +23,11 @@
#define DW_OP_GNU_entry_value 0xf3
#endif
+#if ! _ELFUTILS_PREREQ(0, 171)
+#define DW_OP_entry_value 0xa3
+#define DW_OP_implicit_pointer 0xa0
+#endif
+
#define N_(x) x
@@ -372,7 +377,7 @@ location_context::translate (const Dwarf_Op *expr, const size_t len,
DIE ("operations follow DW_OP_implicit_value");
if (implicit_pointer != NULL)
- DIE ("operations follow DW_OP_GNU_implicit_pointer");
+ DIE ("operations follow DW_OP implicit_pointer");
}
switch (expr[i].atom)
@@ -662,6 +667,7 @@ location_context::translate (const Dwarf_Op *expr, const size_t len,
#if _ELFUTILS_PREREQ (0, 149)
case DW_OP_GNU_implicit_pointer:
+ case DW_OP_implicit_pointer:
implicit_pointer = &expr[i];
/* Fake top of stack: implicit_pointer being set marks it. */
PUSH(NULL);
@@ -684,10 +690,11 @@ location_context::translate (const Dwarf_Op *expr, const size_t len,
break;
case DW_OP_GNU_entry_value:
+ case DW_OP_entry_value:
{
expression *result = handle_GNU_entry_value (expr[i]);
if (result == NULL)
- DIE("DW_OP_GNU_entry_value unable to resolve value");
+ DIE("DW_OP entry_value unable to resolve value");
PUSH(result);
}
break;
@@ -1248,7 +1255,8 @@ location_context::location_relative (const Dwarf_Op *expr, size_t len,
break;
case DW_OP_GNU_entry_value:
- DIE ("unhandled DW_OP_GNU_entry_value");
+ case DW_OP_entry_value:
+ DIE ("unhandled DW_OP entry_value");
break;
default:
diff --git a/testsuite/systemtap.base/dw_entry_value.exp b/testsuite/systemtap.base/dw_entry_value.exp
index 7339fc5fa..b728fa7ff 100644
--- a/testsuite/systemtap.base/dw_entry_value.exp
+++ b/testsuite/systemtap.base/dw_entry_value.exp
@@ -10,7 +10,7 @@ if { $res != "" } {
pass "$test: compiled $test.c"
}
-if { ![catch { exec eu-readelf -w $test | grep GNU_entry_value }] } {
+if { ![catch { exec eu-readelf -w $test | grep entry_value: }] } {
stap_run $test no_load $all_pass_string $srcdir/$subdir/$test.stp -c ./${test} -w
} else {
untested "$test: no DW_OP_GNU_entry_value found"

View file

@ -1,73 +0,0 @@
commit 7eed8d1fef36997b9e4c1d9cdb67643483a51e56
Author: William Cohen <wcohen@redhat.com>
Date: Fri Nov 4 11:12:05 2022 -0400
Ensure that SystemTap runtime uses smp_processor_id() in proper context
There were cases on Fedora 36 and Rawhide running kernels with
CONFIG_DEBUG_PREEMPT=y where systemtap scripts would trigger kernel
log messages like the following:
[ 257.544406] check_preemption_disabled: 4 callbacks suppressed
[ 257.544409] BUG: using smp_processor_id() in preemptible [00000000] code: staprun/2106
[ 257.544465] caller is _stp_runtime_context_trylock+0x12/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544507] CPU: 0 PID: 2106 Comm: staprun Tainted: G OE ------- --- 6.1.0-0.rc2.20221028git23758867219c.24.fc38.x86_64 #1
[ 257.544544] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.0-1.fc36 04/01/2014
[ 257.544571] Call Trace:
[ 257.544583] <TASK>
[ 257.544593] dump_stack_lvl+0x5b/0x77
[ 257.544620] check_preemption_disabled+0xe1/0xf0
[ 257.544641] _stp_runtime_context_trylock+0x12/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544673] _stp_runtime_entryfn_get_context+0xb/0x70 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544705] _stp_ctl_send+0x76/0x1e0 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544735] _stp_transport_init+0x71a/0x860 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544771] ? kallsyms_on_each_symbol+0x30/0x30 [stap_e36600406768aeefd49daf9fc7a3d23c_2106]
[ 257.544803] do_one_initcall+0x6b/0x320
[ 257.544827] do_init_module+0x4a/0x200
[ 257.544844] __do_sys_init_module+0x16a/0x1a0
[ 257.544870] do_syscall_64+0x58/0x80
[ 257.544885] ? up_read+0x17/0x20
[ 257.544902] ? lock_is_held_type+0xe8/0x140
[ 257.544921] ? asm_exc_page_fault+0x22/0x30
[ 257.544939] ? lockdep_hardirqs_on+0x7d/0x100
[ 257.544956] entry_SYSCALL_64_after_hwframe+0x63/0xcd
[ 257.544975] RIP: 0033:0x7f3cde12f5de
[ 257.544992] Code: 48 8b 0d 35 68 0c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 49 89 ca b8 af 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 02 68 0c 00 f7 d8 64 89 01 48
[ 257.545010] RSP: 002b:00007ffc5170c418 EFLAGS: 00000246 ORIG_RAX: 00000000000000af
[ 257.545010] RAX: ffffffffffffffda RBX: 0000563620bd4020 RCX: 00007f3cde12f5de
[ 257.545010] RDX: 0000563620bd4020 RSI: 0000000000040ea0 RDI: 00007f3cde44a010
[ 257.545010] RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000
[ 257.545010] R10: 0000000000000053 R11: 0000000000000246 R12: 00007ffc5170c510
[ 257.545010] R13: 00007f3cde44a010 R14: 00007ffc5170c440 R15: 00007f3cde4631e8
[ 257.545010] </TASK>
This issue was introduced by git commit 1641b6e7ea which added a fast
path check that used smp_processor_id() without first having a
preempt_disable(). The code now ensures that preemption is disabled
before using the smp_processor_id().
diff --git a/runtime/linux/runtime_context.h b/runtime/linux/runtime_context.h
index 3ed3cbd22..ee3870f32 100644
--- a/runtime/linux/runtime_context.h
+++ b/runtime/linux/runtime_context.h
@@ -49,13 +49,18 @@ static bool _stp_runtime_context_trylock(void)
{
bool locked;
+ /* Need to disable preemption because of the smp_processor_id() call
+ in _stp_runtime_get_context(). */
+ preempt_disable();
+
/* fast path to ignore new online CPUs without percpu context memory
* allocations. this also serves as an extra safe guard for NULL context
* pointers. */
- if (unlikely(_stp_runtime_get_context() == NULL))
+ if (unlikely(_stp_runtime_get_context() == NULL)) {
+ preempt_enable_no_resched();
return false;
+ }
- preempt_disable();
locked = atomic_add_unless(&_stp_contexts_busy_ctr, 1, INT_MAX);
if (!locked)
preempt_enable_no_resched();

View file

@ -1,72 +0,0 @@
commit 8f3498781413a710dc9e128f5a96891a6a18fc52
Author: Martin Cermak <mcermak@redhat.com>
Date: Wed Dec 14 17:37:58 2022 +0100
PR29766: kernel.function("__set_page_dirty_buffers") not found in vfs.stp
Updates needed for 6.1.0-65.fc38 compatibility.
diff --git a/tapset/linux/vfs.stp b/tapset/linux/vfs.stp
index e3c1a3032..aebeb3fc0 100644
--- a/tapset/linux/vfs.stp
+++ b/tapset/linux/vfs.stp
@@ -822,13 +822,15 @@ probe vfs.buffer_migrate_page.return =
}
/* default if aop not set, __set_page_dirty_nobuffers usually used if set */
-probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")
+/* block_dirty_folio related to kernel commit e621900ad28b748e058b81d6078 */
+probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")!,
+ kernel.function("block_dirty_folio")
{
- dev = __page_dev($page)
- devname = __find_bdevname(dev, __page_bdev($page))
- ino = __page_ino($page)
+ dev = __page_dev(@choose_defined($page, $folio))
+ devname = __find_bdevname(dev, __page_bdev(@choose_defined($page, $folio)))
+ ino = __page_ino(@choose_defined($page, $folio))
- index = __page_index($page)
+ index = __page_index(@choose_defined($page, $folio))
name = "__set_page_dirty_buffers"
argstr = sprintf("%d", index)
@@ -837,7 +839,8 @@ probe vfs.__set_page_dirty_buffers = kernel.function("__set_page_dirty_buffers")
units = "pages"
}
probe vfs.__set_page_dirty_buffers.return =
- kernel.function("__set_page_dirty_buffers").return
+ kernel.function("__set_page_dirty_buffers").return!,
+ kernel.function("block_dirty_folio")
{
name = "__set_page_dirty_buffers"
retstr = sprintf("%d", $return)
@@ -914,8 +917,9 @@ probe __vfs.ext4_mpage_readpages.return =
/* newer style */
+/* add_to_page_cache_locked removed per kernel commit f00654007fe1c15 */
probe vfs.__add_to_page_cache =
- kernel.function("add_to_page_cache_locked"),
+ kernel.function("add_to_page_cache_locked") !,
kernel.function("add_to_page_cache_lru")
{ }
@@ -939,7 +943,7 @@ probe vfs.add_to_page_cache =
/* newer style */
probe vfs.__add_to_page_cache.return =
- kernel.function("add_to_page_cache_locked").return,
+ kernel.function("add_to_page_cache_locked").return !,
kernel.function("add_to_page_cache_lru").return
{ }
@@ -958,7 +962,7 @@ probe vfs.add_to_page_cache.return =
probe vfs.remove_from_page_cache =
kernel.function("__delete_from_page_cache") !,
- kernel.function("__remove_from_page_cache")
+ kernel.function("__remove_from_page_cache") ?
{
dev = __page_dev($page)
devname = __find_bdevname(dev, __page_bdev($page))

View file

@ -1 +1 @@
SHA512 (systemtap-4.8.tar.gz) = fdcbc48ba17b2155c1419d99147a4cfbee2e69db945bfd0e6881b71ab11165bd23ea7ce9456856ae36807fb18f9934880a6b7c44456b63833ea260038744d9f2
SHA512 (systemtap-5.4.tar.gz) = 5869fe3735e44be65ba7895a46b4ea66fcdcc21ed2ab0673c62d822730553837f816d82fd78eeca4bfe6f17fdeaa12eb2f94c0b0b7ebb8c495c961f0b6935785

13
systemtap-gcc16.patch Normal file
View file

@ -0,0 +1,13 @@
--- systemtap-5.4/configure~ 2025-10-30 14:47:35.000000000 +0000
+++ systemtap-5.4/configure 2026-01-13 18:53:20.466037572 +0000
@@ -3121,8 +3121,8 @@
}
{
// Unicode literals
- char const *utf8 = u8"UTF-8 string \u2500";
- char16_t const *utf16 = u"UTF-8 string \u2500";
+ auto const *utf8 = u8"UTF-8 string \u2500";
+ char16_t const *utf16 = u"UTF-16 string \u2500";
char32_t const *utf32 = U"UTF-32 string \u2500";
}
'

View file

@ -1,3 +1,5 @@
# work around flakey gcc warnings
%{!?with_Werror: %global with_Werror 0}
%{!?with_sqlite: %global with_sqlite 0%{?fedora} >= 17 || 0%{?rhel} >= 7}
# prefer prebuilt docs
%{!?with_docs: %global with_docs 0}
@ -11,8 +13,8 @@
%endif
%{!?with_rpm: %global with_rpm 1}
%{!?elfutils_version: %global elfutils_version 0.179}
%{!?with_boost: %global with_boost 0}
%ifarch %{ix86} x86_64 ppc ppc64 ppc64le aarch64
%{!?with_boost: %global with_boost 1}
%ifarch x86_64 ppc ppc64 ppc64le aarch64
%{!?with_dyninst: %global with_dyninst 0%{?fedora} >= 18 || 0%{?rhel} >= 7}
%else
%{!?with_dyninst: %global with_dyninst 0}
@ -43,9 +45,13 @@
%{!?with_httpd: %global with_httpd 0}
%{!?with_specific_python: %global with_specific_python 0%{?fedora} >= 31}
%{!?with_sysusers: %global with_sysusers 0%{?fedora} >= 32 || 0%{?rhel} >= 9}
# NB: can't turn this on by default on any distro version whose builder system
# may run kernels different than the distro version itself.
%{!?with_check: %global with_check 0}
# Virt is supported on these arches, even on el7, but it's not in core EL7
%if 0%{?rhel} <= 7
%if 0%{?rhel} && 0%{?rhel} <= 7
%ifarch ppc64le aarch64
%global with_virthost 0
%endif
@ -64,9 +70,6 @@
%else
%if 0%{?rhel} >= 6
%define udevrulesdir /lib/udev/rules.d
%else
# RHEL5
%define udevrulesdir /etc/udev/rules.d
%endif
%endif
%endif
@ -83,11 +86,7 @@
%define dracutbindir %{_bindir}
%endif
%if 0%{?rhel} == 6
%{!?_rpmmacrodir: %define _rpmmacrodir /etc/rpm/}
%else
%{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d}
%endif
%{!?_rpmmacrodir: %define _rpmmacrodir %{_rpmconfigdir}/macros.d}
# To avoid testsuite/*/*.stp has shebang which doesn't start with '/'
%define __brp_mangle_shebangs_exclude_from .stp$
@ -97,7 +96,10 @@
\
g stapusr 156\
g stapsys 157\
g stapdev 158
g stapdev 158\
g stapunpriv 159\
u stapunpriv 159 "systemtap unprivileged user" /var/lib/stapunpriv /sbin/nologin\
m stapunpriv stapunpriv
%define _systemtap_server_preinstall \
# See systemd-sysusers(8) sysusers.d(5)\
@ -119,10 +121,17 @@ m stapsys stapsys\
m stapdev stapusr\
m stapdev stapdev
%define _systemtap_server_preinstall_tmpfiles \
# See systemd-tmpfiles(8) tmpfiles.d(5)\
d /var/lib/stap-server 0750 stap-server stap-server -\
d /var/lib/stap-server/.systemtap 0700 stap-server stap-server -\
d /var/log/stap-server 0755 stap-server stap-server -\
f /var/log/stap-server/log 0644 stap-server stap-server -
Name: systemtap
Version: 4.8
Release: 3%{?release_override}%{?dist}
# PRERELEASE
Version: 5.4
Release: 2%{?release_override}%{?dist}
# for version, see also configure.ac
@ -134,13 +143,15 @@ Release: 3%{?release_override}%{?dist}
# systemtap-runtime /usr/bin/staprun, /usr/bin/stapsh, /usr/bin/stapdyn
# systemtap-client /usr/bin/stap, samples, docs, tapset(bonus), req:-runtime
# systemtap-initscript /etc/init.d/systemtap, dracut module, req:systemtap
# systemtap-sdt-devel /usr/include/sys/sdt.h /usr/bin/dtrace
# systemtap-sdt-devel /usr/include/sys/sdt.h
# systemtap-sdt-dtrace /usr/bin/dtrace
# systemtap-testsuite /usr/share/systemtap/testsuite*, req:systemtap, req:sdt-devel
# systemtap-runtime-java libHelperSDT.so, HelperSDT.jar, stapbm, req:-runtime
# systemtap-runtime-virthost /usr/bin/stapvirt, req:libvirt req:libxml2
# systemtap-runtime-virtguest udev rules, init scripts/systemd service, req:-runtime
# systemtap-runtime-python2 HelperSDT python2 module, req:-runtime
# systemtap-runtime-python3 HelperSDT python3 module, req:-runtime
# systemtap-jupyter /usr/bin/stap-jupyter-* interactive-notebook req:systemtap
#
# Typical scenarios:
#
@ -154,17 +165,10 @@ Release: 3%{?release_override}%{?dist}
# intermediary stap-server for --use-server: systemtap-server (-devel unused)
Summary: Programmable system-wide instrumentation system
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Source: ftp://sourceware.org/pub/systemtap/releases/systemtap-%{version}.tar.gz
Patch1: rhbz1997192.patch
Patch2: rhbz2145242.patch
Patch3: rhbz2149223.patch
Patch4: rhbz2149666.patch
Patch5: rhbz2154430.patch
Patch0: systemtap-gcc16.patch
# Build*
BuildRequires: make
@ -175,6 +179,7 @@ BuildRequires: pkgconfig(nss)
BuildRequires: pkgconfig(avahi-client)
%if %{with_debuginfod}
BuildRequires: pkgconfig(libdebuginfod)
BuildRequires: pkgconfig(json-c)
%endif
%if %{with_dyninst}
BuildRequires: dyninst-devel >= 10.0
@ -191,9 +196,7 @@ BuildRequires: pkgconfig(ncurses)
BuildRequires: systemd
%endif
# Needed for libstd++ < 4.0, without <tr1/memory>
%if %{with_boost}
BuildRequires: boost-devel
%endif
%if %{with_crash}
BuildRequires: crash-devel zlib-devel
%endif
@ -215,7 +218,7 @@ BuildRequires: xmlto /usr/share/xmlto/format/fo/pdf
%endif
%if %{with_emacsvim}
# for _emacs_sitelispdir macros etc.
BuildRequires: emacs
BuildRequires: emacs-common
%endif
%if %{with_java}
BuildRequires: java-devel
@ -226,9 +229,6 @@ BuildRequires: pkgconfig(libvirt)
BuildRequires: pkgconfig(libxml-2.0)
%endif
BuildRequires: readline-devel
%if 0%{?rhel} <= 5
BuildRequires: pkgconfig(ncurses)
%endif
%if %{with_python2_probes}
BuildRequires: python2-devel
%if 0%{?fedora} >= 1
@ -250,8 +250,14 @@ BuildRequires: libmicrohttpd-devel
BuildRequires: libuuid-devel
%endif
%if %{with_sysusers}
BuildRequires: systemd-rpm-macros
BuildRequires: systemd-rpm-macros
%endif
%if %{with_check}
BuildRequires: kernel-devel
# and some of the same Requires: as below
BuildRequires: dejagnu gcc make
%endif
# Install requirements
@ -268,8 +274,8 @@ the components needed to locally develop and execute systemtap scripts.
%package server
Summary: Instrumentation System Server
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-devel = %{version}-%{release}
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-runtime < %{version}-%{release}
@ -298,8 +304,8 @@ compiles systemtap scripts to kernel objects on their demand.
%package devel
Summary: Programmable system-wide instrumentation system - development headers, tools
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later AND GPL-2.0-only AND BSD-3-Clause AND LGPL-2.1-only AND BSD-2-Clause
URL: https://sourceware.org/systemtap/
%if 0%{?rhel} >= 8 || 0%{?fedora} >= 20
Recommends: (kernel-debug-devel if kernel-debug)
@ -328,8 +334,8 @@ a copy of the standard tapset library and the runtime library C files.
%package runtime
Summary: Programmable system-wide instrumentation system - runtime
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires(pre): shadow-utils
Conflicts: systemtap-devel < %{version}-%{release}
Conflicts: systemtap-server < %{version}-%{release}
@ -343,8 +349,8 @@ using a local or remote systemtap-devel installation.
%package client
Summary: Programmable system-wide instrumentation system - client
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later AND GPL-2.0-only AND BSD-3-Clause AND LGPL-2.1-only AND GFDL-1.2-or-later AND BSD-2-Clause
URL: https://sourceware.org/systemtap/
Requires: zip unzip
Requires: systemtap-runtime = %{version}-%{release}
Requires: coreutils grep sed unzip zip
@ -357,17 +363,19 @@ Requires: mokutil
%endif
%description client
This package contains/requires the components needed to develop
systemtap scripts, and compile them using a local systemtap-devel
or a remote systemtap-server installation, then run them using a
local or remote systemtap-runtime. It includes script samples and
This package contains/requires only the components needed to
use systemtap scripts by compiling them using a local or a remote
systemtap-server service, then run them using a local or
remote systemtap-runtime. It includes script samples and
documentation, and a copy of the tapset library for reference.
It does NOT include all the components for running a systemtap
script in a self-contained fashion; for that, use the -devel
subpackage instead.
%package initscript
Summary: Systemtap Initscripts
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
%if %{with_systemd}
Requires: systemd
@ -385,9 +393,24 @@ boot-time probing if supported.
%package sdt-devel
Summary: Static probe support tools
License: GPLv2+ and Public Domain
URL: http://sourceware.org/systemtap/
Summary: Static probe support header files
License: GPL-2.0-or-later AND CC0-1.0
URL: https://sourceware.org/systemtap/
%if 0%{?rhel} && 0%{?rhel} <= 10
# for RHEL buildability compatibility, pull in sdt-dtrace at all times
Requires: systemtap-sdt-dtrace = %{version}-%{release}
%endif
%description sdt-devel
This package includes the <sys/sdt.h> header file used for static
instrumentation compiled into userspace programs.
%package sdt-dtrace
Summary: Static probe support dtrace tool
License: GPL-2.0-or-later AND CC0-1.0
URL: https://sourceware.org/systemtap/
Provides: dtrace = %{version}-%{release}
%if %{with_pyparsing}
%if %{with_python3}
Requires: python3-pyparsing
@ -400,21 +423,19 @@ Requires: python2-pyparsing
%endif
%endif
%description sdt-devel
This package includes the <sys/sdt.h> header file used for static
instrumentation compiled into userspace programs and libraries, along
with the optional dtrace-compatibility preprocessor to process related
.d files into tracing-macro-laden .h headers.
%description sdt-dtrace
This package includes the dtrace-compatibility preprocessor
to process related .d files into tracing-macro-laden .h headers.
%package testsuite
Summary: Instrumentation System Testsuite
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later AND GPL-2.0-only AND GPL-3.0-or-later AND MIT
URL: https://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
Requires: systemtap-sdt-devel = %{version}-%{release}
Requires: systemtap-server = %{version}-%{release}
Requires: dejagnu which elfutils grep nc
Requires: dejagnu which elfutils grep nc wget
%if %{with_debuginfod}
Requires: elfutils-debuginfod
%endif
@ -481,8 +502,8 @@ systemtap on the current system.
%if %{with_java}
%package runtime-java
Summary: Systemtap Java Runtime Support
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
# work around fedora ci gating kvetching about i686<->x86-64 conflicts
%ifarch x86_64
@ -503,8 +524,8 @@ that probe Java processes running on the OpenJDK runtimes using Byteman.
%if %{with_python2_probes}
%package runtime-python2
Summary: Systemtap Python 2 Runtime Support
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%description runtime-python2
@ -515,8 +536,8 @@ that probe python 2 processes.
%if %{with_python3_probes}
%package runtime-python3
Summary: Systemtap Python 3 Runtime Support
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%if ! (%{with_python2_probes})
@ -532,8 +553,8 @@ that probe python 3 processes.
%if %{with_python3_probes}
%package exporter
Summary: Systemtap-prometheus interoperation mechanism
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%description exporter
@ -545,8 +566,8 @@ to remote requesters on demand.
%if %{with_virthost}
%package runtime-virthost
Summary: Systemtap Cross-VM Instrumentation - host
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
# only require libvirt-libs really
#Requires: libvirt >= 1.0.2
Requires: libxml2
@ -560,8 +581,8 @@ connection.
%if %{with_virtguest}
%package runtime-virtguest
Summary: Systemtap Cross-VM Instrumentation - guest
License: GPLv2+
URL: http://sourceware.org/systemtap/
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap-runtime = %{version}-%{release}
%if %{with_systemd}
Requires(post): findutils coreutils
@ -578,16 +599,22 @@ This package installs the services necessary on a virtual machine for a
systemtap-runtime-virthost machine to execute systemtap scripts.
%endif
%package jupyter
Summary: ISystemtap jupyter kernel and examples
License: GPL-2.0-or-later
URL: https://sourceware.org/systemtap/
Requires: systemtap = %{version}-%{release}
%description jupyter
This package includes files needed to build and run
the interactive systemtap Jupyter kernel, either locally
or within a container.
# ------------------------------------------------------------------------
%prep
%setup -q
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch 0 -p1
%build
@ -598,6 +625,13 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
%global dyninst_config --without-dyninst
%endif
# Enable/disable the dyninst pure-userspace backend
%if %{with_Werror}
%global Werror_config --enable-Werror
%else
%global Werror_config --disable-Werror
%endif
# Enable/disable the sqlite coverage testing support
%if %{with_sqlite}
%global sqlite_config --enable-sqlite
@ -685,7 +719,7 @@ systemtap-runtime-virthost machine to execute systemtap scripts.
# We don't ship compileworthy python code, just oddball samples
%global py_auto_byte_compile 0
%configure %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} %{debuginfod_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}"
%configure %{Werror_config} %{dyninst_config} %{sqlite_config} %{crash_config} %{docs_config} %{rpm_config} %{java_config} %{virt_config} %{dracut_config} %{python3_config} %{python2_probes_config} %{python3_probes_config} %{httpd_config} %{bpf_config} %{debuginfod_config} --disable-silent-rules --with-extra-version="rpm %{version}-%{release}"
make %{?_smp_mflags} V=1
@ -708,6 +742,8 @@ mkdir -p %{buildroot}%{_sysusersdir}
echo '%_systemtap_runtime_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-runtime.conf
echo '%_systemtap_server_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-server.conf
echo '%_systemtap_testsuite_preinstall' > %{buildroot}%{_sysusersdir}/systemtap-testsuite.conf
mkdir -p %{buildroot}%{_tmpfilesdir}
echo '%_systemtap_server_preinstall_tmpfiles' > %{buildroot}%{_tmpfilesdir}/systemtap-server.conf
%endif
@ -725,9 +761,6 @@ find testsuite -type f -name '.gitignore' -print0 | xargs -0 rm -f
# permissions back to 04110 in the %files section below.
chmod 755 $RPM_BUILD_ROOT%{_bindir}/staprun
#install the useful stap-prep script
install -c -m 755 stap-prep $RPM_BUILD_ROOT%{_bindir}/stap-prep
# Copy over the testsuite
cp -rp testsuite $RPM_BUILD_ROOT%{_datadir}/systemtap
@ -836,30 +869,49 @@ done
%py3_shebang_fix %{buildroot}%{python3_sitearch} %{buildroot}%{_bindir}/*
%endif
%check
%if %{with_check}
make check RUNTESTFLAGS=environment_sanity.exp
%endif
%pre runtime
%if %{with_sysusers}
%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11)
echo '%_systemtap_runtime_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-runtime.conf -
exit 0
%endif
%else
getent group stapusr >/dev/null || groupadd -f -g 156 -r stapusr
getent group stapsys >/dev/null || groupadd -f -g 157 -r stapsys
getent group stapdev >/dev/null || groupadd -f -g 158 -r stapdev
%endif
getent passwd stapunpriv >/dev/null || \
useradd -c "Systemtap Unprivileged User" -u 159 -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv 2>/dev/null || \
useradd -c "Systemtap Unprivileged User" -g stapunpriv -d %{_localstatedir}/lib/stapunpriv -r -s /sbin/nologin stapunpriv
exit 0
%endif
%pre server
%if %{with_sysusers}
%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11)
echo '%_systemtap_server_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-server.conf -
echo '%_systemtap_server_preinstall_tmpfiles' | systemd-tmpfiles --replace=%{_tmpfilesdir}/systemtap-server.conf -
exit 0
%endif
%else
getent group stap-server >/dev/null || groupadd -f -g 155 -r stap-server
getent passwd stap-server >/dev/null || \
useradd -c "Systemtap Compile Server" -u 155 -g stap-server -d %{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server 2>/dev/null || \
useradd -c "Systemtap Compile Server" -g stap-server -d %{_localstatedir}/lib/stap-server -r -s /sbin/nologin stap-server
%endif
exit 0
%endif
%pre testsuite
%if %{with_sysusers}
%if (0%{?fedora} && 0%{?fedora} < 42) || (0%{?rhel} && 0%{?rhel} < 11)
echo '%_systemtap_testsuite_preinstall' | systemd-sysusers --replace=%{_sysusersdir}/systemtap-testsuite.conf -
exit 0
%endif
%else
getent passwd stapusr >/dev/null || \
useradd -c "Systemtap 'stapusr' User" -g stapusr -r -s /sbin/nologin stapusr
@ -867,8 +919,8 @@ getent passwd stapsys >/dev/null || \
useradd -c "Systemtap 'stapsys' User" -g stapsys -G stapusr -r -s /sbin/nologin stapsys
getent passwd stapdev >/dev/null || \
useradd -c "Systemtap 'stapdev' User" -g stapdev -G stapusr -r -s /sbin/nologin stapdev
%endif
exit 0
%endif
%post server
@ -1076,6 +1128,7 @@ exit 0
%if %{with_systemd}
%{_unitdir}/stap-server.service
%{_tmpfilesdir}/stap-server.conf
%{_tmpfilesdir}/systemtap-server.conf
%else
%{initdir}/stap-server
%dir %{_sysconfdir}/stap-server/conf.d
@ -1122,13 +1175,14 @@ exit 0
%if %{with_emacsvim}
%{_emacs_sitelispdir}/*.el*
%{_emacs_sitestartdir}/systemtap-init.el
%{_datadir}/vim/vimfiles/*/*.vim
%{_datadir}/vim/vimfiles
%endif
# Notice that the stap-resolve-module-function.py file is used by
# *both* the python2 and python3 subrpms. Both subrpms use that same
# python script to help list python probes.
%if %{with_python3_probes} || %{with_python2_probes}
%{_libexecdir}/systemtap/python/stap-resolve-module-function.py
%dir %{_libexecdir}/systemtap/python
%exclude %{_libexecdir}/systemtap/python/stap-resolve-module-function.py?
%endif
@ -1223,16 +1277,22 @@ exit 0
%files sdt-devel
%{_bindir}/dtrace
%{_includedir}/sys/sdt.h
%{_includedir}/sys/sdt-config.h
%{_mandir}/man1/dtrace.1*
%{_rpmmacrodir}/macros.systemtap
%doc README AUTHORS NEWS
%{!?_licensedir:%global license %%doc}
%license COPYING
%files sdt-dtrace
%{_bindir}/dtrace
%doc README AUTHORS NEWS
%{!?_licensedir:%global license %%doc}
%license COPYING
%{_mandir}/man1/dtrace.1*
%files testsuite
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/testsuite
@ -1289,25 +1349,115 @@ exit 0
%{_sbindir}/stap-exporter
%endif
%files jupyter
%{_bindir}/stap-jupyter-container
%{_bindir}/stap-jupyter-install
%{_mandir}/man1/stap-jupyter.1*
%dir %{_datadir}/systemtap
%{_datadir}/systemtap/interactive-notebook
# ------------------------------------------------------------------------
# Future new-release entries should be of the form
# * DDD MMM DD YYYY YOURNAME <YOUREMAIL> - V-R
# - Upstream release, see wiki page below for detailed notes.
# http://sourceware.org/systemtap/wiki/SystemTapReleases
# https://sourceware.org/systemtap/wiki/SystemTapReleases
# PRERELEASE
%changelog
* Wed Feb 08 2023 Frank Ch. Eigler <fche@redhat.com> - 4.8-3
- backport several RHEL/upstream patches
* Tue Jan 13 2026 Jonathan Wakely <jwakely@fedoraproject.org> - 5.4-2
- Patched to workaround Autoconf 2.72 incompatiblity with GCC 16
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 4.8-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Fri Oct 31 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Mon Sep 22 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-17585496g86ab88eb
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Sep 22 2025 Frank Ch. Eigler <fche@redhat.com> - 5.4-17585473g1fe4178d
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Sep 19 2025 Python Maint <python-maint@redhat.com> - 5.3-5
- Rebuilt for Python 3.14.0rc3 bytecode
* Fri Aug 15 2025 Python Maint <python-maint@redhat.com> - 5.3-4
- Rebuilt for Python 3.14.0rc2 bytecode
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Tue Jun 03 2025 Python Maint <python-maint@redhat.com> - 5.3-2
- Rebuilt for Python 3.14
* Fri May 02 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Thu Feb 06 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3~pre17373816g7a71d34b.5
- Respin against dyninst 13 redux
* Fri Jan 24 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3~pre17373816g7a71d34b.3
- Respin against dyninst 13, sans dyninst on i686.
* Mon Jan 20 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373816g7a71d34b
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Mon Jan 20 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373794g3efe129d
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Frank Ch. Eigler <fche@redhat.com> - 5.3-17373422g9a48fbea
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Frank Ch. Eigler <fche@redhat.com> - 5.2-17373420g1e894ff0
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 5.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Fri Nov 08 2024 Frank Ch. Eigler <fche@redhat.com> - 5.2-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Mon Oct 07 2024 William Cohen <wcohen@redhat.com> - 5.2-17283218gc5774e18
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Tue Oct 01 2024 William Cohen <wcohen@redhat.com> - 5.2-17277956g0b7f6722
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Fri Aug 30 2024 Frank Ch. Eigler <fche@redhat.com> - 5.2-17250223gd07e4284
- Automated weekly rawhide release
- Applied spec changes from upstream git
* Thu Aug 08 2024 Lumír Balhar <lbalhar@redhat.com> - 5.2-pre
- Final split of sdt-dtrace and sdt-devel (rhbz#2296275)
https://fedoraproject.org/wiki/Changes/Separate_dtrace_package
* Fri Apr 26 2024 Frank Ch. Eigler <fche@redhat.com> - 5.1-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Sat Nov 04 2023 Frank Ch. Eigler <fche@redhat.com> - 5.0-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
- migrated to SPDX license
* Fri Apr 28 2023 Frank Ch. Eigler <fche@redhat.com> - 4.9-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Thu Nov 03 2022 Serhei Makarov <serhei@serhei.io> - 4.8-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases
* Mon May 02 2022 Frank Ch. Eigler <fche@redhat.com> - 4.7-1
- Upstream release, see wiki page below for detailed notes.
https://sourceware.org/systemtap/wiki/SystemTapReleases

View file

@ -1,16 +0,0 @@
summary: Test for BZ#1054962 (Backport PR16166 stap -vvv causes SIGSEGV when)
description: Backport PR16166
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
require:
recommend:
- valgrind
- systemtap
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1054962
extra-summary: /tools/systemtap/Regression/PR16166
extra-task: /tools/systemtap/Regression/PR16166

View file

@ -1,67 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/PR16166
# Description: Test for BZ#1054962 (Backport PR16166 stap -vvv causes SIGSEGV when)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=\$(mktemp -d)"
rlRun "cp towers.c $TMPDIR/"
rlRun "pushd $TMPDIR"
rlRun "gcc -g towers.c -o towers.x"
cat > script.stp <<-EOF
global x
probe perf.hw.cpu_cycles.process("towers.x").counter("a") {}
probe process("towers.x").function("main")
{
# wrong type
x = "b" . @perf("a")
}
EOF
rlRun "which valgrind"
rlRun "valgrind --version"
rlPhaseEnd
rlPhaseStartTest
# following is expected to fail
rlRun "valgrind --log-file=output.txt stap -vvv script.stp" 1
# ... but not to segfault
rlRun "grep SIGSEGV output.txt" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,155 +0,0 @@
# include <stdio.h>
# include <stdlib.h>
#define towersbase 2.39
/* Towers */
#define maxcells 18
#define stackrange 3
#define true 1
#define false 0
struct element
{
int discsize;
int next;
};
/* Towers */
int stack[stackrange + 1];
struct element cellspace[maxcells + 1];
int freelist, movesdone;
/* Program to Solve the Towers of Hanoi */
void
error (emsg)
char *emsg;
{
printf ("Error in Towers: %s\n", emsg);
}
void
makenull (s)
{
stack[s] = 0;
}
int
get_element ()
{
int temp;
if (freelist > 0)
{
temp = freelist;
freelist = cellspace[freelist].next;
}
else
error ("out of space ");
return (temp);
}
void
push (i, s)
int i, s;
{
int errorfound, localel;
errorfound = false;
if (stack[s] > 0)
if (cellspace[stack[s]].discsize <= i)
{
errorfound = true;
error ("disc size error");
};
if (!errorfound)
{
localel = get_element ();
cellspace[localel].next = stack[s];
stack[s] = localel;
cellspace[localel].discsize = i;
}
}
void
init (s, n)
int s, n;
{
int discctr;
makenull (s);
for (discctr = n; discctr >= 1; discctr--)
push (discctr, s);
}
int
pop (s)
int s;
{
int temp, temp1;
if (stack[s] > 0)
{
temp1 = cellspace[stack[s]].discsize;
temp = cellspace[stack[s]].next;
cellspace[stack[s]].next = freelist;
freelist = stack[s];
stack[s] = temp;
return (temp1);
}
else
error ("nothing to pop ");
return 0;
}
void
move (s1, s2)
int s1, s2;
{
push (pop (s1), s2);
movesdone = movesdone + 1;
}
void
tower (i, j, k)
int i, j, k;
{
int other;
if (k == 1)
move (i, j);
else
{
other = 6 - i - j;
tower (i, other, k - 1);
move (i, j);
tower (other, j, k - 1);
}
}
void
towers ()
{
int i;
for (i = 1; i <= maxcells; i++)
cellspace[i].next = i - 1;
freelist = maxcells;
init (1, 14);
makenull (2);
makenull (3);
movesdone = 0;
tower (1, 2, 14);
if (movesdone != 16383)
printf (" error in Towers.\n");
}
#ifndef LOOP
#define LOOP 500
#endif
int
main ()
{
int i;
for (i= 0; i < LOOP; i++)
towers();
return 0;
}

View file

@ -1,31 +0,0 @@
With 5.18.0-0.rc5.20220504git107c948d1d3e61d.42.fc37.x86_64 we have
---------------------8<--------------------------------------------------------
:: [ 08:26:39 ] :: [ BEGIN ] :: Running 'stap --skip-badvars --ldd backtrackator.stp -c ./classes > output.out'
In file included from /usr/share/systemtap/runtime/linux/../regs.c:20,
from /usr/share/systemtap/runtime/linux/runtime.h:270,
from /usr/share/systemtap/runtime/runtime.h:26,
from /tmp/stap7hYYpn/stap_9beffd9064cc2c18ddd2daf7f47a7e44_5966_src.c:21:
/usr/share/systemtap/runtime/stack.c: In function _stp_stack_unwind_one_kernel:
/usr/share/systemtap/runtime/linux/../linux/regs.c:23:32: error: struct kretprobe_instance has no member named ret_addr
23 | #define _stp_ret_addr_r(ri) (ri->ret_addr)
| ^~
/usr/share/systemtap/runtime/stack.c:358:47: note: in expansion of macro _stp_ret_addr_r
358 | return (unsigned long)_stp_ret_addr_r(c->ips.krp.pi);
| ^~~~~~~~~~~~~~~
make[1]: *** [scripts/Makefile.build:288: /tmp/stap7hYYpn/stap_9beffd9064cc2c18ddd2daf7f47a7e44_5966_src.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1844: /tmp/stap7hYYpn] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compilation failed. [man error::pass4]
:: [ 08:26:59 ] :: [ FAIL ] :: Command 'stap --skip-badvars --ldd backtrackator.stp -c ./classes > output.out' (Expected 0, got 1)
---------------------8<--------------------------------------------------------
Related to CONFIG_KRETPROBE_ON_RETHOOK https://elixir.bootlin.com/linux/v5.18-rc5/source/include/linux/kprobes.h#L163
Needs fixing on the stap side.

View file

@ -1,15 +0,0 @@
function mypr:long(){
printf("================================================================================\n");
printf("Probed function: [%s]\n\n", probefunc());
printf ("Backtrace:\n");
print_ubacktrace();
return 0;
}
probe process("classes").function("public*") { mypr(); }
probe process("classes").function("private*") { mypr(); }
probe process("classes").function("recursive*") { mypr(); }
probe process("classes").function("main*") { mypr(); }

View file

@ -1,43 +0,0 @@
#include "classes.hpp"
#include <iostream>
void A::privateA1(){
std::cout << "privateA1" << std::endl;
this->privateA2();
}
void A::privateA2(){
std::cout << "privateA2" << std::endl;
this->recursiveA1(3);
}
void A::recursiveA1(int count){
std::cout << "recursiveA1: " << count << std::endl;
if (count == 0)
return;
this->recursiveA1(count-1);
return;
}
void A::publicA1(){
std::cout << "publicA1" << std::endl;
this->publicA2();
}
void A::publicA2(){
std::cout << "publicA2" << std::endl;
this->privateA1();
}
void B::privateB1(A a){
std::cout << "privateB1" << std::endl;
a.publicA1();
}
void B::publicB1(A a){
std::cout << "publicB1" << std::endl;
this->privateB1(a);
}

View file

@ -1,16 +0,0 @@
class A{
private:
void privateA1();
void privateA2();
void recursiveA1(int);
public:
void publicA1();
void publicA2();
};
class B{
private:
void privateB1(A);
public:
void publicB1(A);
};

View file

@ -1,142 +0,0 @@
publicB1
privateB1
publicA1
publicA2
privateA1
privateA2
recursiveA1: 3
recursiveA1: 2
recursiveA1: 1
recursiveA1: 0
================================================================================
Probed function: [main]
Backtrace:
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicB1]
Backtrace:
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateB1]
Backtrace:
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA1]
Backtrace:
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA2]
Backtrace:
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA1]
Backtrace:
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA2]
Backtrace:
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : generic_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]

View file

@ -1,76 +0,0 @@
publicB1
privateB1
publicA1
publicA2
privateA1
privateA2
recursiveA1: 3
recursiveA1: 2
recursiveA1: 1
recursiveA1: 0
================================================================================
Probed function: [main]
Backtrace:
ADDRESS : main+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [publicB1]
Backtrace:
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [privateB1]
Backtrace:
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [publicA1]
Backtrace:
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [publicA2]
Backtrace:
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [privateA1]
Backtrace:
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [privateA2]
Backtrace:
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
[ADDRESS] [ADDRESS] ADDRESS (inexact)

View file

@ -1,65 +0,0 @@
publicB1
privateB1
publicA1
publicA2
privateA1
privateA2
recursiveA1: 3
recursiveA1: 2
recursiveA1: 1
recursiveA1: 0
================================================================================
Probed function: [main]
Backtrace:
ADDRESS : main+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicB1]
Backtrace:
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateB1]
Backtrace:
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA1]
Backtrace:
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA2]
Backtrace:
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA1]
Backtrace:
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA2]
Backtrace:
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]

View file

@ -1,153 +0,0 @@
publicB1
privateB1
publicA1
publicA2
privateA1
privateA2
recursiveA1: 3
recursiveA1: 2
recursiveA1: 1
recursiveA1: 0
================================================================================
Probed function: [main]
Backtrace:
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicB1]
Backtrace:
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateB1]
Backtrace:
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA1]
Backtrace:
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA2]
Backtrace:
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA1]
Backtrace:
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA2]
Backtrace:
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]

View file

@ -1,142 +0,0 @@
publicB1
privateB1
publicA1
publicA2
privateA1
privateA2
recursiveA1: 3
recursiveA1: 2
recursiveA1: 1
recursiveA1: 0
================================================================================
Probed function: [main]
Backtrace:
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicB1]
Backtrace:
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateB1]
Backtrace:
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA1]
Backtrace:
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA2]
Backtrace:
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA1]
Backtrace:
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA2]
Backtrace:
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.17+ADDRESS/ADDRESS [PATH]

View file

@ -1,153 +0,0 @@
publicB1
privateB1
publicA1
publicA2
privateA1
privateA2
recursiveA1: 3
recursiveA1: 2
recursiveA1: 1
recursiveA1: 0
================================================================================
Probed function: [main]
Backtrace:
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicB1]
Backtrace:
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateB1]
Backtrace:
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA1]
Backtrace:
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA2]
Backtrace:
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA1]
Backtrace:
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA2]
Backtrace:
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]

View file

@ -1,153 +0,0 @@
publicB1
privateB1
publicA1
publicA2
privateA1
privateA2
recursiveA1: 3
recursiveA1: 2
recursiveA1: 1
recursiveA1: 0
================================================================================
Probed function: [main]
Backtrace:
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicB1]
Backtrace:
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateB1]
Backtrace:
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA1]
Backtrace:
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA2]
Backtrace:
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA1]
Backtrace:
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA2]
Backtrace:
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_call_main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main@GLIBC_2.2.5+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]

View file

@ -1,142 +0,0 @@
publicB1
privateB1
publicA1
publicA2
privateA1
privateA2
recursiveA1: 3
recursiveA1: 2
recursiveA1: 1
recursiveA1: 0
================================================================================
Probed function: [main]
Backtrace:
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicB1]
Backtrace:
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateB1]
Backtrace:
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA1]
Backtrace:
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [publicA2]
Backtrace:
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA1]
Backtrace:
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [privateA2]
Backtrace:
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]
================================================================================
Probed function: [recursiveA1]
Backtrace:
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : recursiveA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA2+ADDRESS/ADDRESS [PATH]
ADDRESS : privateA1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA2+ADDRESS/ADDRESS [PATH]
ADDRESS : publicA1+ADDRESS/ADDRESS [PATH]
ADDRESS : privateB1+ADDRESS/ADDRESS [PATH]
ADDRESS : publicB1+ADDRESS/ADDRESS [PATH]
ADDRESS : main+ADDRESS/ADDRESS [PATH]
ADDRESS : __libc_start_main+ADDRESS/ADDRESS [PATH]
ADDRESS : _start+ADDRESS/ADDRESS [PATH]

View file

@ -1,10 +0,0 @@
#include "classes.hpp"
int main(){
A a;
B b;
b.publicB1(a);
return 0;
}

View file

@ -1,14 +0,0 @@
summary: Tests backtracking in C++ programs
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
- glibc-debuginfo
duration: 10m
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces

View file

@ -1,116 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-backtraces
# Description: Tests backtracking in C++ programs
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
inputAs_rlLog(){
while read line
do
rlLog "$line"
done
}
compareAndLog(){
rlAssertNotDiffer "$1" "$2"
if [ "$?" != "0" ]
then
rlLog "Difference:"
diff -u "$1" "$2" | inputAs_rlLog
fi
}
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp main.cpp -g -o classes"
rlAssertRpm glibc # show NVR
rlAssertRpm glibc-debuginfo
rlRun "stap-prep" 0-255
rlPhaseEnd
rlPhaseStartTest
rlRun "stap --ldd backtrackator.stp -c ./classes > output.out"
rlRun "cp output.out unprocessed.out"
rlLog "Processing output"
rlRun "sed -i -r -e 's/0x[0-9a-f]+/ADDRESS/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA1[A-Za-z0-9]*/publicA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicA2[A-Za-z0-9]*/publicA2/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA1[A-Za-z0-9]*/privateA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateA2[A-Za-z0-9]*/privateA2/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*recursiveA1[A-Za-z0-9]*/recursiveA1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*publicB1[A-Za-z0-9]*/publicB1/g' output.out"
rlRun "sed -i -r -e 's/_[_A-Za-z0-9]*privateB1[A-Za-z0-9]*/privateB1/g' output.out"
rlRun "sed -i -r -e 's!\[((.*\/.*)|(classes))\]!\[PATH\]!g' output.out"
# http://stackoverflow.com/questions/13963150/what-does-the-gcc-function-suffix-isra-mean
rlIsRHEL '>=' 7 && arch | grep -q ppc && \
rlRun "sed -i 's/generic_start_main.isra.0/generic_start_main/' output.out"
if rlIsRHEL '>=' 9; then
[[ "`uname -m`" =~ "ppc64" ]] && \
rlRun "cat golden.el9.`arch`.out > golden-ppc64-17.out" || \
rlRun "cat golden.el9.`arch`.out > golden.out"
fi
# RHEL-9 s390x runtime/stack-s390.c:63:52: error: ASYNC_SIZE undeclared
# (PAGE_SIZE << 1) on stap side seems to work it around
if [ "`uname -m`" == "s390x" ] && ( rlIsRHEL 5 || rlIsRHEL 4 )
then
rlLog "Detected we are running on: s390x && RHEL <= 5"
rlLog "Using special expected output"
compareAndLog golden-s390x.out output.out
elif [ "`uname -m`" == "ppc64" ] && ( rlIsRHEL 5 || rlIsRHEL 4 )
then
rlLog "Detected we are running on: ppc64 && RHEL <= 5"
rlLog "Using special expected output"
compareAndLog golden-ppc64.out output.out
elif [[ "`uname -m`" =~ "ppc64" ]]
then
rlLog "Detected we are running on: ppc64"
rlLog "Using special expected output"
compareAndLog golden-ppc64-17.out output.out
else
rlLog "Detected we are running on: nothing special"
rlLog "Using generic expected output"
compareAndLog golden.out output.out
fi
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit output.out
rlFileSubmit golden.out
rlFileSubmit unprocessed.out
rlRun "rm -f classes output.out unprocessed.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,39 +0,0 @@
#include <iostream>
class Explicit{
public:
int data;
Explicit();
Explicit(int argument);
Explicit(const Explicit &original);
~Explicit();
};
class Implicit{
public:
int data;
};
Explicit::Explicit() { this->data=0; }
Explicit::Explicit(int a) {this->data=0; }
Explicit::Explicit(const Explicit &orig){this->data = orig.data;}
Explicit::~Explicit(){}
int main(){
Explicit e1; //static ctor call
Explicit *e2;
e2 = new Explicit(); //dynamic ctor call
delete e2; //dynamic dtor call
e2 = new Explicit(2); //dynamic ctor call
Explicit e3 = *e2; //copy ctor
delete e2; //dtor
Implicit i1; //ctor
Implicit *i2 = new Implicit(); //ctor
Implicit i3 = *i2; //implicit copy ctor
delete i2; //dtor
return 0; // dtor e1, e3, i1, i3
}

View file

@ -1,16 +0,0 @@
Explicit constructor start
Explicit constructor end
Explicit constructor start
Explicit constructor end
Explicit destructor start
Explicit destructor end
Explicit constructor start
Explicit constructor end
Explicit constructor start
Explicit constructor end
Explicit destructor start
Explicit destructor end
Explicit destructor start
Explicit destructor end
Explicit destructor start
Explicit destructor end

View file

@ -1,13 +0,0 @@
summary: Tests probing constructors and destructors
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
duration: 5m
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors

View file

@ -1,52 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-ctors-and-dtors
# Description: Tests probing constructors and destructors
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp -g -o classes"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -c ./classes tracker.stp -o output.out"
rlAssertNotDiffer golden.out output.out
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit "output.out"
rlFileSubmit "golden.out"
rlRun "rm -rf classes output.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,23 +0,0 @@
probe process("classes").function("Explicit::Explicit"){
printf("Explicit constructor start\n");
}
probe process("classes").function("Explicit::~Explicit"){
printf("Explicit destructor start\n");
}
probe process("classes").function("Explicit::Explicit").return{
printf("Explicit constructor end\n");
}
probe process("classes").function("Explicit::~Explicit").return{
printf("Explicit destructor end\n");
}
//probe process("classes").function("Implicit::Implicit"){
// printf("Implicitconstructor\n");
//}
//probe process("classes").function("Implicit::Implicit"){
// printf("Implicit constructor\n");
//}

View file

@ -1,56 +0,0 @@
#include <iostream>
class A{
public:
void one(){ std::cout << "A::one" << std::endl; }
void two(){ std::cout << "A::two" << std::endl; }
virtual void three() { std::cout << "A::three" << std::endl; }
virtual void four() { std::cout << "A::four" << std::endl; }
};
class B : public A{
public:
void one() { std::cout << "B::one" << std::endl; }
int one(int a) { std::cout << "B::one" << std::endl; }
virtual void three() { std::cout << "B::three" << std::endl; }
};
int main(){
A a;
B b;
A *ap = new A();
A *apb = new B();
B *bp = new B();
a.one();
a.two();
a.three();
a.four();
b.one();
b.two();
b.three();
b.four();
ap->one();
ap->two();
ap->three();
ap->four();
apb->one();
apb->two();
apb->three();
apb->four();
bp->one();
bp->two();
bp->three();
bp->four();
return 0;
}

View file

@ -1,13 +0,0 @@
summary: Tests systemtap handling inheritance
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
duration: 10m
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance

View file

@ -1,56 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-inheritance
# Description: Tests systemtap handling inheritance
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
# if this testcase caused kernel crash and reboot, don't try to rerun it
[[ $REBOOTCOUNT -gt 0 ]] && exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "g++ classes.cpp -o classes -g"
rlRun "./classes > program.out" 0 "Preparing the golden output"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -c ./classes tracker.stp -o stap.out"
rlAssertNotDiffer program.out stap.out
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit program.out
rlFileSubmit stap.out
rlRun "rm -f classes stap.out program.out"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,6 +0,0 @@
probe process("classes").function("A::one"){printf("A::one\n");}
probe process("classes").function("A::two"){printf("A::two\n");}
probe process("classes").function("A::three"){printf("A::three\n");}
probe process("classes").function("A::four"){printf("A::four\n");}
probe process("classes").function("B::one"){printf("B::one\n");}
probe process("classes").function("B::three"){printf("B::three\n");}

View file

@ -1,71 +0,0 @@
__attribute__((noinline)) void StandaloneFunction(){
}
class CLASS1{
private:
void prMethod() {};
public:
void puMethod() {this->prMethod();};
static void stMethod() {};
};
namespace inner{
void StandaloneFunction(){
}
class CLASS1{
private:
void prMethod() {};
public:
void puMethod() {this->prMethod();};
static void stMethod() {};
};
};
namespace moreinner{
void StandaloneFunction(){
}
class CLASS1{
private:
__attribute__((noinline)) void prMethod() {};
public:
__attribute__((noinline)) void puMethod() {this->prMethod();};
__attribute__((noinline)) static void stMethod() {};
};
};
int main(){
StandaloneFunction();
inner::StandaloneFunction();
moreinner::StandaloneFunction();
CLASS1 A;
inner::CLASS1 B;
moreinner::CLASS1 C;
CLASS1* pA = new CLASS1();
inner::CLASS1 *pB = new inner::CLASS1();
moreinner::CLASS1 *pC = new moreinner::CLASS1();
A.puMethod();
A.stMethod();
B.puMethod();
B.stMethod();
C.puMethod();
C.stMethod();
pA->puMethod();
pA->stMethod();
pB->puMethod();
pB->stMethod();
pC->puMethod();
pC->stMethod();
return 0;
}

View file

@ -1,70 +0,0 @@
StandaloneFunction start: _Z18StandaloneFunctionv
StandaloneFunction end: main
StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
inner::StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
StandaloneFunction end: main
inner::StandaloneFunction end: main
StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
moreinner::StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
StandaloneFunction end: main
moreinner::StandaloneFunction end: main
puMethod start: _ZN6CLASS18puMethodEv
prMethod start: _ZN6CLASS18prMethodEv
prMethod end: _ZN6CLASS18puMethodEv
puMethod end: main
stMethod start: _ZN6CLASS18stMethodEv
stMethod end: main
puMethod start: _ZN5inner6CLASS18puMethodEv
inner::puMethod start: _ZN5inner6CLASS18puMethodEv
prMethod start: _ZN5inner6CLASS18prMethodEv
inner::prMethod start: _ZN5inner6CLASS18prMethodEv
prMethod end: _ZN5inner6CLASS18puMethodEv
inner::prMethod end: _ZN5inner6CLASS18puMethodEv
puMethod end: main
inner::puMethod end: main
stMethod start: _ZN5inner6CLASS18stMethodEv
inner::stMethod start: _ZN5inner6CLASS18stMethodEv
stMethod end: main
inner::stMethod end: main
puMethod start: _ZN9moreinner6CLASS18puMethodEv
moreinner::puMethod start: _ZN9moreinner6CLASS18puMethodEv
prMethod start: _ZN9moreinner6CLASS18prMethodEv
moreinner::prMethod start: _ZN9moreinner6CLASS18prMethodEv
prMethod end: _ZN9moreinner6CLASS18puMethodEv
moreinner::prMethod end: _ZN9moreinner6CLASS18puMethodEv
puMethod end: main
moreinner::puMethod end: main
stMethod start: _ZN9moreinner6CLASS18stMethodEv
moreinner::stMethod start: _ZN9moreinner6CLASS18stMethodEv
stMethod end: main
moreinner::stMethod end: main
puMethod start: _ZN6CLASS18puMethodEv
prMethod start: _ZN6CLASS18prMethodEv
prMethod end: _ZN6CLASS18puMethodEv
puMethod end: main
stMethod start: _ZN6CLASS18stMethodEv
stMethod end: main
puMethod start: _ZN5inner6CLASS18puMethodEv
inner::puMethod start: _ZN5inner6CLASS18puMethodEv
prMethod start: _ZN5inner6CLASS18prMethodEv
inner::prMethod start: _ZN5inner6CLASS18prMethodEv
prMethod end: _ZN5inner6CLASS18puMethodEv
inner::prMethod end: _ZN5inner6CLASS18puMethodEv
puMethod end: main
inner::puMethod end: main
stMethod start: _ZN5inner6CLASS18stMethodEv
inner::stMethod start: _ZN5inner6CLASS18stMethodEv
stMethod end: main
inner::stMethod end: main
puMethod start: _ZN9moreinner6CLASS18puMethodEv
moreinner::puMethod start: _ZN9moreinner6CLASS18puMethodEv
prMethod start: _ZN9moreinner6CLASS18prMethodEv
moreinner::prMethod start: _ZN9moreinner6CLASS18prMethodEv
prMethod end: _ZN9moreinner6CLASS18puMethodEv
moreinner::prMethod end: _ZN9moreinner6CLASS18puMethodEv
puMethod end: main
moreinner::puMethod end: main
stMethod start: _ZN9moreinner6CLASS18stMethodEv
moreinner::stMethod start: _ZN9moreinner6CLASS18stMethodEv
stMethod end: main
moreinner::stMethod end: main

View file

@ -1,83 +0,0 @@
StandaloneFunction start: _Z18StandaloneFunctionv
StandaloneFunction end: main
StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
inner::StandaloneFunction start: _ZN5inner18StandaloneFunctionEv
StandaloneFunction end: main
inner::StandaloneFunction end: main
StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
moreinner::StandaloneFunction start: _ZN9moreinner18StandaloneFunctionEv
StandaloneFunction end: main
moreinner::StandaloneFunction end: main
puMethod start: _ZN6CLASS18puMethodEv
prMethod start: _ZN6CLASS18prMethodEv
prMethod end: _ZN6CLASS18puMethodEv
puMethod end: main
stMethod start: _ZN6CLASS18stMethodEv
stMethod end: main
puMethod start: _ZN5inner6CLASS18puMethodEv
inner::puMethod start: _ZN5inner6CLASS18puMethodEv
prMethod start: _ZN5inner6CLASS18prMethodEv
inner::prMethod start: _ZN5inner6CLASS18prMethodEv
prMethod end: _ZN5inner6CLASS18puMethodEv
inner::prMethod end: _ZN5inner6CLASS18puMethodEv
puMethod end: main
inner::puMethod end: main
stMethod start: _ZN5inner6CLASS18stMethodEv
inner::stMethod start: _ZN5inner6CLASS18stMethodEv
stMethod end: main
inner::stMethod end: main
puMethod start: _ZN9moreinner6CLASS18puMethodEv
moreinner::puMethod start: _ZN9moreinner6CLASS18puMethodEv
prMethod start: _ZN9moreinner6CLASS18prMethodEv
moreinner::prMethod start: _ZN9moreinner6CLASS18prMethodEv
prMethod end: _ZN9moreinner6CLASS18puMethodEv
moreinner::prMethod end: _ZN9moreinner6CLASS18puMethodEv
puMethod end: main
moreinner::puMethod end: main
stMethod start: _ZN9moreinner6CLASS18stMethodEv
moreinner::stMethod start: _ZN9moreinner6CLASS18stMethodEv
stMethod end: main
moreinner::stMethod end: main
puMethod start: _ZN6CLASS18puMethodEv
prMethod start: _ZN6CLASS18prMethodEv
prMethod end: _ZN6CLASS18puMethodEv
puMethod end: main
stMethod start: _ZN6CLASS18stMethodEv
stMethod end: main
puMethod start: _ZN5inner6CLASS18puMethodEv
inner::puMethod start: _ZN5inner6CLASS18puMethodEv
prMethod start: _ZN5inner6CLASS18prMethodEv
inner::prMethod start: _ZN5inner6CLASS18prMethodEv
prMethod end: _ZN5inner6CLASS18puMethodEv
inner::prMethod end: _ZN5inner6CLASS18puMethodEv
puMethod end: main
inner::puMethod end: main
stMethod start: _ZN5inner6CLASS18stMethodEv
inner::stMethod start: _ZN5inner6CLASS18stMethodEv
stMethod end: main
inner::stMethod end: main
puMethod start: _ZN9moreinner6CLASS18puMethodEv
moreinner::puMethod start: _ZN9moreinner6CLASS18puMethodEv
prMethod start: _ZN9moreinner6CLASS18prMethodEv
moreinner::prMethod start: _ZN9moreinner6CLASS18prMethodEv
prMethod end: _ZN9moreinner6CLASS18puMethodEv
moreinner::prMethod end: _ZN9moreinner6CLASS18puMethodEv
puMethod end: main
moreinner::puMethod end: main
stMethod start: _ZN9moreinner6CLASS18stMethodEv
moreinner::stMethod start: _ZN9moreinner6CLASS18stMethodEv
stMethod end: main
moreinner::stMethod end: main
__StandaloneFunction=0
__hitcount=70
__inner_StandaloneFunction=0
__moreinner_StandaloneFunction=0
__stMethod=0
__inner_CLASS1_stMethod=0
__moreinner_star_stMethod=0
__prMethod=0
__inner_CLASS1_prMethod=0
__moreinner_star_prMethod=0
__puMethod=0
__inner_CLASS1_puMethod=0
__moreinner_star_puMethod=0

View file

@ -1,70 +0,0 @@
StandaloneFunction start: StandaloneFunction
StandaloneFunction end: StandaloneFunction
StandaloneFunction start: StandaloneFunction
inner::StandaloneFunction start: inner::StandaloneFunction
inner::StandaloneFunction end: inner::StandaloneFunction
StandaloneFunction end: StandaloneFunction
StandaloneFunction start: StandaloneFunction
moreinner::StandaloneFunction start: moreinner::StandaloneFunction
moreinner::StandaloneFunction end: moreinner::StandaloneFunction
StandaloneFunction end: StandaloneFunction
puMethod start: puMethod
prMethod start: prMethod
prMethod end: prMethod
puMethod end: puMethod
stMethod start: stMethod
stMethod end: stMethod
puMethod start: puMethod
inner::puMethod start: inner::CLASS1::puMethod
prMethod start: prMethod
inner::prMethod start: inner::CLASS1::prMethod
inner::prMethod end: inner::CLASS1::prMethod
prMethod end: prMethod
inner::puMethod end: inner::CLASS1::puMethod
puMethod end: puMethod
stMethod start: stMethod
inner::stMethod start: inner::CLASS1::stMethod
inner::stMethod end: inner::CLASS1::stMethod
stMethod end: stMethod
puMethod start: puMethod
moreinner::puMethod start: moreinner::CLASS1::puMethod
prMethod start: prMethod
moreinner::prMethod start: moreinner::CLASS1::prMethod
moreinner::prMethod end: moreinner::CLASS1::prMethod
prMethod end: prMethod
moreinner::puMethod end: moreinner::CLASS1::puMethod
puMethod end: puMethod
stMethod start: stMethod
moreinner::stMethod start: moreinner::CLASS1::stMethod
moreinner::stMethod end: moreinner::CLASS1::stMethod
stMethod end: stMethod
puMethod start: puMethod
prMethod start: prMethod
prMethod end: prMethod
puMethod end: puMethod
stMethod start: stMethod
stMethod end: stMethod
puMethod start: puMethod
inner::puMethod start: inner::CLASS1::puMethod
prMethod start: prMethod
inner::prMethod start: inner::CLASS1::prMethod
inner::prMethod end: inner::CLASS1::prMethod
prMethod end: prMethod
inner::puMethod end: inner::CLASS1::puMethod
puMethod end: puMethod
stMethod start: stMethod
inner::stMethod start: inner::CLASS1::stMethod
inner::stMethod end: inner::CLASS1::stMethod
stMethod end: stMethod
puMethod start: puMethod
moreinner::puMethod start: moreinner::CLASS1::puMethod
prMethod start: prMethod
moreinner::prMethod start: moreinner::CLASS1::prMethod
moreinner::prMethod end: moreinner::CLASS1::prMethod
prMethod end: prMethod
moreinner::puMethod end: moreinner::CLASS1::puMethod
puMethod end: puMethod
stMethod start: stMethod
moreinner::stMethod start: moreinner::CLASS1::stMethod
moreinner::stMethod end: moreinner::CLASS1::stMethod
stMethod end: stMethod

View file

@ -1,13 +0,0 @@
__hitcount=70
__inner_CLASS1_prMethod=0
__inner_CLASS1_puMethod=0
__inner_CLASS1_stMethod=0
__inner_StandaloneFunction=0
__moreinner_StandaloneFunction=0
__moreinner_star_prMethod=0
__moreinner_star_puMethod=0
__moreinner_star_stMethod=0
__prMethod=0
__puMethod=0
__StandaloneFunction=0
__stMethod=0

View file

@ -1,13 +0,0 @@
summary: Tests C++ methods
description: ''
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- gcc-c++
duration: 120m
extra-summary: /tools/systemtap/Regression/RHEL6Feature-cpp-methods
extra-task: /tools/systemtap/Regression/RHEL6Feature-cpp-methods

View file

@ -1,72 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL6Feature-cpp-methods
# Description: Tests C++ methods
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2010 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "stap-prep" 0-255
rlRun "g++ -O0 classes.cpp -o classes -g"
rlIsRHEL 6 && COMPAT='--compatible=1.8'
# rlIsRHEL 7 && cp -f golden.el7.out golden.out
# rlIsRHEL 8 && cp -f golden.el8.out golden.out
rlPhaseEnd
rlPhaseStartTest
rlRun "stap $COMPAT -c ./classes tracker.stp -o output.out"
# Stop comparing literally against a golden file,
# do a sanity check instead. The literal golden file check
# sort of regressed between rhel-8.2 and rhel-8.3
# rlRun "diff golden.out output.out"
rlRun "grep ^__ output.out | sort > summary.out"
# RHEL6: covert hex to dec:
rlRun "sed -i 's/0x0/0/' summary.out"
rlRun "sed -i 's/0x46/70/' summary.out"
# Sanity check
rlRun "diff golden_summary.out summary.out" || (
rlRun "cat golden_summary.out"
rlRun "cat summary.out"
)
rlPhaseEnd
rlPhaseStartCleanup
rlFileSubmit golden.out
rlFileSubmit output.out
rlRun "rm -f output.out classes"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,162 +0,0 @@
global __hitcount = 0
global __StandaloneFunction = 0
global __inner_StandaloneFunction = 0
global __moreinner_StandaloneFunction = 0
global __stMethod = 0
global __inner_CLASS1_stMethod = 0
global __moreinner_star_stMethod = 0
global __prMethod = 0
global __inner_CLASS1_prMethod = 0
global __moreinner_star_prMethod = 0
global __puMethod = 0
global __inner_CLASS1_puMethod = 0
global __moreinner_star_puMethod = 0
probe process("classes").function("StandaloneFunction").call{
__StandaloneFunction++
__hitcount++
printf("StandaloneFunction start: %s\n", probefunc());
}
probe process("classes").function("StandaloneFunction").return{
__StandaloneFunction--
__hitcount++
printf("StandaloneFunction end: %s\n", probefunc());
}
probe process("classes").function("inner::StandaloneFunction").call{
__inner_StandaloneFunction++
__hitcount++
printf("inner::StandaloneFunction start: %s\n", probefunc());
}
probe process("classes").function("inner::StandaloneFunction").return{
__inner_StandaloneFunction--
__hitcount++
printf("inner::StandaloneFunction end: %s\n", probefunc());
}
probe process("classes").function("moreinner::StandaloneFunction").call{
__moreinner_StandaloneFunction++
__hitcount++
printf("moreinner::StandaloneFunction start: %s\n", probefunc());
}
probe process("classes").function("moreinner::StandaloneFunction").return{
__moreinner_StandaloneFunction--
__hitcount++
printf("moreinner::StandaloneFunction end: %s\n", probefunc());
}
// ============================================================================
probe process("classes").function("stMethod").call{
__stMethod++
__hitcount++
printf("stMethod start: %s\n", probefunc());
}
probe process("classes").function("stMethod").return{
__stMethod--
__hitcount++
printf("stMethod end: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::stMethod").call{
__inner_CLASS1_stMethod++
__hitcount++
printf("inner::stMethod start: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::stMethod").return{
__inner_CLASS1_stMethod--
__hitcount++
printf("inner::stMethod end: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::stMethod").call{
__moreinner_star_stMethod++
__hitcount++
printf("moreinner::stMethod start: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::stMethod").return{
__moreinner_star_stMethod--
__hitcount++
printf("moreinner::stMethod end: %s\n", probefunc());
}
//=============================================================================
probe process("classes").function("prMethod").call{
__prMethod++
__hitcount++
printf("prMethod start: %s\n", probefunc());
}
probe process("classes").function("prMethod").return{
__prMethod--
__hitcount++
printf("prMethod end: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::prMethod").call{
__inner_CLASS1_prMethod++
__hitcount++
printf("inner::prMethod start: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::prMethod").return{
__inner_CLASS1_prMethod--
__hitcount++
printf("inner::prMethod end: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::prMethod").call{
__moreinner_star_prMethod++
__hitcount++
printf("moreinner::prMethod start: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::prMethod").return{
__moreinner_star_prMethod--
__hitcount++
printf("moreinner::prMethod end: %s\n", probefunc());
}
//=============================================================================
probe process("classes").function("puMethod").call{
__puMethod++
__hitcount++
printf("puMethod start: %s\n", probefunc());
}
probe process("classes").function("puMethod").return{
__puMethod--
__hitcount++
printf("puMethod end: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::puMethod").call{
__inner_CLASS1_puMethod++
__hitcount++
printf("inner::puMethod start: %s\n", probefunc());
}
probe process("classes").function("inner::CLASS1::puMethod").return{
__inner_CLASS1_puMethod--
__hitcount++
printf("inner::puMethod end: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::puMethod").call{
__moreinner_star_puMethod++
__hitcount++
printf("moreinner::puMethod start: %s\n", probefunc());
}
probe process("classes").function("moreinner::*::puMethod").return{
__moreinner_star_puMethod--
__hitcount++
printf("moreinner::puMethod end: %s\n", probefunc());
}

View file

@ -1,14 +0,0 @@
summary: Test for BZ#1572501 (RHEL7.5 - backtraces no longer work with systemtap)
description: Test for BZ#1572501
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1572501
extra-summary: /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap
extra-task: /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap

View file

@ -1,49 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/RHEL7-5-backtraces-no-longer-work-with-systemtap
# Description: Test for BZ#1572501 (RHEL7.5 - backtraces no longer work with systemtap)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
if arch | grep -q s390x; then
rlLogWarning "Test not relevant"
else
TEMPFILE=$(mktemp)
rlRun "stap --all-modules -vwe 'probe kernel.function(\"kmem_cache_alloc\") { print_backtrace(); exit() }' >& $TEMPFILE"
# since it's hard to find some reasonable pattern to grep for across arches in the backrtrace
# we'll simply count the lines. We'll want at least 9 lines of output (6 as the results of -v,
# and another at least three coming from the backtrace itself.
rlRun "cat $TEMPFILE"
rlRun "test 9 -le $(wc -l $TEMPFILE | awk '{print $1}')"
rm $TEMPFILE
fi
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,63 +0,0 @@
Kernel porting needed.
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: Test
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [ 09:22:47 ] :: [ INFO ] :: Checking whether we might want to try prologue search.
:: [ 09:23:10 ] :: [ BEGIN ] :: Running 'stap -P -vp4 readpages.stp'
Pass 1: parsed user script and 484 library scripts using 122428virt/95036res/15532shr/79120data kb, in 200usr/110sys/315real ms.
WARNING: never-assigned local variable 'nr_pages' (similar: rpages, __page, dev, name, file): identifier 'nr_pages' at readpages.stp:5:26
source: printf("nr_pages=%d\n", nr_pages);
^
WARNING: never-assigned local variable 'rpages' (similar: nr_pages, __page, dev, name, rsize): identifier 'rpages' at :7:24
source: printf("rpages=%d\n", rpages);
^
Pass 2: analyzed script: 2 probes, 17 functions, 3 embeds, 0 globals using 351676virt/327836res/19060shr/308368data kb, in 2880usr/1970sys/4927real ms.
Pass 3: translated to C into "/tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c" using 351692virt/327964res/19188shr/308384data kb, in 490usr/800sys/1301real ms.
In file included from /usr/share/systemtap/runtime/linux/../regs.c:16,
from /usr/share/systemtap/runtime/linux/runtime.h:270,
from /usr/share/systemtap/runtime/runtime.h:26,
from /tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c:21:
/tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c: In function enter_kretprobe_common:
/tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.c:2499:45: error: struct kretprobe_instance has no member named ret_addr
2499 | SET_REG_IP(regs, (unsigned long)inst->ret_addr);
| ^~
/usr/share/systemtap/runtime/linux/../regs.h:85:44: note: in definition of macro SET_REG_IP
85 | #define SET_REG_IP(regs, x) REG_IP(regs) = x
| ^
make[1]: *** [scripts/Makefile.build:288: /tmp/stapWU958g/stap_f189533513b6d61221ada924fedfc9c4_6369_src.o] Error 1
make: *** [Makefile:1844: /tmp/stapWU958g] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compiled C into "stap_f189533513b6d61221ada924fedfc9c4_6369.ko" in 1150usr/1910sys/2659real ms.
Pass 4: compilation failed. [man error::pass4]
:: [ 09:23:20 ] :: [ FAIL ] :: Command 'stap -P -vp4 readpages.stp' (Expected 0, got 1)
:: [ 09:23:20 ] :: [ BEGIN ] :: Running 'stap -P -vp4 tcp.sendmsg.stp'
Pass 1: parsed user script and 484 library scripts using 122428virt/95044res/15536shr/79120data kb, in 180usr/130sys/316real ms.
Pass 2: analyzed script: 5 probes, 2 functions, 4 embeds, 3 globals using 202292virt/178300res/19224shr/158984data kb, in 1720usr/1750sys/3531real ms.
Pass 3: translated to C into "/tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c" using 202308virt/178492res/19416shr/159000data kb, in 160usr/720sys/899real ms.
In file included from /usr/share/systemtap/runtime/linux/../regs.c:16,
from /usr/share/systemtap/runtime/linux/runtime.h:270,
from /usr/share/systemtap/runtime/runtime.h:26,
from /tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c:21:
/tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c: In function enter_kretprobe_common:
/tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.c:2190:45: error: struct kretprobe_instance has no member named ret_addr
2190 | SET_REG_IP(regs, (unsigned long)inst->ret_addr);
| ^~
/usr/share/systemtap/runtime/linux/../regs.h:85:44: note: in definition of macro SET_REG_IP
85 | #define SET_REG_IP(regs, x) REG_IP(regs) = x
| ^
make[1]: *** [scripts/Makefile.build:288: /tmp/stapzXlpka/stap_c98d0598383a49c9b0a715336e876a54_18911_src.o] Error 1
make: *** [Makefile:1844: /tmp/stapzXlpka] Error 2
WARNING: kbuild exited with status: 2
Pass 4: compiled C into "stap_c98d0598383a49c9b0a715336e876a54_18911.ko" in 1250usr/1900sys/2762real ms.
Pass 4: compilation failed. [man error::pass4]
:: [ 09:23:28 ] :: [ FAIL ] :: Command 'stap -P -vp4 tcp.sendmsg.stp' (Expected 0, got 1)
:: [ 09:23:28 ] :: [ BEGIN ] :: Running 'stap -P -vp4 bdflush.stp'
Pass 1: parsed user script and 484 library scripts using 122428virt/94968res/15468shr/79120data kb, in 180usr/130sys/317real ms.
Pass 2: analyzed script: 3 probes, 5 functions, 98 embeds, 4 globals using 198116virt/174376res/18956shr/154808data kb, in 1930usr/2660sys/4689real ms.
/root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.ko
Pass 3: using cached /root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.c
Pass 4: using cached /root/.systemtap/cache/87/stap_8728db2fdfe761c96d8963fd0c4fffd2_71969.ko
:: [ 09:23:33 ] :: [ PASS ] :: Command 'stap -P -vp4 bdflush.stp' (Expected 0, got 0)

View file

@ -1,8 +0,0 @@
probe syscall.bdflush {
printf("%s\n", name)
printf("%s\n", argstr)
}
probe syscall.bdflush.return {
printf("%s\n", name)
}

View file

@ -1,14 +0,0 @@
summary: bz544960-no-cfa_ops-supplied
description: ''
contact: Martin Hatina <mhatina@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 30m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=544960
extra-summary: /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied
extra-task: /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied

View file

@ -1,19 +0,0 @@
probe nfs.aop.readpages !, nfs.aop.readpage {
log(name);
printf("dev=%d\n", dev);
printf("ino=%d\n", ino);
printf("nr_pages=%d\n", nr_pages);
printf("file=%d\n", file);
printf("rpages=%d\n", rpages);
printf("rsize=%d\n", rsize);
printf("argstr=%s\n", argstr);
printf("size=%d\n", size);
printf("units=%s\n", units);
}
probe nfs.aop.readpages.return !, nfs.aop.readpage.return {
log(name);
printf("retstr=%s\n", retstr);
printf("size=%d\n", size);
printf("units=%s\n", units);
}

View file

@ -1,48 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/bz544960-no-cfa_ops-supplied
# Description: What the test does
# Author: Martin Hatina <mhatina@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
_SCRIPTS="readpages.stp tcp.sendmsg.stp bdflush.stp"
rlJournalStart
rlPhaseStartTest
rlLogInfo "Checking whether we might want to try prologue search."
p=""
for s in $_SCRIPTS; do
stap -vp4 $s >& /dev/null || p="-P"
done
for s in $_SCRIPTS; do
rlRun "stap $p -vp4 $s"
done
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,7 +0,0 @@
probe tcp.sendmsg {
printf("%d\n", size)
}
probe tcp.sendmsg.return {
printf("%d\n", size)
}

View file

@ -1,15 +0,0 @@
summary: bz706185-various-build-and-run
description: bz706185-various-build-and-run
contact: Petr Muller <pmuller@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
require:
recommend:
- systemtap
duration: 20m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=706185
extra-summary: /tools/systemtap/Regression/bz706185-various-build-and-run
extra-task: /tools/systemtap/Regression/bz706185-various-build-and-run

View file

@ -1,87 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/bz706185-various-build-and-run
# Description: Test containing several build and run testcases.
# Author: Petr Muller <pmuller@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlRun "rpm -qf $(which stap)"
rlRun "uname -r"
rlPhaseEnd
rlPhaseStartTest "Build testcases"
export STAPOUT=`mktemp`
export TRACOUT=`mktemp`
for testcase in *.stp
do
rlLog "Testcase: $testcase"
rlRun "stap -v -p4 $testcase -m testcase --poison-cache &>$STAPOUT" 0 "Building testcase: $testcase"
if [ $? -ne 0 ]
then
rlLog "=== systemtap output start"
while read line
do
rlLog "$line"
done < $STAPOUT
rlLog "=== systemtap output end"
fi
rm -f testcase.ko
rm -f $STAPOUT
done
rlPhaseEnd
rlPhaseStartTest "Run testcases"
for testcase in *.run
do
rlLog "Testcase: $testcase"
COMMAND="`cat $testcase`"
COMMAND="$COMMAND -o $TRACOUT $testcase --poison-cache &>$STAPOUT"
rlLog "Assembled command: [$COMMAND]"
rlRun "$COMMAND" 0 "Running testcase: $testcase"
if [ $? -ne 0 ]
then
rlLog "=== systemtap output start"
while read line; do rlLog "$line"; done < $STAPOUT
rlLog "=== systemtap output end"
rlLog ""
rlLog "=== tracing output start"
while read line; do rlLog "$line"; done < $TRACOUT
rlLog "=== tracing output end"
fi
rm -f $STAPOUT $TRACOUT
done
rlPhaseEnd
rlPhaseStartCleanup
rlRun "rm -f $STAPOUT $TRACOUT"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1 +0,0 @@
stap -v softirq.stp

View file

@ -1,3 +0,0 @@
probe softirq.entry { println(">>> softirq") }
probe softirq.exit { println("<<< softirq")}
probe timer.ms(5000) { exit() }

View file

@ -1,15 +0,0 @@
summary: dtrace-create-Wall-Wextra-pedantic-clean-code
description: dtrace-create-Wall-Wextra-pedantic-clean-code
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- systemtap-sdt-devel
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=902739
extra-summary: /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code
extra-task: /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code

View file

@ -1,57 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/dtrace-create-Wall-Wextra-pedantic-clean-code
# Description: dtrace-create-Wall-Wextra-pedantic-clean-code
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
rlPhaseEnd
rlPhaseStart WARN "Info"
rlRun "which dtrace"
rlPhaseEnd
rlPhaseStartTest
rlRun "printf \"provider xxx { probe xxx(); };\n\" > xxx"
rlRun "dtrace -G -k -s xxx &> dtrace.out"
rlRun "cat dtrace.out"
rlRun "CF=$( awk '/^source:/ {print $2}' dtrace.out )"
rlRun "gcc -c -Wall -Wextra -pedantic $CF 2>&1 | tee gcc.out"
rlRun "grep -i warning gcc.out" 1
rlRun "grep -i error gcc.out" 1
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,28 +0,0 @@
#!/bin/bash
set -xe
rm -rf ~/.cache/debuginfod_client ~/.systemtap ||:
debuginfod -p 8008 -d $(mktemp) -vvvvv >& debuginfod.log &
PID=$!
sleep 5
export SYSTEMTAP_DEBUGINFO_PATH=/tmp
export DEBUGINFOD_URLS="http://127.0.0.1:8008"
# The following doesn't work on aarch64 and s390x because of:
# https://sourceware.org/bugzilla/show_bug.cgi?id=25498
# stap -p2 -e 'probe kernel.function("vfs_read") {println(pp())}' ||:
stap -p2 -e 'probe process("/bin/true").function("main") {println(pp())}' -c /bin/true ||:
sleep 5
kill -9 $PID
grep 'started http server on' debuginfod.log
grep 'searching for buildid=[a-z0-9]* artifacttype=debuginfo' debuginfod.log

View file

@ -1,14 +0,0 @@
summary: elfutils-debuginfod-client-not-being-called
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- elfutils-debuginfod
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1778921
extra-summary: /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called
extra-task: /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called

View file

@ -1,52 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/elfutils-debuginfod-client-not-being-called
# Description: elfutils-debuginfod-client-not-being-called
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
rlAssertRpm $PACKAGE
rlRun "TMP=$(mktemp -d)"
rlRun "cp dotest.sh $TMP/"
rlRun "pushd $TMP"
rlPhaseEnd
rlPhaseStartTest
rlRun "bash dotest.sh" ||
rlRun "cat debuginfod.log"
rlFileSubmit debuginfod.log
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMP"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,8 +0,0 @@
probe begin
{
printf ( "hello trace : printf\n")
printk (20,"hello trace : printk")
ftrace ( "hello trace : ftrace\n")
exit ()
}

View file

@ -1,14 +0,0 @@
summary: ftrace-logging-tapset-not-working-as-expected-in
description: ftrace-logging-tapset-not-working-as-expected-in
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1810216
extra-summary: /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in
extra-task: /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in

View file

@ -1,47 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/ftrace-logging-tapset-not-working-as-expected-in
# Description: ftrace-logging-tapset-not-working-as-expected-in
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
LOG1=$(mktemp)
LOG2=$(mktemp)
rlJournalStart
rlPhaseStartTest
rlRun "mount | fgrep -i 'debugfs on'"
rlRun "cat /sys/kernel/debug/tracing/tracing_on | grep '^1$'"
rlRun "journalctl > $LOG1"
rlRun "stap -g -k -v hellotrace.stp"
rlRun "journalctl > $LOG2"
rlRun "diff $LOG1 $LOG2 | grep '^>.*hello trace : printk'"
rlRun "rm $LOG1 $LOG2"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,16 +0,0 @@
summary: Test for BZ#822503 (ipv6 tapset support)
description: ipv6 tapset support
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- nfs-utils
- setup
duration: 50m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=822503
extra-summary: /tools/systemtap/Regression/ipv6-tapset-support
extra-task: /tools/systemtap/Regression/ipv6-tapset-support

View file

@ -1,12 +0,0 @@
#!/usr/bin/stap
# http://sourceware.org/systemtap/examples/network/nfsdtop.stp
probe nfsd.proc.lookup {
printf("%s %s\n", client_ip, filename);
}
probe timer.ms(100000) {
exit ();
}

View file

@ -1,76 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/ipv6-tapset-support
# Description: Test for BZ#822503 (ipv6 tapset support)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlAssertRpm nfs-utils
rlRun "uname -r"
rlRun "which stap"
rlRun "TMPD=$(mktemp -d --tmpdir=$HOME tmp.XXXXXXX)"
rlRun "mkdir $TMPD/{A,B}"
rlRun "chmod --recursive 0777 $TMPD"
rlRun "STAPLOG=$(mktemp)"
rlServiceStart rpcbind
sleep 5
NFS_SERVICE=nfs
rlIsRHEL '>=8' && NFS_SERVICE=nfs-server
rlServiceStart $NFS_SERVICE
sleep 10
rlRun "exportfs -ua"
rlRun "exportfs -i -o 'rw,no_root_squash' *:$TMPD/A"
rlPhaseEnd
rlPhaseStartTest
# ======= work around bz1605574
rlLogInfo "Let's check if we can compile the module."
rlLogInfo "In case we can't, we'll go ahead with prologue searching."
set -x
EXTRA_SWITCHES=''
stap -p4 nfsd.proc.lookup.stp || EXTRA_SWITCHES="-P"
set +x
# =============================
# mount is sufficient to invoke nfsd.proc.lookup
rlRun "stap $EXTRA_SWITCHES -v -c 'mount -t nfs -v [::1]:$TMPD/A $TMPD/B' nfsd.proc.lookup.stp |& tee $STAPLOG"
rlRun "umount $TMPD/B"
rlRun "grep 'Unsupported Address Family' $STAPLOG" 1
rlRun "egrep '^\[0000:0000:0000:0000:0000:0000:0000:0001\]:[0-9]+.*$(basename $TMPD)' $STAPLOG"
rlPhaseEnd
rlPhaseStartCleanup
rlServiceRestore $NFS_SERVICE
rlServiceRestore rpcbind
rlRun "rm -rf $TMPD $STAPLOG"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: irq-vector-tracepoints
description: irq-vector-tracepoints
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap-devel
- kernel-debuginfo
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1020437
extra-summary: /tools/systemtap/Regression/irq-vector-tracepoints
extra-task: /tools/systemtap/Regression/irq-vector-tracepoints

View file

@ -1,74 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/irq-vector-tracepoints
# Description: irq-vector-tracepoints
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
rlRun "mount -t debugfs /dev/null /sys/kernel/debug" 0-255
rlRun "test -d /sys/kernel/debug/tracing/events"
rlPhaseEnd
rlPhaseStart FAIL "Systemtap sanity check"
rlRun "stap --version"
rlRun "stap -v -e 'probe kernel.function(\"vfs_read\"){ exit() }'"
rlPhaseEnd
rlPhaseStart FAIL "Create list of all kernel tracepoints known to stap"
rlRun "stap -l 'kernel.trace(\"*\")' > tracepoints"
rlFileSubmit tracepoints
rlPhaseEnd
rlPhaseStart FAIL "Check irq_vectors"
dir='/sys/kernel/debug/tracing/events/irq_vectors'
if test -d $dir; then
for p in $( find $dir -mindepth 1 -type d | awk -F\/ '{print $NF}' ); do
rlLogInfo "Checking $p"
rlRun "grep -q $p tracepoints"
done
# additional checks
rlRun "stap -vp4 -e 'probe kernel.trace(\"local_timer_entry\") {println(pp())}'"
rlRun "stap -vp4 -e 'probe kernel.trace(\"reschedule_entry\") {println(pp())}'"
else
if arch | egrep 'x86_64|i[36]86'; then
rlLogError "$dir does not exist"
else
rlLogInfo "$dir does not exist"
fi
fi
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,14 +0,0 @@
summary: netdev.receive
description: bz1518462 netdev.receive
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 15m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1518462
extra-summary: /tools/systemtap/Regression/netdev-receive
extra-task: /tools/systemtap/Regression/netdev-receive

View file

@ -1,44 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/netdev-receive
# Description: netdev.receive
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2017 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
TMPFILE=$(mktemp)
rlJournalStart
rlPhaseStartTest
# Here we rely on that netdev.receive gets hit immediately without us explicitly triggering it.
# Not all rhel-7 stap versions have -T already, so we use -E instead.
rlRun "stap -o $TMPFILE -ve 'probe netdev.receive{log(\"HIT\") exit()}' -E 'probe timer.s(10) {log(\"TIMEOUT\") exit()}'"
rlRun "cat $TMPFILE"
rlRun "grep HIT $TMPFILE"
rlRun "grep TIMEOUT $TMPFILE" 1
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,16 +0,0 @@
summary: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples)
description: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples)
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- valgrind
- systemtap
- systemtap-testsuite
duration: 30m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1055778
extra-summary: /tools/systemtap/Regression/pass-4-failure-netfilter-examples
extra-task: /tools/systemtap/Regression/pass-4-failure-netfilter-examples

View file

@ -1,55 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/pass-4-failure-netfilter-examples
# Description: Test for BZ#1055778 (Pass 4 failure on RHEL7 for examples)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartSetup
TESTS=$(mktemp)
rlRun "rpm -qa | fgrep systemtap-testsuite"
rlPhaseEnd
rpm -qa | grep systemtap-testsuite | xargs rpm -ql \
| egrep 'netfilter_drop.stp|netfilter_summary.stp' \
| while read line; do
rlPhaseStart FAIL "Testing $line"
rlRun "stap -p4 $line -v -g TCP 1" && \
echo $line >> $TESTS
rlPhaseEnd
done
rlPhaseStart FAIL "Check what was tested"
rlRun "grep netfilter_drop.stp $TESTS"
rlRun "grep netfilter_summary.stp $TESTS"
rm -f $TESTS
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,22 +0,0 @@
#!/usr/bin/stap -v
/*
Example usage of the Python systemtap tapset to show a nested view of all
Python function calls (and returns) across the whole system.
Run this using
stap systemtap-example.stp
to instrument all Python processes on the system, or (for example) using
stap systemtap-example.stp -c COMMAND
to instrument a specific program (implemented in Python)
*/
probe python.function.entry
{
if ( filename =~ "random" )
printf("%s => %s in %s:%d\n", thread_indent(1), funcname, filename, lineno);
}
probe python.function.return
{
if ( filename =~ "random" )
printf("%s <= %s in %s:%d\n", thread_indent(-1), funcname, filename, lineno);
}

View file

@ -1,19 +0,0 @@
summary: Systemtap static probes test
description: Systemtap static probes test
contact: Petr Splichal <psplicha@redhat.com>
component:
- python
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- python
- python-debuginfo
- systemtap
- python2
- python3
- elfutils
duration: 15m
extra-summary: /CoreOS/python/Sanity/systemtap
extra-task: /CoreOS/python/Sanity/systemtap
tier: 1

View file

@ -1,78 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/python/Sanity/systemtap
# Description: Systemtap static probes test
# Author: Petr Splichal <psplicha@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include rhts environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
# Packages to be tested
PACKAGES="${PACKAGES:-python3}"
# Other required packages
REQUIRES=${REQUIRES:-}
# Binary name parametrized
PYTHON="${PYTHON:-python3}"
package=$(rpm -qf --queryformat '%{name}\n' $(which $PYTHON))
collection_path=$(which python | sed 's/\/usr\/bin\/python//')
rlJournalStart
rlPhaseStartSetup
rlAssertRpm --all
rlAssertRpm "systemtap"
rlLogInfo "Running on kernel: $(uname -r)"
rlRun "rpm -qa 'systemtap*'" 0 "Checking systemtap packages"
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
rlRun "cp list.stp top.stp test.py $TmpDir" 0 "Copying scripts"
rlRun "pushd $TmpDir"
rlPhaseEnd
rlPhaseStartTest "Verifying ELF file for presence of .probes section"
for lib in ${collection_path}/usr/lib*/libpython*.so.* ; do
rlRun "eu-readelf -x .probes $lib" \
0 "Checking for .probes section within $lib"
done
rlPhaseEnd
# Note that typically you need to be root to run "stap" (or be within
# an appropriate group)
for script in list top; do
rlPhaseStartTest "Test $script"
rlRun "rm -rf ~/.systemtap/cache" 0 "Cleaning cache"
rlRun "stap $script.stp -v -c \"$PYTHON test.py\" > $script" \
0 "Testing with $script.stp"
rlRun "tail -100 $script | col -b" 0 "Inspecting output"
rlRun "grep '/usr/lib.*python.*random.py' '$script'" \
0 "Checking for random in the $script output"
rlPhaseEnd
done
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,3 +0,0 @@
import random, time
print(random.random())
time.sleep(3)

View file

@ -1,19 +0,0 @@
#!/usr/bin/stap -v
global fn_calls;
probe python.function.entry
{
fn_calls[pid(), filename, funcname, lineno] += 1;
}
probe timer.ms(1000) {
foreach ([pid, filename, funcname, lineno] in fn_calls- limit 1000) {
if (filename =~ "random")
printf("%6d %80s %6d %30s %6d\n",
pid, filename, lineno, funcname,
fn_calls[pid, filename, funcname, lineno]);
}
delete fn_calls;
}

View file

@ -1,16 +0,0 @@
summary: second-command-not-captured
description: second-command-not-captured
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- ruby
- ruby-libs
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1857749
extra-summary: /tools/systemtap/Regression/second-command-not-captured
extra-task: /tools/systemtap/Regression/second-command-not-captured

View file

@ -1,9 +0,0 @@
probe ruby.method.entry, ruby.cmethod.entry {
if((classname =~ "Array") && (methodname =~ "push"))
printf("%d -> %s::%s %s:%d\n", tid(), classname, methodname, file, line);
}
probe ruby.method.return, ruby.cmethod.return {
if((classname =~ "Array") && (methodname =~ "push"))
printf("%d <- %s::%s %s:%d\n", tid(), classname, methodname, file, line);
}

View file

@ -1,42 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/second-command-not-captured
# Description: second-command-not-captured
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2020 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
rlLog "`which stap`"
rlLog "`stap -V`"
rlRun "stap -v ./ruby-exercise.stp -c ./test.sh -o stap.log"
rlRun "grep 'Array::push' stap.log" ||
rlFileSubmit "stap.log"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,7 +0,0 @@
#!/bin/bash
set -e
ruby -e 'puts "ABC"'
ruby -e '[1, 2, 3].push(4)'
sleep 10

View file

@ -1,23 +0,0 @@
summary: selected-parts-of-upstream-testsuite
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- libstdc++
- dejagnu
- elfutils-devel
- gettext
- libgcc
- glibc-devel
- gcc-c++
- libstdc++-devel
- dyninst
- dyninst-devel
- systemtap-testsuite
duration: 48h
extra-summary: /tools/systemtap/Regression/selected-parts-of-upstream-testsuite
extra-task: /tools/systemtap/Regression/selected-parts-of-upstream-testsuite

View file

@ -1,184 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/selected-parts-of-upstream-testsuite
# Description: selected-parts-of-upstream-testsuite
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2017 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Be tolerant about selinux
export AVC_ERROR='+no_avc_check'
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
DMESG1=$(mktemp)
DMESG2=$(mktemp)
PACKAGE="systemtap"
SUBTESTS="\
attach_detach.exp \
bz1126645.exp \
bz1214176.exp \
bz1252436.exp \
exelib.exp \
pr22005.exp \
server.exp \
systemtap-service.exp \
task_dentry_path.exp \
task_paths.exp \
tracepoints.exp \
"
blacklist_subtest()
{
token=${1/\//\\/}
SUBTESTS=${SUBTESTS/$token/}
}
P4TESTS="\
buildok/nfs-all-probes.stp \
buildok/nfs-detailed.stp \
buildok/nfs-fop.check_flags.stp \
buildok/nfs_proc-detailed.stp \
buildok/nfsd-all-probes.stp \
buildok/nfsd-detailed.stp \
systemtap.examples/io/nfs_func_users.stp \
systemtap.examples/network/nfsdtop.stp \
"
blacklist_p4()
{
token=${1/\//\\/}
P4TESTS=${P4TESTS/$token/}
}
if [[ $(rpm --eval '%{rhel}') -ge 8 ]]; then
# mjw authored that testcase - had been notified
arch | fgrep 'x86_64' && blacklist_subtest 'exelib.exp'
blacklist_p4 'buildok/nfs-fop.check_flags.stp'
blacklist_p4 'buildok/nfs_proc-detailed.stp'
blacklist_p4 'buildok/nfsd-detailed.stp'
# bz1709831
blacklist_p4 'buildok/nfs-detailed.stp'
arch | fgrep -q ppc64le && blacklist_p4 'buildok/nfs-all-probes.stp'
elif [[ $(rpm --eval '%{rhel}') -eq 7 ]]; then
# RHEL-ALT
if rpm -qi kernel | fgrep -q kernel-alt; then
# at_var.exp is expected to fail on Pegas - https://bugzilla.redhat.com/show_bug.cgi?id=1165848#c7
blacklist_subtest 'at_var.exp'
fi
# bz1107616, bz1698737
blacklist_p4 'buildok/nfsd-detailed.stp'
if arch | fgrep -q ppc64le; then
blacklist_p4 'buildok/nfs-all-probes.stp'
blacklist_p4 'buildok/nfs-detailed.stp'
blacklist_p4 'buildok/nfsd-all-probes.stp'
fi
elif [[ $(rpm --eval '%{rhel}') -le 6 ]]; then
true
fi
which stap | fgrep -q toolset && blacklist_subtest 'modules_out_of_tree.exp'
rlJournalStart
rlPhaseStartSetup
TESTSUITERPM="$(rpm --queryformat='%{name}\n' -qf $(which stap) | head -1 | grep -o '.*systemtap')-testsuite"
rlLogInfo "$(rpm -q $TESTSUITERPM)"
TESTSUITEDIR="$(rpm -ql $TESTSUITERPM | grep -o '.*share/systemtap/testsuite/' | head -1)"
rlLogInfo "$TESTSUITEDIR"
# For devtoolset, compat arch support was dropped for non-x86_64 arches. Ref: bz1493500
if echo $TESTSUITEDIR | grep -q toolset && arch | egrep -q '^(ppc64|s390x)$'; then
sed -i '/^proc arch_compile_flags/,/^}/d' $TESTSUITEDIR/lib/compile_flags.exp
echo 'proc arch_compile_flags {} { return 1 }' >> $TESTSUITEDIR/lib/compile_flags.exp
fi
# Need to suppress warnings so that task_dentry_path.exp can pass
# And --skip-badvars to let task_paths.exp pass
rlRun "sed -i 's/--rlimit-cpu=850/-w --skip-badvars \0/' $TESTSUITEDIR/lib/systemtap.exp"
rlServiceStop firewalld
rlServiceStop iptables
rlServiceStop ip6tables
rlServiceStart avahi-daemon
rlRun "rpm -qa | grep ^kernel | grep -v `uname -r` | xargs rpm -e" 0-255
rlRun "stap-prep" 0,127
PKGMGR="yum --skip-broken --nogpgcheck"
rpm -q dnf && PKGMGR="dnf --setopt=strict=0 --nogpgcheck"
rlRun "$PKGMGR -y install --setopt=multilib_policy=all libstdc++ dejagnu elfutils-devel gettext libgcc glibc-devel gcc-c++ libstdc++-devel dyninst dyninst-devel"
rlRun "sysctl -w kernel.panic=1"
rlRun "sysctl -w kernel.panic_on_oops=1"
rlPhaseEnd
rlPhaseStartTest
rlRun "cd $TESTSUITEDIR"
rlRun "make clean"
rlRun "dmesg > $DMESG1"
rlRun "make installcheck RUNTESTFLAGS=\"${RUNTESTFLAGS:-$SUBTESTS}\""
rlRun "dmesg > $DMESG2"
rlLogInfo "$SUBTESTS"
rlDejaSum "systemtap.sum"
rlFileSubmit "systemtap.log"
rlFileSubmit "systemtap.sum"
rlPhaseEnd
rlPhaseStart FAIL "Run selected -p4 tests"
for t in $P4TESTS; do
rlLogInfo "Trying to compile $t without prologue search ..."
ADDSWITCHES=''
stap $ADDSWITCHES -w -o /dev/null -p4 $t || ADDSWITCHES='-P'
rlRun "stap $ADDSWITCHES -w -p4 $t"
done
rlPhaseEnd
rlPhaseStart FAIL "Check for BUG: in dmesg"
rlRun "diff $DMESG1 $DMESG2" 0-255
rlRun "diff $DMESG1 $DMESG2 | grep 'BUG:'" 1
rlPhaseEnd
rlPhaseStart FAIL "Evaluate test results"
TEMPLOG=$(mktemp)
rlRun "cp systemtap.sum $TEMPLOG"
# BLACKLIST
if which stap | grep -q toolset; then
rlLogInfo "Ignore boot time probing subtest FAILures per bz1121363#c20 for devtoolset"
sed -i '/^FAIL: stap-service::boot probing - install script/d' $TEMPLOG
sed -i '/^FAIL: stap-service::boot probing - check script/d' $TEMPLOG
fi
# check for failures
rlRun "grep ^PASS $TEMPLOG" 0 "Assert a/some PASS"
rlRun "grep ^FAIL $TEMPLOG" 1 "Assert no FAIL"
rm -f $TEMPLOG
rlPhaseEnd
rlPhaseStartCleanup
rlServiceRestore firewalld
rlServiceRestore iptables
rlServiceRestore ip6tables
rlServiceRestore avahi-daemon
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,14 +0,0 @@
summary: semantic-error-nfs-proc-read_setup
description: semantic-error-nfs-proc-read_setup
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 5m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=884951
extra-summary: /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup
extra-task: /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup

View file

@ -1,5 +0,0 @@
probe nfs.proc.read_setup{
println("nfs.proc.read_setup server_ip: ", server_ip);
println("nfs.proc.read_setup prot: ", prot);
}

View file

@ -1,45 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-error-nfs-proc-read_setup
# Description: semantic-error-nfs-proc-read_setup
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2013 Red Hat, Inc. All rights reserved.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartSetup
rlRun "uname -r"
rlRun "rpm -qa | grep ^kernel | sort"
rlRun "rpm -qa | grep systemtap | sort"
rlRun "which stap"
rlPhaseEnd
rlPhaseStartTest
rlRun "stap -v -p 2 nfs.proc.read_setup.stp"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,14 +0,0 @@
summary: semantic-errors-bz1062076
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 30m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1062076
extra-summary: /tools/systemtap/Regression/semantic-errors-bz1062076
extra-task: /tools/systemtap/Regression/semantic-errors-bz1062076

View file

@ -1,40 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-errors-bz1062076
# Description: semantic-errors-bz1062076
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
rlJournalStart
rlPhaseStartTest
rlLogInfo "Check if we might want to try out prologue search"
p=""
stap -vp4 sript.stp >& /dev/null || p="-P"
rlRun "stap $p -vp4 script.stp"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,3 +0,0 @@
probe nfsd.close? { printf("%s\n", filename) } probe never { exit() }
probe sunrpc.clnt.clone_client { print(progname) }
probe scsi.iodone { printf("%d, %d, %d, %d, %d, %d, %d, %d\n", host_no, channel, lun, dev_id, device_state, data_direction, req_addr, scsi_timer_pending ) }

View file

@ -1,17 +0,0 @@
summary: semantic-errors-bz953776
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
require:
recommend:
- systemtap
- perf
- gcc
duration: 60m
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=953776
extra-summary: /tools/systemtap/Regression/semantic-errors-bz953776
extra-task: /tools/systemtap/Regression/semantic-errors-bz953776

View file

@ -1,161 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/semantic-errors-bz953776
# Description: semantic-errors-bz953776
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This copyrighted material is made available to anyone wishing
# to use, modify, copy, or redistribute it subject to the terms
# and conditions of the GNU General Public License version 2.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public
# License along with this program; if not, write to the Free
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
_rhelmajor=$(rpm --eval '%{rhel}')
_arch=$(arch)
function perf_probe_failed ()
{
probe=$1
perf probe -d $probe ||:
perf probe --add $probe
retval=$?
test $retval -eq 0 && \
rlLogInfo "Running perf probe --add $probe PASSED" || \
rlLogInfo "Running perf probe --add $probe FAILED"
perf probe -d $probe ||:
if test $retval -eq 0; then
return 1
else
return 0
fi
}
function perf_found_none_of ()
{
ret=0
for f in "$@"; do
perf_probe_failed $f || ret=1
done
return $ret
}
rlJournalStart
# CHECK FOR PERF ----------------------------------------------
rlPhaseStart FAIL "CHECK FOR PERF"
rlRun "perf --version"
rlPhaseEnd
rlPhaseStartSetup
rlRun "TMPDIR=$(mktemp -d)"
rlRun "pushd $TMPDIR"
# prepare sigaltstack for case-5
cat > sigaltstack.c <<EOF
#define _XOPEN_SOURCE 700
#include <signal.h>
#include <unistd.h>
void handler(int sig)
{
write(2, "stack overflow\n", 15);
_exit(1);
}
unsigned infinite_recursion(unsigned x) {
return infinite_recursion(x)+1;
}
int main()
{
static char stack[SIGSTKSZ];
stack_t ss = {
.ss_size = SIGSTKSZ,
.ss_sp = stack,
};
struct sigaction sa = {
.sa_handler = handler,
.sa_flags = SA_ONSTACK
};
sigaltstack(&ss, 0);
sigfillset(&sa.sa_mask);
sigaction(SIGSEGV, &sa, 0);
infinite_recursion(0);
}
EOF
rlRun "gcc -o sigaltstack sigaltstack.c"
rlPhaseEnd
p=""
uname -m | grep -q ^ppc && p="-P"
p="$p -E 'probe timer.s(900){error(\"probe timeout after 15 minutes\")}'"
export p
rlPhaseStart FAIL 'case-1'
rlRun "stap $p -v -e 'probe syscall.close { println(fd); exit(); }'"
rlPhaseEnd
# After fixing bz1657681, this constraint can be removed
if [[ $(rpm --eval %rhel) -le 7 ]]; then
if arch | grep -vq ppc; then
rlPhaseStart FAIL 'case-2'
# https://bugzilla.redhat.com/show_bug.cgi?id=1657681
rlRun "stap $p -v -e 'probe socket.close { print(protocol); print(family); print(state); print(flags); print(type); exit() }'"
rlPhaseEnd
fi
fi
(
test $_rhelmajor -le 8 && exit
perf_found_none_of "sys_read" "__arm64_sys_read" "do_syscall_64" && exit
test $_rhelmajor -ge 9 && test $_arch = ppc64le -o $_arch = aarch64 && p="$p -p4" # no hits
rlPhaseStart FAIL 'case-3'
rlRun "stap $p -v -e 'probe kernel.function(\"sys_read\").return!, kernel.function(\"__arm64_sys_read\").return!, kernel.function(\"do_syscall_64\").return { println(probefunc()) exit()}'"
rlPhaseEnd
)
rlPhaseStart FAIL 'case-4'
rlRun "stap $p -v -e 'probe syscall.open, syscall.openat { if (\"open\" == execname()) println(argstr); exit() }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-5'
rlRun "stap $p -ve 'probe syscall.sigaltstack { println(name); exit() }' -c './sigaltstack || true'"
rlPhaseEnd
# gcc 8.2.1->8.3.1 change related to systemtap debuginfo regression in rhel-8.1.0, kernel -84 -> -85
# https://bugzilla.redhat.com/show_bug.cgi?id=1709831#c17
# ( fgrep RESULT: /tmp/typescript | sort -u )
rlPhaseStart FAIL 'case-6'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.shutdown_client { println(servername) }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-7'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername) }'"
rlPhaseEnd
rlPhaseStart FAIL 'case-8'
rlRun "stap $p -vp4 -e 'probe sunrpc.clnt.bind_new_program { println(servername, vers) }'"
rlPhaseEnd
rlPhaseStartCleanup
rlRun "popd"
rlRun "rm -r $TMPDIR"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,15 +0,0 @@
summary: Small tests
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
- systemtap-testsuite
- perf
duration: 10m
extra-summary: /tools/systemtap/Regression/small-tests
extra-task: /tools/systemtap/Regression/small-tests
tier: 1

View file

@ -1,222 +0,0 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/small-tests
# Description: suns small tests
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
export DEBUGINFOD_URLS="https://debuginfod.fedoraproject.org/ $DEBUGINFOD_URLS"
export DEBUGINFOD_TIMEOUT=300
_arch=$(arch)
function perf_probe_failed ()
{
probe=$1
perf probe -d $probe ||:
perf probe --add $probe
retval=$?
test $retval -eq 0 && \
rlLogInfo "Running perf probe --add $probe PASSED" || \
rlLogInfo "Running perf probe --add $probe FAILED"
perf probe -d $probe ||:
if test $retval -eq 0; then
return 1
else
return 0
fi
}
function perf_found_none_of ()
{
ret=0
for f in "$@"; do
perf_probe_failed $f || ret=1
done
return $ret
}
rlJournalStart
# Check the environment ---------------------------------------
rlPhaseStart WARN "Check the environment"
rlRun "rpm -qa | egrep '^(kernel|systemtap|perf)' | sort"
rlRun "uname -r"
rlRun "perf --version"
rlPhaseEnd
# bz1162939 ---------------------------------------------------
(
perf_probe_failed "vfs_read" && exit
rlPhaseStart FAIL "test 1 bz1162939"
# At this point a weird problem shows up: sometimes the first
# systemtap invocation fails for some reason, but subsequent
# invocations succeed. Can't reproduce this manually:
rlRun "stap -vvvp4 -e 'probe vfs.read{println(\"hit\")}'" 0,1
sleep 30
rlRun "stap -vvvp4 -e 'probe vfs.read{println(\"hit\")}'" 0,1
sleep 30
rlRun "stap -e 'probe vfs.read{println(\"hit\")}' -c 'head -1 /etc/hosts'"
rlPhaseEnd
)
# bz1119335 ---------------------------------------------------
rlPhaseStart FAIL "test 2 bz1119335"
rlRun "man 8 staprun | grep 'STAP_FIPS_OVERRIDE'"
rlPhaseEnd
# bz1153673 ---------------------------------------------------
rlPhaseStart FAIL "test 3 bz1153673"
_tested=0
for _pkg in $( rpm -qa | grep systemtap-testsuite ); do
for _tc in $( rpm -ql $_pkg | grep 'alias_suffixes.stp$' ); do
stap -p4 $_tc && p="" || p="-P"
rlRun "stap $p -p4 $_tc"
_tested=1
done
done
[[ $_tested -eq 0 ]] && rlFail "Not tested"
rlPhaseEnd
# bz1160837 ---------------------------------------------------
(
perf_probe_failed "sd_init_command" && exit
rlPhaseStart FAIL "test 4 bz1160837"
_tested=0
_prologue_search=''
for _pkg in $( rpm -qa | grep systemtap-testsuite ); do
for _tc in $( rpm -ql $_pkg | grep 'iostat-scsi.stp$' ); do
test $_arch = ppc64le && _prologue_search='-P'
rlRun "stap -g $_prologue_search $_tc 1 -c 'sleep 1'"
_tested=1
done
done
[[ $_tested -eq 0 ]] && rlFail "Not tested"
rlPhaseEnd
)
# bz1203808 ---------------------------------------------------
rlPhaseStart FAIL "test 5 bz1203808"
_tested=0
for _pkg in $( rpm -qa | grep systemtap-testsuite ); do
for _tc in $( rpm -ql $_pkg | grep 'vfs-all-probes.stp$' ); do
stap -wp4 $_tc && p="" || p="-P"
rlRun "stap $p -w -p4 $_tc"
_tested=1
done
done
[[ $_tested -eq 0 ]] && rlFail "Not tested"
rlPhaseEnd
# bz1269062 ---------------------------------------------------
rlPhaseStart FAIL "test 6 bz1269062"
rlRun "stap -c sync --suppress-handler-errors -e 'probe ioscheduler.elv_add_request{println(elevator_name) exit()}'"
rlPhaseEnd
# bz528792 ---------------------------------------------------
(
# Not relevant on rhel-9 because of kernel commit cad6967ac10843a70842cd39c7b53412901dd21f that removes
# _do_fork() and replaces it with new kernel_clone()
perf_found_none_of "_do_fork" "do_fork" "sys_clone" && exit
rlPhaseStart FAIL "test 7 bz528792"
if test $_arch = ppc64le; then
# https://bugzilla.redhat.com/show_bug.cgi?id=1652740#c4 - We can not reach any function parameters, namely $clone_flags
rlRun "stap -ve 'probe kernel.function(\"_do_fork\")!, kernel.function(\"do_fork\")!, kernel.function(\"sys_clone\") { println(pp()) exit() }' -c \"bash -c 'while sleep 1; do /bin/true; done'\""
else
rlRun "stap -ve 'probe kernel.function(\"_do_fork\")!, kernel.function(\"do_fork\")!, kernel.function(\"sys_clone\") { printf(\"%x\n\",\$clone_flags) exit() }' -c \"bash -c 'while sleep 1; do /bin/true; done'\""
fi
rlPhaseEnd
)
# bz1890702 ---------------------------------------------------
(
perf_probe_failed "vfs_open" && exit
rlPhaseStart FAIL "test 8 bz1890702"
rlRun "stap -g --suppress-time-limits -e 'probe kernel.function(\"vfs_open\") { printf(\"%s(path: %s)\", ppfunc(), \$path\$) ; exit() }' -c 'cat /etc/hosts'"
rlPhaseEnd
)
# bz1904216 ---------------------------------------------------
rlPhaseStart FAIL "test 9 bz1904216"
rlRun "stap -p4 -DSTP_NO_OVERLOAD -t -c 'sleep 0.25' -e 'probe kernel.trace(\"bcache:bcache_btree_set_root\") { if (pid() == 0) printf(\"probe hit\n\"); }'"
rlPhaseEnd
# bz1940804 ---------------------------------------------------
rlPhaseStart FAIL "test 10 bz1940804"
rlRun "stap -e 'probe process(\"/bin/bash\").function(\"main\") {println(pn()) }' -c '/bin/bash --help'"
rlPhaseEnd
# bz1940945 ---------------------------------------------------
rlPhaseStart FAIL "test 11 bz1940945"
rlRun "stap -c sync --suppress-handler-errors -e 'probe ioscheduler.elv_add_request{println(elevator_name) exit()}'"
rlPhaseEnd
# bz1940761 ---------------------------------------------------
rlPhaseStart FAIL "test 12 bz1940761"
rlRun "stap -v /usr/share/systemtap/examples/process/strace.stp -w -c \"echo hello world\""
rlPhaseEnd
# broken-tapset-print-ubacktrace ------------------------------
rlPhaseStart FAIL "test 13 broken-tapset-print-ubacktrace"
rlRun "stap -p4 -e 'probe begin { print_ubacktrace() }'"
rlPhaseEnd
# Protected from elision --------------------------------------
rlPhaseStart FAIL "test 14 protected from elision"
rlRun "stap -v -e 'probe nfs.fop.fsync {} probe begin {print(\"Protected from elision\")}' -c true |\
fgrep 'Protected from elision'"
rlPhaseEnd
# bz544207 ----------------------------------------------------
rlPhaseStart FAIL "test 15 bz544207"
extra_opts=""
stap -vp4 -e 'probe nfs.proc.write_setup{ println(how) }' || extra_opts="-P"
rlRun "stap $extra_opts -vp4 -e 'probe nfs.proc.write_setup{ println(how) }'"
rlPhaseEnd
# bz544209 ----------------------------------------------------
rlPhaseStart FAIL "test 16 bz544209"
rlRun "stap -vp2 -e 'probe sunrpc.clnt.create_client.return {}'"
rlPhaseEnd
# bz592830 ----------------------------------------------------
rlPhaseStart FAIL "test 17 bz592830"
rlRun "stap -vp2 -e 'probe signal.check_ignored.return {println(1)}'"
rlPhaseEnd
# caller-does-not-work ----------------------------------------
rlPhaseStart FAIL "test 18 caller-does-not-work"
rlRun "stap -ve 'probe kernel.function(\"vfs_read\") \
{ printf(\"%s\n\", caller()); exit() }' 2>&1 | tee strace.log"
rlPhaseEnd
# missing-rpc-tracepoints -------------------------------------
rlPhaseStart FAIL "test 19 missing-rpc-tracepoints"
rlRun "stap -L 'kernel.trace(\"rpc*\")'"
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -1,14 +0,0 @@
summary: Test for BZ#1566422 (stap ERROR Build-id mismatch with)
description: ''
contact: Martin Cermak <mcermak@redhat.com>
component:
- systemtap
test: ./runtest.sh
framework: beakerlib
recommend:
- systemtap
duration: 48h
link:
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1566422
extra-summary: /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with
extra-task: /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with

View file

@ -1,43 +0,0 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/systemtap/Regression/stap-ERROR-Build-id-mismatch-with
# Description: Test for BZ#1566422 (stap ERROR Build-id mismatch with)
# Author: Martin Cermak <mcermak@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 Red Hat, Inc.
#
# This program is free software: you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation, either version 2 of
# the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be
# useful, but WITHOUT ANY WARRANTY; without even the implied
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
PACKAGE="systemtap"
rlJournalStart
rlPhaseStartTest
if arch | grep -q s390x; then
rlLogWarning "Test not relevant"
else
rlRun "sudo modprobe igb"
rlRun "stap -e 'probe module(\"igb\").function(\"igb_*_module\") { printf(\"%s: %s.\n\", ctime(gettimeofday_s()), ppfunc()); }' -c \"bash -c 'sudo rmmod igb; sudo modprobe igb'\""
fi
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

Some files were not shown because too many files have changed in this diff Show more