| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
| |
* testsuite/systemtap.printf/sharedbuf.exp: Handles failure better and
possible modpost warnings.
|
|
|
|
| |
* testsuite/systemtap.base/sdt_types.stp (int_var): Add \n to printf.
|
|
|
|
|
|
|
|
| |
* elaborate.cxx (match_node::bind): Change ->end to ->ends[] vector.
(find_and_build,build_no_more): Iterate over ends[].
* elaborate.h: Corresponding changes.
* testsuite/semok/thirtyfour.stp: New test.
* NEWS, doc/langref.tex: Note this.
|
| |
|
|
|
|
|
|
| |
* testsuite/systemtap.base/cxxclass.exp: New file.
* testsuite/systemtap.base/cxxclass.stp: Likewise.
* testsuite/systemtap.base/cxxclass.cxx: Likewise.
|
|
|
|
|
|
|
|
| |
PR10533 inlined vars are not always found was fixed which means we
no longer need to prevent inlining of the STAP_PROBE macros.
* includes/sys/sdt.h (STAP_UNINLINE_LABEL): Removed.
(STAP_PROBE[1-9]_): Remove label: and STAP_UNINLINE_LABEL.
|
|
|
|
|
|
|
|
|
|
| |
Partial testcase for PR10533 (inlined vars) and 10537 (inlined labels)
currently we cannot use the full testcase since stap doesn't support
probing multiple instances of inlined labels.
* testsuite/systemtap.base/inlinedvars.exp: New file.
* testsuite/systemtap.base/inlinedvars.stp: Likewise.
* testsuite/systemtap.base/inlinedvars.c: Likewise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
dwflpp::find_variable_and_frame_base switched too early to "pyshical view"
of die tree. We need to lookup the var in the "syntactical view" of the die
tree first. Then when we see a DW_TAG_inlined_subroutine while walking the
syntactical die tree as returned by dwarf_getscopes for a given variable
to retrieve the frame base, then we need to switch to walking the physical
die tree where the subroutine is inlined.
* dwflpp.cxx (find_variable_and_frame_base): Don't immediately go to
die_scopes, but lookup var first based on pc. Then switch "die branches"
when searching for frame base and a DW_TAG_inlined_subroutine is
encountered.
|
|
|
|
|
| |
* loc2c-test.c (handle_variable): Set inner to zero after
calling dwarf_getscopes_die(), for loop will increase inner.
|
|
|
|
|
|
|
|
| |
* translate.cxx (emit_common_header, translate_pass): Use new
recursion_info visitor to calculate appropriate MAXNESTING value for
scripts with or without recursion.
* tapsets.cxx (common_probe_entryfn_prologue): Initialize c->nesting = -1.
* stap.1.in: Clarify MAXNESTING value.
|
|
|
|
|
|
|
| |
* tapsets.cxx (tracepoint_derived_probe_group::emit_module_decls): Use
probe_locals to set the tracepoint arguments for the probe.
* testsuite/systemtap.base/tracepoints.exp: Include the arguments in the
pass-4 tracepoint test.
|
|
|
|
|
|
| |
* translate.cxx (emit_common_header): Emit probe locals into
a separate union, not into the locals[] array.
(emit_probe): Adapt.
|
|
|
|
|
| |
* configure.ac: Tweak --with-elfutils nested configure invocation.
* rest of auto* files: regenerated with fedora-11 tools
|
|
|
|
| |
* testsuite/systemtap.base/dtrace.exp: New test.
|
|
|
|
|
|
|
|
|
|
| |
When we see a DW_TAG_inlined_subroutine while walking the syntactical
die tree as returned by dwarf_getscopes for a given variable to retrieve
the frame base, then we need to switch to walking the physical die tree
where the subroutine is inlined.
* loc2c-test.c (handle_variable): Switch "die branches" when searching
for frame base and a DW_TAG_inlined_subroutine is encountered.
|
| |
|
|
|
|
|
| |
* translate.cxx (c_unparser::emit_probe): Unlocks global variables, then
calls _stp_print_flush() (instead of the other way around).
|
|
|
|
|
|
|
|
|
|
| |
Rather than re-attempting a tracepoint header that fails to compile, we
now save an empty file into the cache to indicate "nothing to see here."
See also PR10424.
* tapsets.cxx (tracepoint_builder::get_tracequery_module): Use /dev/null
as the empty result file if make_tracequery fails.
(tracepoint_builder::init_dw): Ignore empty tracequery modules.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* main.cxx (main): For "-d /path" arguments, enable task finder.
* runtime/sym.h (_stp_module): Add *vmcb member.
* task_finder{.cxx,.h} (emit_vma_callback_probe_decl): Zap.
* tapset-itrace.cxx, tapset-utrace.cxx: Use unwindsyms_modules
instead.
* tapsets.cxx (uprobe::emit_module_decls): Ditto.
* translate.cxx (emit_module_init): Emit task finder registrations
for vmcb's associated with _stp_modules.
(dump_unwindsyms): Associate vmcbs with user-space unwindsyms entries.
|
|
|
|
|
|
| |
... since a pass-4 compilation error is just as bad as pass-2 error.
* buildrun.cxx (run_make_cmd): Remove "2>&1".
|
|
|
|
| |
* testsuite/systemtap.exelib/uname.tcl: Add '"'.
|
|
|
|
|
|
| |
* tapsets.cxx (uprobes::emit_module_decls): Compute MAXUPROBES
with x-treme kl3v3rn3ss.
* stap.1.in: Clarify MAXUPROBES.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In C++ especially, a function definition in a header may be compiled
into multiple CUs, but the linker will merge those into a single output
function. We don't want to place multiple probes on the same function.
The dupe-detection from the alias code (commit 1c6b77e5) already tracks
identical functions within a CU, so I've just lifted this to instead
track function entrypcs at the module level.
* dwflpp.cxx (dwflpp::iterate_over_functions): Remove dupe checks.
* tapsets.cxx (dwarf_query): Add alias_dupes set to the query.
(dwarf_query::handle_query_module): Reset the dupes for each module.
(query_dwarf_func): Check that we only probe each entrypc once.
|
|
|
|
|
|
|
|
| |
The implementation of dwarf_entrypc already checks for _lowpc, so it's
redundant for us to attempt a _lowpc call too.
* dwflpp.cxx (dwflpp::function_entrypc): Remove XXX comment.
(dwflpp::die_entrypc): Don't bother with _lowpc if _entrypc fails
|
|
|
|
|
|
|
|
|
|
| |
* testsuite/systemtap.context/context.exp: Makes sure errors are output to
the log file. Also, a Makefile is copied with 'cp -p' to avoid make
erroring out if the Makefile's date is in the future (as can be the case
if running the test over nfs).
* testsuite/systemtap.context/args.tcl: Makes sure 'close' errors are
ignored.
* testsuite/systemtap.context/backtrace.tcl: Ditto.
|
|
|
|
| |
check_permissions.
|
|
|
|
|
|
|
|
|
| |
* testsuite/systemtap.exelib/cleanup.tcl: Makes sure uprobes.ko is up to
date.
* testsuite/systemtap.exelib/lib.tcl: Ditto.
* testsuite/systemtap.exelib/mark.tcl: Ditto.
* testsuite/systemtap.exelib/uname.tcl: Ditto.
* testsuite/systemtap.exelib/ustack.tcl: Ditto.
|
|
|
|
| |
* stap-server.8.in: Fix SLL typo to read SSL.
|
|
|
|
|
| |
* dwflpp.cxx (iterate_over_functions): Return for NULL pointer.
* testsuite/systemtap.base/statement.exp: Add test case.
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | | |
* runtime/staprun/staprun.c (enable_uprobes): insmod, not insert_module().
|
| |/
| |
| |
| |
| | |
* elaborate.cxx (semantic_pass): Don't add "no probes found" if session
already had other errors.
|
| |
| |
| |
| | |
certificates does not exist. It just means that the signed module is untrusted.
|
| |
| |
| |
| |
| | |
Fixes FTBFS, see
https://buildd.debian.org/fetch.cgi?pkg=systemtap;ver=0.9.9-1;arch=armel;stamp=1249664825
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Elfutils prior to 0.143 didn't use attr_integrate when looking up the
decl_file or decl_line, so the attributes would sometimes be missed.
For those old versions, we define custom implementations to do the
integration.
* dwarf_wrappers.cxx (dwarf_decl_file_integrate): New.
(dwarf_decl_line_integrate): New.
* dwarf_wrappers.h: Add macros to redirect calls to the above functions.
* dwflpp.cxx (dwflpp::iterate_over_labels): Replace a manual attribute
lookup that is the same as dwarf_decl_line.
|
| |
| |
| |
| |
| |
| |
| | |
We were jumping through a few hoops to deal with elfutils < 0.138 that
did not have the _ELFUTILS_PREREQ macro. I've added an always-false
dummy macro to take its place when it doesn't exit. All of the other
"#ifdef _ELFUTILS_PREREQ" ugliness can now go away.
|
|/
|
|
|
|
| |
The dwarf_diename in elfutils learned a long time ago to use
dwarf_attr_integrate when looking up the name. Our minimum elfutils
0.126 has this, so we don't need to kludge it ourselves.
|
| |
|
|
|
|
| |
This confuses Debian's automake.
|
|
|
|
|
|
|
|
| |
* translate.cxx (translate_pass): Raise MAXSTRINGLEN to 256 for 32bit arches
and to 512 for 64bit arches.
* testsuite/systemtap.context/backtrace.tcl: Don't set MAXSTRINGLEN.
* testsuite/systemtap.exelib/ustack.tcl: Likewise.
* testsuite/systemtap.string/str_replace.exp: Explicitly set MAXSTRINGLEN.
|
|
|
|
|
|
|
| |
* tapsets.cxx (sdt_query::handle_query_module): For uprobe probes:
1) find all same named probes to handle multiple probes per module
2) use new_base for uprobe probes to handle $$name
* sdt_misc.exp: Test $$name
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* runtime/transport/ring_buffer.c (_stp_find_next_event): Works with or
without a ring_buffer iterator.
(_stp_find_next_event): Ditto.
(_stp_data_read_trace): Ifdef'ed out using ring_buffer iterators.
(_stp_get_iterator): New function.
(_stp_data_write_reserve): Calls _stp_get_iterator().
|
|\ \ \
| | |/
| |/| |
|
| |/
| |
| |
| | |
StapParser.cxx (#include cstring): New.
|
| |
| |
| |
| |
| |
| | |
Fix 3>&1 typo.
* systemtap.spec: Use 2>&1 to redirect error messages.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* dwflpp.cxx (iterate_over_srcfile_lines): Add pattern parameter.
* dwflpp.h (iterate_over_srcfile_lines): Ditto.
* testsuite/systemtap.base/bz10294.c: Test case.
* testsuite/systemtap.base/bz10294.stp: Ditto.
* testsuite/systemtap.base/bz6905.exp: Deleted.
* testsuite/systemtap.base/statement.exp: Merge bz10294 with bz6905.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
To fixup REG_IP to show the correct value after a [ku]probe trap we
assigned the address of the actual instruction pointer of the probed
instruction. That doesn't work on architectures, s390 and ia64, where
REG_IP is not a simple lvalue. Just don't try to fixup the address in
those cases. If this isn't enough, the uprobe_stmt_num.exp testcase
will point this out.
* runtime/regs.h: Define REG_IP_LVALUE for x86_64, i386, powerpc64 and arm.
* tapsets.cxx (dwarf_derived_probe_group::emit_module_decls): Only fixup
REG_IP when REG_IP_LVALUE is defined.
(uprobe_derived_probe_group::emit_module_decls): Likewise.
(kprobe_derived_probe_group::emit_module_decls): Likewise.
|