]> sourceware.org Git - systemtap.git/log
systemtap.git
14 years agoPR10551: cont'd
Frank Ch. Eigler [Sun, 23 Aug 2009 23:10:36 +0000 (19:10 -0400)]
PR10551: cont'd

* runtime/print.c (_stp_print_kernel_info): Also switch module_core->module_core_rx.

14 years agoPR10551: build compatibility for pax/grsecurity include/linux/module.h
Frank Ch. Eigler [Sun, 23 Aug 2009 22:18:21 +0000 (18:18 -0400)]
PR10551: build compatibility for pax/grsecurity include/linux/module.h

This patch adapts to patches such as:

diff -urNp linux-2.6.29.6/include/linux/module.h linux-2.6.29.6/include/linux/module.h
--- linux-2.6.29.6/include/linux/module.h       2009-07-02 19:41:20.000000000 -0400
+++ linux-2.6.29.6/include/linux/module.h       2009-07-30 17:59:26.175602427 -0400
@@ -278,16 +278,16 @@ struct module
        int (*init)(void);

        /* If this is non-NULL, vfree after init() returns */
-       void *module_init;
+       void *module_init_rx, *module_init_rw;

        /* Here is the actual code + data, vfree'd on unload. */
-       void *module_core;
+       void *module_core_rx, *module_core_rw;

        /* Here are the sizes of the init and core sections */
-       unsigned int init_size, core_size;
+       unsigned int init_size_rw, core_size_rw;

        /* The size of the executable code in each section.  */
-       unsigned int init_text_size, core_text_size;
+       unsigned int init_size_rx, core_size_rx;

* runtime/autoconf-grsecurity.c: New test.
* buildrun.cxx: Try it.
* runtime/print.c: Use it.

14 years agobuild fix: make buildable with elfutils < 0.142
Frank Ch. Eigler [Sun, 23 Aug 2009 22:15:01 +0000 (18:15 -0400)]
build fix: make buildable with elfutils < 0.142

* dwarf_wrappers.h, loc2c.c: Define DW_TAG_rvalue_reference_type=0x42
  for older elfutils.

14 years agoPR10461: Add support for C++ classes and references
Josh Stone [Sat, 22 Aug 2009 02:16:18 +0000 (19:16 -0700)]
PR10461: Add support for C++ classes and references

* dwarf_wrappers.cxx (dwarf_type_name): Name class and reference types.
* dwflpp.cxx (dwflpp::iterate_over_globals): Capture class names.
  (dwflpp::print_members): Permit classes, and dig into inheritance.
  (dwflpp::find_struct_member): Ditto.
  (dwflpp::translate_components): Handle classes and references.
  (dwflpp::translate_final_fetch_or_store): Ditto.
* loc2c.c (c_translate_pointer): Treat references as simple pointers.

14 years agoPR10507: tweak MAXUPROBES calculation to shrink table for small static number of...
Frank Ch. Eigler [Fri, 21 Aug 2009 21:16:13 +0000 (17:16 -0400)]
PR10507: tweak MAXUPROBES calculation to shrink table for small static number of probes

* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls): Use
  geometric mean rather than arithmetic mean.  Add a comment to explain
  relative harmlessness of exceeding the "minimum" or "maximum" values.

14 years agoPR10543: do module cache cleaning before copying new file into the cache
Frank Ch. Eigler [Fri, 21 Aug 2009 20:22:29 +0000 (16:22 -0400)]
PR10543: do module cache cleaning before copying new file into the cache

... otherwise the new stuff can get cleaned before use.

* cache.cxx (add_to_cache): Do clean_cache() first, not last.

14 years agoPR10544: clean up stap child process error handling
Frank Ch. Eigler [Fri, 21 Aug 2009 20:00:27 +0000 (16:00 -0400)]
PR10544: clean up stap child process error handling

* util.cxx (stap_system): Take extra verbosity value.  Standardize
  error handling / tracing.
* util.h: Corresponding changes.
* buildrun.cxx, main.cxx, modsign.cxx: Update callers.

14 years agocleanup: rename task_finder_target->pathname -> procname
Frank Ch. Eigler [Fri, 21 Aug 2009 17:29:50 +0000 (13:29 -0400)]
cleanup: rename task_finder_target->pathname -> procname

The previous name made it easy to misread the purpose of this
field.  It is only for matching executable names, not for
shared libraries.

* runtime/task_finder.c (task_finder_target): Rename field.
  (*): Adjust.
* tapset-itrace.cxx, tapset-utrace.cxx, tapsets.cxx, translate.cxx: Ditto.

14 years agoTwo minor testcase fixes.
David Smith [Thu, 20 Aug 2009 21:54:06 +0000 (16:54 -0500)]
Two minor testcase fixes.
* testsuite/systemtap.base/global_stat.exp: Improved error handling.
* testsuite/systemtap.base/strftime.exp: Ditto.

