| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
utrace_control"
This reverts commit 489afa702639fd10e9756795bd516d939766247d.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As Roland pointed out in his Mar 31 reply to a posting of mine (subject:
Re: Testing insn.block probe point uncovers possible utrace bug),
utrace_control() documents that the caller must ensure that
arch_has_single_step and arch_has_block_step are defined before trying
to use those step modes. The attached patch addresses that issue. I've
tested this patch on x86_64 arch, and a block step test runs
successfully, since block step is supported on that arch. Testing on
ppc64 arch, the test fails as expected (since block step is not
supported on ppc64 yet) with:
"ERROR: callback for <pid> failed: 1"
which is sent to stdderr and
"usr_itrace_init: arch does not support block step mode"
which is sent to the system log.
This isn't the most user-friendly way of surfacing an error. Perhaps
the stap runtime could have a set of defined return codes that would be
mapped to strings so the user can get an idea of what the error is
without looking in the system log. But that's a side issue, of course.
Regards,
-Maynard
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We hereby no longer try to manipulate process groups in any way. We
don't set a private process group, and we never kill() our entire group
either. Instead of using system(), we now have a stap_system() which
saves the child PID, so when we get a terminating signal we can pass it
along to the child.
Signals sent through the TTY have always worked, since the TTY sends it
to the entire pgrp. However, if we're running as part of a wrapper
script or GUI, which may not have a separate process group for stap, we
still would like to allow "kill -TERM $STAPPID" to terminate stap
nicely.
There's still a short window of failure in the time that staprun is
active, because we can't kill a setuid process from a user process.
Once staprun drops privileges and execs to stapio though, everything
should work fine.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
The new code uses a %( kernel_v < "2.6.29" %) conditional to look at
the passed pt_regs instead of named *bx parameters. A more general
solution will be needed at some point.
|
| |
| |
| |
| | |
* tapsets.cxx (utrace_derived_probe_group::emit_module_init): Correct #endif.
|
|\| |
|
| |
| |
| |
| |
| |
| | |
* includes/sys/sdt.h (STAP_UNINLINE): New.
(STAP_UNINLINE_LABEL): New.
static_uprobes.exp: Match using charset instead of .*
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| | |
* runtime/map-gen.c, pmap-gen.c: Hand-expand arity 6..9 cases throughout.
* testsuite/buildok/thirty.stp: New test.
* testsuite/buildko/two.stp: New test.
An Alan Smithee patch.
|
| | |
|
| |
| |
| |
| |
| |
| | |
* tapsets.cxx (dwarf_builder::build): Add .mark name wildcard check.
Customize -l handling.
* testsuite/systemtap.base/static_uprobes.exp: Test .mark name wildcard.
|
| |
| |
| |
| | |
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: Add authorblock.
|
| |
| |
| |
| | |
* tapsets/socket.stp: Add descriptions for proto, family and state.
|
| |
| |
| |
| |
| |
| |
| | |
* main.cxx (runner): New main function.
(waiter_handler): Signal handler for waiter process.
(waiter): Waiter process waitpid function.
(main): Fork and run wait and runner in their own processes.
|
| |
| |
| |
| |
| |
| | |
* runtime/autoconf-x86-gs.c : New file.
* testsuite/systemtap.base/x86_gs.exp : New test case.
* testsuite/systemtap.base/x86_gs.stp : Ditto.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* buildrun.cxx (compile_pass): Add autoconf-x86-gs.c.
* tapset/i686/registers.stp (_stp_register_regs): Update offsets.
(test_x86_gs): Auxiliary function.
* runtime/autoconf-x86-gs.c : New file.
* testsuite/systemtap.base/x86_gs.exp : New test case.
* testsuite/systemtap.base/x86_gs.stp : Ditto.
|
| |
| |
| |
| | |
* main.cxx (main): Make sure we run in our own process group.
|
| |
| |
| |
| |
| |
| | |
* testsuite/systemtap.base/sdt_types.c: New file.
* testsuite/systemtap.base/sdt_types.stp: New file.
* testsuite/systemtap.base/static_uprobes.exp: Use sdt_types for type testing.
|
| | |
|
| |
| |
| |
| | |
"oracle-enterprise.patch"
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
* tapsets.cxx (validate_elf): Reorganize glob matching for x86 and ppc.
|
| |
| |
| |
| |
| |
| | |
* tapsets.cxx (dwarf_query): Add has_mark.
(query_cu): Use for beginning of statement check.
(dwarf_builder::build): Set has_mark.
|
| | |
|
| | |
|
| |
| |
| |
| | |
the future
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
$data
* translate.cxx (dump_unwindsyms): Also emit STT_OBJECT symbols,
therefore .data etc. sections into stap-symbols.h.
* tapsets.cxx (iterate_over_modules): Omit a dwfl_getmodules()
RC-checking assertion that blocked meaningful $context var
error messages.
(dwflpp::emit_address): Bypass dwfl_module_relocate_address()
for kernel symbols as it has been unreliable; subtract sess.sym_stext
manually.
* testsuite/buildok/seventeen.stp: Extend test with module $global.
|
| | |
|
| |
| |
| |
| |
| | |
* stapfuncs.3stap.in: Add description for pid2task
and pid2execname.
|
| |
| |
| |
| |
| |
| | |
It may be potentially expensive to fork-exec a git call to get the HEAD
revision, and it's not clear whether it's even needed. We can always
throw this back on if we find a meaningful usage scenario.
|
| |
| |
| |
| |
| |
| | |
We had our own implementations of these which were triggering gcc
bug38480 in some particular cases. It's easier for us to use the
kernel's strlcpy and strlcat anyway, which avoids the bug.
|
| | |
|
| |
| |
| |
| |
| | |
To better support kernel developers who work out of a single source
tree, this adds the git HEAD revision to our caching hash.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For kernel developers, it may be common practice to reuse the same
kernel build tree for several kernel variants. Our previous hashing
only considered the release version, architecture, and build path, which
may all remain constant for such a developer.
This change adds the file size and mtime of several kernel version files
to the hash, so it should be a bit more robust against collisions.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
* runtime/staprun/staprun_funcs.c (check_path): Save fully
canonicalized and checked module path for later loading.
|
| |
| |
| |
| |
| | |
*configure.ac: Update help message for building with pie support.
*configure: Regenerate.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
*configure.ac: Change the default to compiling without fPIE.
*systemtap.spec: Add --enable-pie as the default option (set
pie_supported to 1).
*configure: Regenerated with autoconf 2.61.
|
| |
| |
| |
| | |
return != break
|
| | |
|
| | |
|