14 years ago* dtrace.in: Support -C, preprocess with cpp, which upstream postgres
Stan Cox [Thu, 20 Aug 2009 16:51:48 +0000 (12:51 -0400)]
* dtrace.in: Support -C, preprocess with cpp, which upstream postgres
  is now using.

14 years agoPR10537 process().function().label() should select multiple inlined instances.
Mark Wielaard [Thu, 20 Aug 2009 14:31:55 +0000 (16:31 +0200)]
PR10537 process().function().label() should select multiple inlined instances.

This is less useful than one would hope. gcc will often emit a label with
a DW_AT_low_pc that is not really in the neighbourhood of where one would
expect it when the label is inlined and gcc can proof the label isn't really
used in the optimized code. dwflpp::iterate_over_labels will now really
iterate recursively through the die, even for dies without a name (like
lexical blocks). This means we should now always find the concrete inlined
label instances that have a real DW_AT_low_pc and so we don't need the trick
to use the line table to get at the actual address.

* dwflpp.cxx (iterate_over_labels): Accept dies without a name. Don't handle
  labels without a name or without a lowpc attribute.
* testsuite/systemtap.base/inlinedvars.c (m): Trick gcc into thinking label
  is always used.
  (call, call2): Activate.
  (main): Call call and call2.
* testsuite/systemtap.base/inlinedvars.exp: New result_string.
  Test both unoptimized and optimized (inlined) builds.

14 years agoTwo minor testcase fixes.
David Smith [Thu, 20 Aug 2009 13:41:03 +0000 (08:41 -0500)]
Two minor testcase fixes.
* testsuite/systemtap.base/poll_map.exp: Improved error handling.
* testsuite/systemtap.base/postgres.exp: Fixed typo.

14 years agoPR10228: fix non-utrace building regression - cont'd
Wenji Huang [Thu, 20 Aug 2009 04:06:50 +0000 (00:06 -0400)]
PR10228: fix non-utrace building regression - cont'd

* runtime/task_finder.c (non-UTRACE): Return 0 for
  stap_start_task_finder.
* translate.cxx (emit_module_init): Let vma tracker
  specific to utrace.

14 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
Josh Stone [Thu, 20 Aug 2009 01:34:18 +0000 (18:34 -0700)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

14 years agoGive a more exact error for dereferencing void*
Josh Stone [Thu, 20 Aug 2009 01:23:32 +0000 (18:23 -0700)]
Give a more exact error for dereferencing void*

* dwflpp.cxx (dwflpp::translate_components): Check for void* deref.

14 years agoPR10538: Give a file:line hint for anonymous types
Josh Stone [Thu, 20 Aug 2009 01:19:53 +0000 (18:19 -0700)]
PR10538: Give a file:line hint for anonymous types

When we list the possible members for an anonymous struct/union, the
user may want to go look at the source for the type.  That's hard
without a type name, so we now list the decl file:line for them.

* dwflpp.cxx (dwflpp::translate_components): List file:line for anon.

14 years agoCreate a dwarf_attr_die idiom
Josh Stone [Thu, 20 Aug 2009 00:27:18 +0000 (17:27 -0700)]
Create a dwarf_attr_die idiom

We commonly do a dwarf_attr_integrate followed by dwarf_formref_die,
with no care for the Dwarf_Attribute, so I captured that idiom in an
inline function.

* dwarf_wrappers.h (dwarf_attr_die): New.
* dwarf_wrappers.cxx (dwarf_type_name): Call dwarf_attr_die.
* dwflpp.cxx (dwflpp::print_members): Ditto.
  (dwflpp::find_struct_member): Ditto.
* tapsets.cxx (dwarf_derived_probe::saveargs): Ditto.
  (uprobe_derived_probe::saveargs): Ditto.
  (resolve_tracepoint_arg_type): Ditto.
  (tracepoint_derived_probe::build_args): Ditto.

14 years agoUse dwarf_diename instead of a DW_AT_name lookup
Josh Stone [Thu, 20 Aug 2009 00:07:30 +0000 (17:07 -0700)]
Use dwarf_diename instead of a DW_AT_name lookup

We should always use the canonical dwarf_diename.  The code being
replaced here wasn't even using dwarf_attr_integrate, so it may have
been missing the accessibility of some names.

* dwflpp.cxx (dwflpp::iterate_over_labels): Use dwarf_diename.

14 years agoUse dwarf_type_name in more places
Josh Stone [Wed, 19 Aug 2009 23:48:53 +0000 (16:48 -0700)]
Use dwarf_type_name in more places

* dwarf_wrappers.cxx (dwarf_type_name): Moved here from tapsets.cxx, and
  added a variant that returns a string for easier ostreaming.
* dwflpp.cxx (dwflpp::print_members): Use dwarf_type_name for errors.
  (dwflpp::find_struct_member): Ditto.
  (dwflpp::translate_components): Ditto.
  (dwflpp::translate_final_fetch_or_store): Ditto.
  (dwflpp::literal_stmt_for_pointer): Ditto.
* tapsets.cxx (dwarf_derived_probe::saveargs): Pass die to
  dwarf_type_name by pointer instead of reference.
  (uprobe_derived_probe::saveargs): Ditto.
  (resolve_tracepoint_arg_type): Ditto.

14 years agoPR10538: Use {...} for naming anonymous types
Josh Stone [Wed, 19 Aug 2009 21:40:53 +0000 (14:40 -0700)]
PR10538: Use {...} for naming anonymous types

* tapsets.cxx (dwarf_type_name): Handle NULL dwarf_diename.

14 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
David Smith [Wed, 19 Aug 2009 21:02:26 +0000 (16:02 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

14 years agoUpdated with latest code.
David Smith [Wed, 19 Aug 2009 21:01:45 +0000 (16:01 -0500)]
Updated with latest code.
* runtime/transport/ring_buffer.c (_stp_ring_buffer_disable_cpu): New
  function.
  (_stp_ring_buffer_enable_cpu): Ditto.
  (_stp_ring_buffer_cpu_disabled): Ditto.
  (_stp_ring_buffer_empty_cpu): Only checks online cpus (instead of all
  possible cpus).
  (_stp_find_next_event): Ditto.
  (_stp_ring_buffer_iterator_increment): Calls
  _stp_ring_buffer_disable_cpu()/_stp_ring_buffer_enable_cpu() around
  ring_buffer_* calls.
  (_stp_ring_buffer_consume): Ditto.
  (_stp_peek_next_event): Ditto.
  (_stp_buffer_iter_finish): New function.
  (_stp_buffer_iter_start): Ditto.
  (_stp_data_read_trace): Uses
  _stp_buffer_iter_start()/_stp_buffer_iter_finish().
  (_stp_data_write_reserve): Checks to see if the cpu is disabled (with
  _stp_ring_buffer_cpu_disabled() before reserving memory.  Uses
  _stp_buffer_iter_start()/_stp_buffer_iter_finish().
  (_stp_transport_data_fs_init): Initializes buffer iterators.

14 years agoPR10538: Improve location lookup for unions
Josh Stone [Wed, 19 Aug 2009 20:30:31 +0000 (13:30 -0700)]
PR10538: Improve location lookup for unions

We had a bug that the starting call to find_struct_member used the same
memory for the parentdie and the resulting member.  If parentdie is a
union, then the first member probably won't have a location, and we
actually assert that it must be a union.  Since we wrote the result in
the same memory, we lost the real info about the parent, and so the
assertion failed.

* dwflpp.cxx (dwflpp::translate_components): Use distinct memory for the
  parent and resulting member in the call to find_struct_member.
  (dwflpp::find_struct_member): Remove the needless parentdie copy.

14 years ago* testsuite/systemtap.base/postgres.exp: New test for checking sdt
Stan Cox [Wed, 19 Aug 2009 20:11:09 +0000 (16:11 -0400)]
* testsuite/systemtap.base/postgres.exp: New test for checking sdt
  marker support as used by postgres.  Currently assumes, and
  verifies, that postgres is installed in /usr/local

14 years agoPR10228: fix non-utrace building regression
Frank Ch. Eigler [Wed, 19 Aug 2009 16:18:48 +0000 (12:18 -0400)]
PR10228: fix non-utrace building regression

* translate.cxx (dump_unwindsyms): Decide based on modname[] not
  mainfile[] to emit a vmcb.
* runtime/task_finder.c (non-UTRACE): Include dummy stap_{start,stop}_*
  functions.

14 years agoImproved testcase error handling.
David Smith [Wed, 19 Aug 2009 16:20:59 +0000 (11:20 -0500)]
Improved testcase error handling.
* testsuite/systemtap.base/arith.exp: Improved error handling.
* testsuite/systemtap.base/cmd_parse.exp: Ditto.

14 years agoImproved systemtap.printf/sharedbuf.exp testcase.
David Smith [Wed, 19 Aug 2009 15:15:21 +0000 (10:15 -0500)]
Improved systemtap.printf/sharedbuf.exp testcase.
* testsuite/systemtap.printf/sharedbuf.exp: Handles failure better and
  possible modpost warnings.

14 years agoFix typo in sdt_types.stp (missing newline).
Mark Wielaard [Wed, 19 Aug 2009 09:58:44 +0000 (11:58 +0200)]
Fix typo in sdt_types.stp (missing newline).

* testsuite/systemtap.base/sdt_types.stp (int_var): Add \n to printf.

14 years agoPR10495: allow multiple probe aliases with same name
Frank Ch. Eigler [Wed, 19 Aug 2009 00:12:57 +0000 (20:12 -0400)]
PR10495: allow multiple probe aliases with same name

* 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.

14 years agoAUTHORS update
Josh Stone [Tue, 18 Aug 2009 22:59:37 +0000 (15:59 -0700)]
AUTHORS update

14 years agoPR10512 STAP_PROBES don't work in c++ constructors/destructors testcase.
Mark Wielaard [Tue, 18 Aug 2009 21:03:00 +0000 (23:03 +0200)]
PR10512 STAP_PROBES don't work in c++ constructors/destructors testcase.

* testsuite/systemtap.base/cxxclass.exp: New file.
* testsuite/systemtap.base/cxxclass.stp: Likewise.
* testsuite/systemtap.base/cxxclass.cxx: Likewise.

14 years agoPR10512 Referencing computed goto labels in c++ constructors does work.
Mark Wielaard [Tue, 18 Aug 2009 20:08:51 +0000 (22:08 +0200)]
PR10512 Referencing computed goto labels in c++ constructors does work.

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.

14 years agoAdd testcase for PR10533 (inlined vars) and 10537 (inlined labels - disabled)
Mark Wielaard [Tue, 18 Aug 2009 20:01:53 +0000 (22:01 +0200)]
Add testcase for PR10533 (inlined vars) and 10537 (inlined labels - disabled)

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.

14 years agoPR10533 inlined vars are not always found (dwflpp).
Mark Wielaard [Tue, 18 Aug 2009 19:54:54 +0000 (21:54 +0200)]
PR10533 inlined vars are not always found (dwflpp).

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.

14 years agoPR10533 inlined vars are not always found (lo2c-test off-by-one).
Mark Wielaard [Tue, 18 Aug 2009 19:52:59 +0000 (21:52 +0200)]
PR10533 inlined vars are not always found (lo2c-test off-by-one).

* loc2c-test.c (handle_variable): Set inner to zero after
  calling dwarf_getscopes_die(), for loop will increase inner.

14 years agoPR10518: context shrinkage with function recursion analysis feeding MAXNESTING
Frank Ch. Eigler [Tue, 18 Aug 2009 19:52:02 +0000 (15:52 -0400)]
PR10518: context shrinkage with function recursion analysis feeding MAXNESTING

* 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.

14 years agoAdapt tracepoints to the new probe_locals union
Josh Stone [Tue, 18 Aug 2009 17:54:11 +0000 (10:54 -0700)]
Adapt tracepoints to the new probe_locals union

* 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.

14 years agoPR10516: reduce context size
Frank Ch. Eigler [Tue, 18 Aug 2009 16:26:26 +0000 (12:26 -0400)]
PR10516: reduce context size

* translate.cxx (emit_common_header): Emit probe locals into
  a separate union, not into the locals[] array.
  (emit_probe): Adapt.

14 years agoelfutils build tweak: run nested configure with bash, add -fgnu89-inline
Frank Ch. Eigler [Tue, 18 Aug 2009 15:37:27 +0000 (11:37 -0400)]
elfutils build tweak: run nested configure with bash, add -fgnu89-inline

* configure.ac: Tweak --with-elfutils nested configure invocation.
* rest of auto* files: regenerated with fedora-11 tools

14 years ago* dtrace.in: Honor the dirname for the output file.
Stan Cox [Tue, 18 Aug 2009 14:50:05 +0000 (10:50 -0400)]
* dtrace.in: Honor the dirname for the output file.
* testsuite/systemtap.base/dtrace.exp: New test.

14 years agoPR10533 loc2c doesn't resolve frame base correctly for inlined vars.
Mark Wielaard [Tue, 18 Aug 2009 13:50:40 +0000 (15:50 +0200)]
PR10533 loc2c doesn't resolve frame base correctly for inlined vars.

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.

14 years agoPrint DIE offsets in loc2c-test scope dumps.
Roland McGrath [Tue, 18 Aug 2009 09:27:38 +0000 (02:27 -0700)]
Print DIE offsets in loc2c-test scope dumps.

14 years agoUnlocks global variables, then calls _stp_print_flush().
David Smith [Mon, 17 Aug 2009 17:27:15 +0000 (12:27 -0500)]
Unlocks global variables, then calls _stp_print_flush().
* translate.cxx (c_unparser::emit_probe): Unlocks global variables, then
  calls _stp_print_flush() (instead of the other way around).

14 years agoCache failed tracepoint headers too
Josh Stone [Sat, 15 Aug 2009 00:56:46 +0000 (17:56 -0700)]
Cache failed tracepoint headers too

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.

14 years agoPR10228: use task_finder_vma for -d /user/object files.
Frank Ch. Eigler [Fri, 14 Aug 2009 02:53:44 +0000 (22:53 -0400)]
PR10228: use task_finder_vma for -d /user/object files.

* 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.

14 years agousability: don't suppress pass-4 compiler errors
Frank Ch. Eigler [Thu, 13 Aug 2009 20:04:56 +0000 (16:04 -0400)]
usability: don't suppress pass-4 compiler errors

... since a pass-4 compilation error is just as bad as pass-2 error.

* buildrun.cxx (run_make_cmd): Remove "2>&1".

14 years agoAdd missing quote for uname.tcl
Wenji Huang [Fri, 14 Aug 2009 05:51:36 +0000 (01:51 -0400)]
Add missing quote for uname.tcl

* testsuite/systemtap.exelib/uname.tcl: Add '"'.

14 years agoPR10507: tweak heuristics for stap_uprobes[] allocation
Frank Ch. Eigler [Wed, 12 Aug 2009 20:07:08 +0000 (16:07 -0400)]
PR10507: tweak heuristics for stap_uprobes[] allocation

* tapsets.cxx (uprobes::emit_module_decls): Compute MAXUPROBES
  with x-treme kl3v3rn3ss.
* stap.1.in: Clarify MAXUPROBES.

14 years agoPR10461: Probe identical functions only once
Josh Stone [Wed, 12 Aug 2009 00:01:35 +0000 (17:01 -0700)]
PR10461: Probe identical functions only once

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.

14 years agoDon't call dwarf_lowpc after dwarf_entrypc fails
Josh Stone [Tue, 11 Aug 2009 21:59:41 +0000 (14:59 -0700)]
Don't call dwarf_lowpc after dwarf_entrypc fails

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

14 years agoImproved context.exp error handling.
David Smith [Tue, 11 Aug 2009 22:08:47 +0000 (17:08 -0500)]
Improved context.exp error handling.
* 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.

14 years agoAdd 'unused' attribute to module_data and module_size arguments of check_permissions.
Dave Brolley [Tue, 11 Aug 2009 15:57:04 +0000 (11:57 -0400)]
Add 'unused' attribute to module_data and module_size arguments of check_permissions.

14 years agoexelib testcase now ensures uprobes.ko is up to date.
David Smith [Tue, 11 Aug 2009 13:40:49 +0000 (08:40 -0500)]
exelib testcase now ensures uprobes.ko is up to date.
* 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.

14 years agoRH516691. SSL typo in manpage.
Mark Wielaard [Tue, 11 Aug 2009 07:49:00 +0000 (09:49 +0200)]
RH516691. SSL typo in manpage.

* stap-server.8.in: Fix SLL typo to read SSL.

14 years agoAvoid assertion error for no matched function in statement probe
Wenji Huang [Mon, 10 Aug 2009 23:29:50 +0000 (19:29 -0400)]
Avoid assertion error for no matched function in statement probe

* dwflpp.cxx (iterate_over_functions): Return for NULL pointer.
* testsuite/systemtap.base/statement.exp: Add test case.

14 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
Josh Stone [Mon, 10 Aug 2009 22:17:35 +0000 (15:17 -0700)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

14 years agoPR10499: Integrate attributes in dwarf_decl_file/line
Josh Stone [Mon, 10 Aug 2009 21:48:39 +0000 (14:48 -0700)]
PR10499: Integrate attributes in dwarf_decl_file/line

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.

14 years agoSimplify _ELFUTILS_PREREQ checking
Josh Stone [Mon, 10 Aug 2009 20:01:30 +0000 (13:01 -0700)]
Simplify _ELFUTILS_PREREQ checking

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.

14 years agoMerge branch 'master' of ssh://mark@sourceware.org/git/systemtap
Mark Wielaard [Mon, 10 Aug 2009 16:28:40 +0000 (18:28 +0200)]
Merge branch 'master' of ssh://mark@sourceware.org/git/systemtap

14 years agoPR10506 experiment: use /sbin/insmod for uprobes.ko loading
Frank Ch. Eigler [Mon, 10 Aug 2009 16:13:31 +0000 (12:13 -0400)]
PR10506 experiment: use /sbin/insmod for uprobes.ko loading

* runtime/staprun/staprun.c (enable_uprobes): insmod, not insert_module().

14 years agoOnly add extra error on no probes found if no previous errors already shown.
Mark Wielaard [Mon, 10 Aug 2009 15:44:31 +0000 (17:44 +0200)]
Only add extra error on no probes found if no previous errors already shown.

* elaborate.cxx (semantic_pass): Don't add "no probes found" if session
  already had other errors.

14 years agoIt is not an error or warning if the local database of authorized signing
Dave Brolley [Mon, 10 Aug 2009 15:47:17 +0000 (11:47 -0400)]
It is not an error or warning if the local database of authorized signing
certificates does not exist. It just means that the signed module is untrusted.

14 years agoUse nop instructions without parameters on arm
Eugeniy Meshcheryakov [Sat, 8 Aug 2009 13:51:44 +0000 (15:51 +0200)]
Use nop instructions without parameters on arm

Fixes FTBFS, see
https://buildd.debian.org/fetch.cgi?pkg=systemtap;ver=0.9.9-1;arch=armel;stamp=1249664825

14 years agoZap dwarf_diename_integrate
Josh Stone [Sat, 8 Aug 2009 01:51:19 +0000 (18:51 -0700)]
Zap dwarf_diename_integrate

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.

14 years agoMake files executable
Eugeniy Meshcheryakov [Fri, 7 Aug 2009 14:40:18 +0000 (16:40 +0200)]
Make files executable

14 years agoDo not use plain [] in help string in configure.ac
Eugeniy Meshcheryakov [Fri, 7 Aug 2009 14:31:36 +0000 (16:31 +0200)]
Do not use plain [] in help string in configure.ac

This confuses Debian's automake.

14 years agoPR10486 Raise default MAXSTRINGLEN.
Mark Wielaard [Thu, 6 Aug 2009 22:01:04 +0000 (00:01 +0200)]
PR10486 Raise default MAXSTRINGLEN.

* 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.

14 years agoFix a couple of sdt_query reorg problems.
Stan Cox [Thu, 6 Aug 2009 20:20:39 +0000 (16:20 -0400)]
Fix a couple of sdt_query reorg problems.

* 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

14 years agoMerge branch 'master' of git://sources.redhat.com/git/systemtap
Dave Brolley [Thu, 6 Aug 2009 18:40:20 +0000 (14:40 -0400)]
Merge branch 'master' of git://sources.redhat.com/git/systemtap

14 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
David Smith [Thu, 6 Aug 2009 18:36:37 +0000 (13:36 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

14 years agoWorks with or without a ring_buffer_iter.
David Smith [Thu, 6 Aug 2009 18:35:11 +0000 (13:35 -0500)]
Works with or without a ring_buffer_iter.
* 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().

14 years agoMerge branch 'master' of git://sources.redhat.com/git/systemtap
Dave Brolley [Thu, 6 Aug 2009 18:35:08 +0000 (14:35 -0400)]
Merge branch 'master' of git://sources.redhat.com/git/systemtap

14 years agoFix missing strlen compile error.
Stan Cox [Thu, 6 Aug 2009 18:27:48 +0000 (14:27 -0400)]
Fix missing strlen compile error.

StapParser.cxx (#include cstring): New.

14 years ago2009-08-06 Dave Brolley <brolley@redhat.com>
Dave Brolley [Thu, 6 Aug 2009 16:25:50 +0000 (12:25 -0400)]
2009-08-06  Dave Brolley  <brolley@redhat.com>

        * modverify.c (staprun.h): #include it.
        (verify_it): Now accepts module data and signature data as arguments.
        Don't open and read the signature here. Don't read the module here.
        (verify_module): Now accepts module data as argument. Read the signature

        once here.
        * modverify.h (verify_module): Now accepts module data as argument.
        * staprun.c (main): Don't call check_permissions here.
        * staprun.h (check_permissions): Prototype removed.
        * staprun_funcs.c (check_permissions): Now static. Accepts module data
        as argument. Pass module data to check_signature.
        (insert_module): Canonicalize the module path early here. Call
        check_permissions here, passing it the mapped module data.
        (check_signature): Now accepts module data as argument. Pass the module
        data to verify_module.
        (check_path): Use the already-canonicalized module path.

14 years agoRH515870 Error message about missing module uprobes when updating.
Mark Wielaard [Thu, 6 Aug 2009 15:46:27 +0000 (17:46 +0200)]
RH515870 Error message about missing module uprobes when updating.

Fix 3>&1 typo.

* systemtap.spec: Use 2>&1 to redirect error messages.

14 years agoPR10294: support wider range for statement probe
Wenji Huang [Thu, 6 Aug 2009 02:58:46 +0000 (22:58 -0400)]
PR10294: support wider range for statement probe

* 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.

14 years agoPR10491 Don't assign to REG_IP if it isn't an lvalue (s390 and ia64).
Mark Wielaard [Thu, 6 Aug 2009 08:41:46 +0000 (10:41 +0200)]
PR10491 Don't assign to REG_IP if it isn't an lvalue (s390 and ia64).

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.

14 years agoRemove as_root calls from the printf testsuite
Josh Stone [Thu, 6 Aug 2009 00:56:44 +0000 (17:56 -0700)]
Remove as_root calls from the printf testsuite

Once upon a time, we would use sudo staprun, and so output files from
"-o" were owned by root.  For a while now we've used a setuid staprun
instead, and the output files are created by stapio as the user.  Thus,
we don't need as_root to remove those files anymore.

* testsuite/systemtap.printf/end1b.exp: Clean up without as_root.
* testsuite/systemtap.printf/mixed_outb.exp: Ditto.
* testsuite/systemtap.printf/out1b.exp: Ditto.
* testsuite/systemtap.printf/out2b.exp: Ditto.
* testsuite/systemtap.printf/out3b.exp: Ditto.

14 years agoDon't spawn uprobes tests with sudo
Josh Stone [Wed, 5 Aug 2009 23:55:24 +0000 (16:55 -0700)]
Don't spawn uprobes tests with sudo

Using spawn with sudo doesn't work well, because the password prompt
won't go to the correct TTY.  The only reason that the uprobes tests
needed to do this is so uprobes.ko could be built as root.  Now instead,
I've added a pre-check that will directly call the uprobes make with
sudo (via the as_root proc).

* testsuite/lib/systemtap.exp (uprobes_p): Check and build uprobes.ko.
* testsuite/systemtap.base/uprobes.exp: Use uprobes_p; don't spawn sudo.
* testsuite/systemtap.base/bz6850.exp: Ditto.
* testsuite/systemtap.base/bz10078.exp: Ditto.
* testsuite/systemtap.base/bz6905.exp: sudo isn't needed for -p2.

14 years agoFix compile error when not HAVE_NSS with staprun.
Maran [Wed, 5 Aug 2009 13:36:01 +0000 (15:36 +0200)]
Fix compile error when not HAVE_NSS with staprun.

* runtime/staprun/staprun_funcs.c (check_permissions): Declare
  check_signature_rc outside HAVE_NSS block.

Signed-off-by: Mark Wielaard <mjw@redhat.com>
14 years agoMerge branch 'release'
Josh Stone [Wed, 5 Aug 2009 04:09:18 +0000 (21:09 -0700)]
Merge branch 'release'

14 years agoVersion bumps for the 0.9.9 release release-0.9.9
Josh Stone [Wed, 5 Aug 2009 00:42:09 +0000 (17:42 -0700)]
Version bumps for the 0.9.9 release

14 years agoFix grapher compilation warnings from rpm build
Josh Stone [Wed, 5 Aug 2009 03:29:51 +0000 (20:29 -0700)]
Fix grapher compilation warnings from rpm build

* grapher/Graph.cxx (Graph::Graph): Initialize in declaration order.
* grapher/GraphWidget.cxx (GraphWidget::on_expose_event): Remove several
  unused local variables.

14 years agoMerge branch 'master' of git://sources.redhat.com/git/systemtap
Dave Brolley [Tue, 4 Aug 2009 23:19:31 +0000 (19:19 -0400)]
Merge branch 'master' of git://sources.redhat.com/git/systemtap

14 years agoAdd NEWS about unprivileged user support
Dave Brolley [Tue, 4 Aug 2009 23:19:09 +0000 (19:19 -0400)]
Add NEWS about unprivileged user support

14 years agoAdd many more NEWS entries for recent features
Josh Stone [Tue, 4 Aug 2009 22:52:08 +0000 (15:52 -0700)]
Add many more NEWS entries for recent features

14 years agoRename and package the grapher
Josh Stone [Tue, 4 Aug 2009 22:11:44 +0000 (15:11 -0700)]
Rename and package the grapher

* grapher/Makefile.am: Rename the binary to stapgraph.
* grapher/Makefile.in: Regen.
* systemtap.spec: Add a -grapher subpackage.

14 years agoAdd NEWS on stapgraph
Tim Moore [Tue, 4 Aug 2009 21:57:10 +0000 (23:57 +0200)]
Add NEWS on stapgraph

14 years agoAdd NEWS on DW_OP_call_frame_CFA, uprobes/ustack, .probes and statement().
Mark Wielaard [Tue, 4 Aug 2009 20:52:43 +0000 (22:52 +0200)]
Add NEWS on DW_OP_call_frame_CFA, uprobes/ustack, .probes and statement().

14 years agoAdd #include and casting to allow compilations of grapher on RHEL5.
William Cohen [Tue, 4 Aug 2009 18:00:07 +0000 (14:00 -0400)]
Add #include and casting to allow compilations of grapher on RHEL5.

14 years agoMerge branch 'master' of git://sources.redhat.com/git/systemtap
Dave Brolley [Tue, 4 Aug 2009 16:35:41 +0000 (12:35 -0400)]
Merge branch 'master' of git://sources.redhat.com/git/systemtap

Conflicts:

cache.cxx

14 years agoAdd update_visitor::replace
Josh Stone [Mon, 3 Aug 2009 22:49:40 +0000 (15:49 -0700)]
Add update_visitor::replace

I noticed that most uses of update_visitor::require() were simply
writing the value back to the same place, i.e. foo = require(foo).  The
new replace() method just encapsulates that paradigm, so we don't have
the duplication between the LHS and RHS.

* staptree.h (update_visitor::replace): New.
* elaborate.cxx, staptree.cxx, tapset-mark.cxx, tapset-perfmon.cxx,
  tapset-procfs.cxx, tapset-utrace.cxx, tapsets.cxx: Update all require
  calls that are simply updating the value in-place.

14 years agoStrengthen the template types in update_visitor
Josh Stone [Mon, 3 Aug 2009 22:20:19 +0000 (15:20 -0700)]
Strengthen the template types in update_visitor

* staptree.h (update_visitor::require, provide): Make the parameters and
  return values a T*, to make it explicit that we want pointer types.

14 years agoMerge branch 'array_index'
Josh Stone [Mon, 3 Aug 2009 22:16:09 +0000 (15:16 -0700)]
Merge branch 'array_index'

14 years agoPR2049: support arbitrary $target-array indexing
Josh Stone [Mon, 3 Aug 2009 21:45:21 +0000 (14:45 -0700)]
PR2049: support arbitrary $target-array indexing

Rather than just numeric literals, we can now support arbitrary
expressions for the index value.  Note that loc2c won't allow this for
noncontiguous arrays, as the access methods need to be statically
computed, but for contiguous arrays and pointers-as-arrays it works
just fine.

* staptree.h (target_symbol::component): Add expression_array_index.
* staptree.cxx (target_symbol::visit_components): New helper.
  (target_symbol::assert_no_components): Recognize new array type.
  (target_symbol::component::print): Print subexpressions.
  (traversing_visitor::visit_target_symbol, visit_cast_op): Visit the
  indexing components too.
  (varuse_collecting_visitor::visit_target_symbol): Ditto.
  (update_visitor::visit_target_symbol, visit_cast_op): Ditto.
* elaborate.cxx (void_statement_reducer::visit_target_symbol): New.
  (void_statement_reducer::visit_cast_op): Save indexes too.
* parse.cxx (parser::parse_target_symbol_components): Parse expressions.
* tapsets.cxx (dwarf_var_expanding_visitor::visit_target_symbol): Pass
  expression-indexes as parameters (indexN) to the dwarf function.
  (dwarf_cast_expanding_visitor::visit_cast_op): Ditto.
  (tracepoint_var_expanding_visitor::visit_target_symbol_arg): Ditto.
  (sdt_var_expanding_visitor::visit_target_symbol): Visit the new @cast.
* dwflpp.cxx (dwflpp::translate_components): Use THIS->indexN.
* translate.cxx (c_unparser::visit_target_symbol): Correct error msg.
* testsuite/systemtap.base/pointer_array.stp: Use a simple index.

14 years agoPR10475: ensure that loc2c can find its array size
Josh Stone [Mon, 3 Aug 2009 21:20:46 +0000 (14:20 -0700)]
PR10475: ensure that loc2c can find its array size

* loc2c.c (array_stride): iterate DIEs past typedef/const/volatile

14 years agoMake sure we pick up our own sdt.h, not the (maybe not installed) system one.
Mark Wielaard [Mon, 3 Aug 2009 15:02:03 +0000 (17:02 +0200)]
Make sure we pick up our own sdt.h, not the (maybe not installed) system one.

* Makefile.am (AM_CPPFLAGS): Add -I$(srcdir)/includes.
* Makefile.in: Regenerated.

14 years agoUnify no-component assertions on target variables
Josh Stone [Sat, 1 Aug 2009 00:24:13 +0000 (17:24 -0700)]
Unify no-component assertions on target variables

There are several tapsets that can't deal with component dereferences on
their target variables, and they all check-and-throw in the same way.
This refactors the checks into a target_symbol member.

* staptree.cxx (target_symbol::assert_no_components): New.
* tapsets.cxx (tracepoint_var_expanding_visitor::visit_target_symbol_arg,
  tracepoint_var_expanding_visitor::visit_target_symbol_context): Use
  the new assertion function to check for no components.
* tapset-mark.cxx (mark_var_expanding_visitor::visit_target_symbol_arg,
  mark_var_expanding_visitor::visit_target_symbol_context): Ditto.
* tapset-perfmon.cxx (perfmon_var_expanding_visitor::visit_target_symbol): Ditto.
* tapset-procfs.cxx (procfs_var_expanding_visitor::visit_target_symbol): Ditto.
* tapset-utrace.cxx (utrace_var_expanding_visitor::visit_target_symbol_arg,
  utrace_var_expanding_visitor::visit_target_symbol_context): Ditto.

14 years agoMake a real type for target_symbol->components
Josh Stone [Sat, 1 Aug 2009 00:00:09 +0000 (17:00 -0700)]
Make a real type for target_symbol->components

Now the dereferences on target_symbol and cast_op are tracked with a
struct instead of just a generic pair.  The first immediate benefit is
that we can track the token for more exact error reporting.

* staptree.h (target_symbol): Add a new component type.
* staptree.cxx (target_symbol::component::print): New.
  (operator<<(ostream&, target_symbol::component&): New.
  (target_symbol::print): Adapt component printing.
  (cast_op::print): Ditto.
* parse.cxx (parser::parse_target_symbol_components): Adapt to the new
  component construction.
* dwflpp.cxx (dwflpp::find_struct_member): take the component as a
  parameter for a better token in error messages
  (dwflpp::translate_components): Adapt to the new component type.
* tapsets.cxx (dwarf_var_expanding_visitor::visit_target_symbol): Don't
  overwrite the token in target_symbol saved errors.
  (tracepoint_var_expanding_visitor::visit_target_symbol_arg): Ditto.

14 years agoRefactor parser for target_symbol->components
Josh Stone [Fri, 31 Jul 2009 20:46:54 +0000 (13:46 -0700)]
Refactor parser for target_symbol->components

The components were being parsed for both target_symbols and cast_ops,
so this change refactors that code into a single function.

* parse.cxx (parser::parse_target_symbol_components): New.
  (parser::parse_symbol): Use the new function.

This page took 0.066946 seconds and 5 git commands to generate.