]> sourceware.org Git - systemtap.git/log
systemtap.git
11 years agostapregex cleanup: clarify some of the TODOXXX
Serguei Makarov [Fri, 5 Apr 2013 18:43:45 +0000 (14:43 -0400)]
stapregex cleanup: clarify some of the TODOXXX

11 years agostapregex cleanup: explanatory comment for (lack of) const_folder::visit_regex_query
Serguei Makarov [Fri, 5 Apr 2013 16:15:02 +0000 (12:15 -0400)]
stapregex cleanup: explanatory comment for (lack of) const_folder::visit_regex_query

11 years agostapregex cleanup: clarify void_statement_reducer::visit_regex_query behaviour
Serguei Makarov [Fri, 5 Apr 2013 16:11:40 +0000 (12:11 -0400)]
stapregex cleanup: clarify void_statement_reducer::visit_regex_query behaviour

11 years agostapregex cleanup: properly set rc after gen_dfa_table()
Serguei Makarov [Fri, 5 Apr 2013 15:55:20 +0000 (11:55 -0400)]
stapregex cleanup: properly set rc after gen_dfa_table()

11 years agostapregex cleanup: ditch redundant regex_query::re field in favour of dynamic_cast...
Serguei Makarov [Fri, 5 Apr 2013 15:39:26 +0000 (11:39 -0400)]
stapregex cleanup: ditch redundant regex_query::re field in favour of dynamic_cast<...> use

11 years agoAdd buildok testcase for rcu.stp.
David Smith [Wed, 29 May 2013 14:36:42 +0000 (09:36 -0500)]
Add buildok testcase for rcu.stp.

11 years agoCheck for a valid address in rcu_dereference().
David Smith [Wed, 29 May 2013 14:31:46 +0000 (09:31 -0500)]
Check for a valid address in rcu_dereference().

* tapset/linux/rcu.stp: Call kderef() to make sure the address is safe to
  read.

11 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
David Smith [Tue, 28 May 2013 21:43:22 +0000 (16:43 -0500)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

11 years agoFix PR15543 by fixing the 'servername' convenience variables in the rpc tapset.
David Smith [Tue, 28 May 2013 21:42:03 +0000 (16:42 -0500)]
Fix PR15543 by fixing the 'servername' convenience variables in the rpc tapset.

* tapset/linux/rpc.stp: Handle kernel change that moves the 'cl_server'
  field of the 'rpc_clnt' structure into the 'rpc_xprt' structure.
* tapset/linux/rcu.stp: New file.

11 years agoPR14454: search for the full path to a module, not only for the module name
Martin Lazar [Tue, 28 May 2013 19:16:42 +0000 (15:16 -0400)]
PR14454: search for the full path to a module, not only for the module name

11 years agoRemove a direct include of rwlock.h which fail on a kernel with the RT patches
Raphaël Beamonte [Tue, 28 May 2013 01:45:55 +0000 (21:45 -0400)]
Remove a direct include of rwlock.h which fail on a kernel with the RT patches

The file linux/rwlock.h should not be included directly as stated by
an #error message at the 5th line of the file. With a RT patched
kernel, linux/rwlock_rt.h should be included instead of linux/rwlock.h.
The file linux/spinlock.h already do the proper check. We then should
let the include be done by this file.

Signed-off-by: Raphaël Beamonte <raphael.beamonte@gmail.com>
Signed-off-by: Yannick Brosseau <yannick.brosseau@gmail.com>
11 years agoPR14440: made usage of pfiles.stp and plimit.stp more consistent
Jonathan Lebon [Mon, 27 May 2013 20:43:20 +0000 (16:43 -0400)]
PR14440: made usage of pfiles.stp and plimit.stp more consistent

Added support for plimit.stp to accept a target PID through both -x and
$1, just like in pfiles.stp. Also removed the //bin/true hack from
pfiles.stp and '#!/usr/bin/env stap' from plimit.stp so that both of
them must be run using stap -g.

11 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
Lukas Berk [Mon, 27 May 2013 19:25:02 +0000 (15:25 -0400)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

11 years agoRework xvfb-run check and invocation, update autoconf generated files
Lukas Berk [Mon, 27 May 2013 19:24:07 +0000 (15:24 -0400)]
Rework xvfb-run check and invocation, update autoconf generated files

11 years agopfiles.stp: explain use of //bin/true hack
Frank Ch. Eigler [Mon, 27 May 2013 18:36:50 +0000 (14:36 -0400)]
pfiles.stp: explain use of //bin/true hack

11 years agoAdd xvfb-run workaround for docs generation
Lukas Berk [Mon, 27 May 2013 18:35:10 +0000 (14:35 -0400)]
Add xvfb-run workaround for docs generation

*configure.ac: add AC_PROG_CHECK for xvfb-run
*doc/beginners/Makefile.am: exec xvfb-run -a publican ...
*systemtap.spec: add buildrequires line for building stap

11 years agoPR15525: removed duplicate O_CLOEXEC flag check
Jonathan Lebon [Mon, 27 May 2013 15:00:01 +0000 (11:00 -0400)]
PR15525: removed duplicate O_CLOEXEC flag check

The O_CLOEXEC flag was being checked twice, which caused it to be
printed out twice in the flag string when present. The duplication
was removed and the flags were put back in alphabetical order (same
order as in `man 2 open`) to ensure this does not happen again.

11 years agocodegen optimization: for foo <<< N, don't use explicit temporary for the N value
Frank Ch. Eigler [Mon, 27 May 2013 15:14:25 +0000 (11:14 -0400)]
codegen optimization: for foo <<< N, don't use explicit temporary for the N value

11 years agoChange use of jps to ps and stop bmsubmit recursion issue
Lukas Berk [Mon, 27 May 2013 14:09:04 +0000 (10:09 -0400)]
Change use of jps to ps and stop bmsubmit recursion issue

*java/stapbm.in: we can make use of ps instead of jps as the java
 name we're looking for is also passed as an argument
 to java and this avoids starting another java proc
 also add a lockfile to bmsubmit via rulename to stop
 further recursion

11 years agoman stap: fixed typos
Jonathan Lebon [Fri, 24 May 2013 21:21:30 +0000 (17:21 -0400)]
man stap: fixed typos

11 years agoREADME.security: typo
Jonathan Lebon [Fri, 24 May 2013 17:59:49 +0000 (13:59 -0400)]
README.security: typo

11 years agotraceio.stp example: check for negative $return
Jonathan Lebon [Fri, 24 May 2013 14:33:06 +0000 (10:33 -0400)]
traceio.stp example: check for negative $return

The I/O reads and writes should only be counted when $return is
nonnegative. A negative $result occurs if an error was met (e.g.
EAGAIN = -11).

We could have instead here used the bytes_read/written variables
provided by the tapset, but this example demonstrates the use of
local vars and is also consistent with the disktop.stp example.

11 years agonew sample: thread-business.stp
Frank Ch. Eigler [Fri, 24 May 2013 17:18:13 +0000 (13:18 -0400)]
new sample: thread-business.stp

11 years agoregen samples index
Frank Ch. Eigler [Fri, 24 May 2013 02:03:20 +0000 (22:03 -0400)]
regen samples index

11 years agoexamples: add pf4.{stp,meta}
Frank Ch. Eigler [Fri, 24 May 2013 02:02:27 +0000 (22:02 -0400)]
examples: add pf4.{stp,meta}

11 years agoUpdated doc info about utrace/uprobe for newer kernels
Jonathan Lebon [Thu, 23 May 2013 19:03:36 +0000 (15:03 -0400)]
Updated doc info about utrace/uprobe for newer kernels

11 years agoFixed typos
Jonathan Lebon [Wed, 22 May 2013 15:25:55 +0000 (11:25 -0400)]
Fixed typos

11 years agoman/Makefile.in: regenerate
Timo Juhani Lindfors [Wed, 22 May 2013 06:39:55 +0000 (09:39 +0300)]
man/Makefile.in: regenerate

11 years agoman/Makefile.am: add stap-report.1
Timo Juhani Lindfors [Wed, 22 May 2013 06:39:54 +0000 (09:39 +0300)]
man/Makefile.am: add stap-report.1

11 years agoman: add man page for stap-report(1)
Timo Juhani Lindfors [Wed, 22 May 2013 06:39:53 +0000 (09:39 +0300)]
man: add man page for stap-report(1)

11 years agostapdyn: Restrict visibility in generated modules
Josh Stone [Wed, 22 May 2013 23:17:30 +0000 (16:17 -0700)]
stapdyn: Restrict visibility in generated modules

We only want to expose a few specific functions, per stapdyn.h, and we
also want our internal use of those to be bound internally.  This is
accomplished by "-fvisibility=hidden", and then setting visibility to
"protected" by #pragma just for stapdyn.h.

11 years agostapdyn: separate enter_dyninst_uprobe_regs
Josh Stone [Wed, 22 May 2013 23:14:18 +0000 (16:14 -0700)]
stapdyn: separate enter_dyninst_uprobe_regs

That function calls enter_dyninst_uprobe, which is only defined when
uprobes are active, so we have a weak binding in place.  By instead
splitting this into a new file, which is only included when uprobes are
known to be active, it doesn't need the weak reference.

11 years agostapdyn: isolate the tls context pointer more
Josh Stone [Wed, 22 May 2013 21:16:42 +0000 (14:16 -0700)]
stapdyn: isolate the tls context pointer more

* runtime/dyninst/runtime_context.h: Rename contexts to tls_context to
  better indicate the purpose of this pointer; update everywhere.
  (_stp_runtime_entryfn_put_context): Take a pointer argument for the
  context you're releasing, to slightly help prevent coding accidents.
* runtime/dyninst/transport.c: Stop the insider-trading of contexts, not
  renaming to tls_context either.  Use _stp_runtime_get_context().
* tapsets.cxx, translate.cxx: Pass the argument to put_context.

11 years agoPR14574 partial fix: Add dyninst support to system_func.exp test.
David Smith [Wed, 22 May 2013 16:14:20 +0000 (11:14 -0500)]
PR14574 partial fix: Add dyninst support to system_func.exp test.

* testsuite/systemtap.base/system_func.exp: Add dyninst support.
* testsuite/systemtap.base/system_func.stp: Ditto.

11 years agoFix testcase permissions.
David Smith [Wed, 22 May 2013 15:51:02 +0000 (10:51 -0500)]
Fix testcase permissions.

11 years agoFix PR15513 by adding a 'runtime' preprocessor conditional.
David Smith [Wed, 22 May 2013 15:49:06 +0000 (10:49 -0500)]
Fix PR15513 by adding a 'runtime' preprocessor conditional.

* parse.cxx (eval_pp_conditional): Added 'runtime' preprocessor conditional.
* man/stap.1: Added 'runtime' preprocessor conditional documentation.
* testsuite/parseok/fourteen.stp: Added 'runtime' preprocessor conditional
  test.
* testsuite/systemtap.base/preprocessor.exp: Ditto.
* testsuite/parseko/preprocess18.stp: New file.
* testsuite/parseko/preprocess19.stp: Ditto.

11 years agostapdyn: retry incomplete/EINTR transport writes
Josh Stone [Wed, 22 May 2013 01:01:20 +0000 (18:01 -0700)]
stapdyn: retry incomplete/EINTR transport writes

Adds _stp_write_retry() which loops over incomplete or otherwise
interrupted write() syscalls.

11 years agostapdyn: Remove the _stp_err copy of stderr
Josh Stone [Wed, 22 May 2013 00:45:31 +0000 (17:45 -0700)]
stapdyn: Remove the _stp_err copy of stderr

The only places left using _stp_err were the transport debug messages,
and _stp_vlog only when transport fails.  Both may as well use whatever
stderr is local to the process directly.

11 years agostapdyn: move MAX_STORED_WARNINGS to the top of transport.c
Josh Stone [Tue, 21 May 2013 23:57:34 +0000 (16:57 -0700)]
stapdyn: move MAX_STORED_WARNINGS to the top of transport.c

11 years agostapdyn: Remove the _stp_out copy of stdout
Josh Stone [Tue, 21 May 2013 23:18:56 +0000 (16:18 -0700)]
stapdyn: Remove the _stp_out copy of stdout

With the transport in place, the only remaining use of _stp_out was for
that transport thread to get its out_fd.  This thread runs within
stapdyn, and we know we'll keep our stdout intact, so _stp_out is no
longer necessary.  Just set out_fd to STDOUT_FILENO, and be prepared for
this to be a -o file (PR14791).

11 years agoRemove the vestigial _stp_dyninst_transport_init
Josh Stone [Tue, 21 May 2013 22:14:05 +0000 (15:14 -0700)]
Remove the vestigial _stp_dyninst_transport_init

11 years agostapdyn: remove the clunky stp_dyninst_master
Josh Stone [Tue, 21 May 2013 22:02:22 +0000 (15:02 -0700)]
stapdyn: remove the clunky stp_dyninst_master

This is a holdover from early stapdyn, which ran all module code within
the mutatee, and even tried to run module_exit in the DSO destructor to
catch the mutatee as it was exiting.  We now do these things more
reliably in stapdyn itself.

It was kept around as a bit of a fallback to let new modules keep
working with stapdyn 2.0, but frankly this is bad code and untested
compatibility, that we shouldn't feel nostalgic about.  Modules will now
require at least stapdyn 2.1, detected by having properly initialized
their shared memory before stp_dyninst_session_init is called.

11 years agofixed typo in doc -- replaced /n by \n
Jonathan Lebon [Tue, 21 May 2013 20:58:27 +0000 (16:58 -0400)]
fixed typo in doc -- replaced /n by \n

11 years agoRemoved overly-paranoid comment.
David Smith [Tue, 21 May 2013 20:51:43 +0000 (15:51 -0500)]
Removed overly-paranoid comment.

11 years agostap-server: also report KALLSYMS config
Frank Ch. Eigler [Tue, 21 May 2013 20:40:30 +0000 (16:40 -0400)]
stap-server: also report KALLSYMS config

11 years agostap-report: also include libdw* in package list
Frank Ch. Eigler [Tue, 21 May 2013 20:32:03 +0000 (16:32 -0400)]
stap-report: also include libdw* in package list

11 years agoFix PR15083 by adding dyninst system() support.
David Smith [Tue, 21 May 2013 20:00:49 +0000 (15:00 -0500)]
Fix PR15083 by adding dyninst system() support.

* runtime/dyninst/transport.c (__stp_d_t_run_command): New function.
(_stp_dyninst_transport_thread_func): Add STP_DYN_SYSTEM support.
(_stp_ctl_send): New function.
* runtime/dyninst/transport.h: Added STP_DYN_SYSTEM and
  STP_DYN_OOB_DATA_MASK.

11 years agoFix PR15486 by handling debug messages properly in dyninst mode.
David Smith [Fri, 17 May 2013 18:18:06 +0000 (13:18 -0500)]
Fix PR15486 by handling debug messages properly in dyninst mode.

* runtime/dyninst/io.c (_stp_vlog): If we're handling a message of type
  DBUG, don't allocate a transport log buffer. Instead use the temporary
  buffer.
* testsuite/systemtap.printf/dbug.exp: New test file.
* testsuite/systemtap.printf/dbug.stp: Ditto.

11 years agoPR15484: have staprun disable kprobes-optimization again
Frank Ch. Eigler [Fri, 17 May 2013 14:45:28 +0000 (10:45 -0400)]
PR15484: have staprun disable kprobes-optimization again

11 years agoPR15481: Only destroy mutexes from stapdyn itself
Josh Stone [Fri, 17 May 2013 01:53:39 +0000 (18:53 -0700)]
PR15481: Only destroy mutexes from stapdyn itself

The primary bug was since commit 8ca891c, _stp_shm_destroy was calling
_stp_runtime_context_free, which calls pthread_mutex_destroy on the
context locks.  But _stp_shm_destroy is only meant to destroy *one*
processes view of shm -- it still needs to leave the contents intact for
other processes!  This was making it so a child process ended and
destroyed the contexts, and thus in stapdyn it couldn't grab a context
to run the end probes.

* runtime/dyninst/shm.c (_stp_shm_destroy): Don't destroy contexts!
* runtime/dyninst/runtime_context.h (_stp_runtime_contexts_free): Remove
  the __-prefixed variant, and explain in comments who should call this.
* tapsets.cxx (common_probe_entryfn_epilogue): Only call put_context if
  we had successfully called get_context before.
* testsuite/systemtap.base/be_loaded.*: Test the simple begin/end case
  with a child command loaded.
* translate.cxx (c_unparser::emit_module_exit): This generated exit
  function is the best place to free the contexts and also shutdown the
  transport, because this is the final call among all processes.
* runtime/dyninst/runtime.h (stp_dyninst_dtor): Don't shutdown the
  transport here, because this is called by every process that has the
  module loaded.

11 years agostapdyn: implement tapset tzinfo.stp
Josh Stone [Fri, 17 May 2013 00:11:44 +0000 (17:11 -0700)]
stapdyn: implement tapset tzinfo.stp

* runtime/dyninst/session_attributes.*: Add tz_gmtoff and tz_name.
* stapdyn/mutator.cxx (mutator::init_session_attributes): Set them.
* tapset/tzinfo.stp: Reduce to just the common tz_ctime().
* tapset/linux/tzinfo.stp: Move the linux tz_gmtoff() and tz_name here.
* tapset/dyninst/tzinfo.stp: Implement dyninst versions of the same.
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: Get docstrings from the
  new linux/tzinfo.stp too.

11 years agoImprove the kernel target_set.stp and add a stapdyn version
Josh Stone [Thu, 16 May 2013 23:12:02 +0000 (16:12 -0700)]
Improve the kernel target_set.stp and add a stapdyn version

* tapset/linux/target_set.stp: Prefer process.begin/end for better
  tracking *process* lifetime. (syscall.exit covers thread exits too!)
* tapset/dyninst/target_set.stp: Implement stapdyn target_set.
* testsuite/systemtap.base/target_set_thread.*: Test that thread exits
  don't cause target_set to lose sight of a process.
* main.cxx (run_sdt_benchmark): Save the timing info for verbose runs.

11 years agostapdyn: implement the tapset is_return()
Josh Stone [Thu, 16 May 2013 20:38:35 +0000 (13:38 -0700)]
stapdyn: implement the tapset is_return()

This also fixes the CONTEXT->probe_type for stapdyn return probes.

11 years agoSet the right probe_type for inode uretprobes
Josh Stone [Thu, 16 May 2013 20:38:00 +0000 (13:38 -0700)]
Set the right probe_type for inode uretprobes

11 years agostapdyn: implement tapset module_name()
Josh Stone [Thu, 16 May 2013 19:36:47 +0000 (12:36 -0700)]
stapdyn: implement tapset module_name()

Note: for parity with the kernel mode, this name is without any path or
filename extension.  We might want to consider adding a module_path()
with the full filename we loaded.

11 years agostapdyn: implement tapset target() and stp_pid()
Josh Stone [Thu, 16 May 2013 19:23:27 +0000 (12:23 -0700)]
stapdyn: implement tapset target() and stp_pid()

Add fields for the target pid and stapdyn's own pid to the new
stp_session_attributes, and expose them in the tapset.

11 years agoSet versions back to 2.3 for the master branch
Josh Stone [Thu, 16 May 2013 17:50:32 +0000 (10:50 -0700)]
Set versions back to 2.3 for the master branch

11 years agoMerge tag 'release-2.2.1'
Josh Stone [Thu, 16 May 2013 17:39:03 +0000 (10:39 -0700)]
Merge tag 'release-2.2.1'

Just merging so the tag is in the history of a branch.

11 years agojava: make sure that rulename-based filter gets into synthetic probe
Frank Ch. Eigler [Thu, 16 May 2013 14:30:37 +0000 (10:30 -0400)]
java: make sure that rulename-based filter gets into synthetic probe

* tapset-method.cxx (java_builder::build): Put the rewritten body
  into the copied synthetic probe, not the original (?!).

11 years agojava: support $STAPBM_VERBOSE to enable byteman verbosity
Frank Ch. Eigler [Thu, 16 May 2013 14:24:59 +0000 (10:24 -0400)]
java: support $STAPBM_VERBOSE to enable byteman verbosity

11 years agoversion miniunbump to v2.2.1 for release
Frank Ch. Eigler [Thu, 16 May 2013 13:19:53 +0000 (09:19 -0400)]
version miniunbump to v2.2.1 for release

11 years agoupdate tapset deprecation from <= "2.2" to < "2.3" to make space for minor update
Frank Ch. Eigler [Thu, 16 May 2013 13:11:34 +0000 (09:11 -0400)]
update tapset deprecation from <= "2.2" to < "2.3" to make space for minor update

11 years agoFix PR15110 by eliminating duplicate warnings for stapdyn.
David Smith [Thu, 16 May 2013 16:51:00 +0000 (11:51 -0500)]
Fix PR15110 by eliminating duplicate warnings for stapdyn.

* runtime/dyninst/transport.c (__stp_d_t_eliminate_duplicate_warnings):
  New function.
  (_stp_dyninst_transport_thread_func): Added warning suppression and
  duplicate warnings elimination.
* translate.cxx (c_unparser::emit_global_init_setters): Emit code to call
  stp_session_attribute_setter().
* stapdyn/mutator.cxx (mutator::init_session_attributes): New function.
  (mutator::run_module_init): Call init_session_attributes().
* stapdyn/mutator.h (mutator): Add init_session_attributes() prototype.
* runtime/dyninst/session_attributes.h: New file.
* runtime/dyninst/session_attributes.c: Ditto.
* runtime/dyninst/runtime.h: Includes session_attributes.c.
* runtime/dyninst/common_session_state.h: Add session attributes structure
  to 'struct stp_runtime_session'.
  (stp_session_attributes): New function.
  (stp_session_init): Add call to stp_session_attributes_init().
* runtime/dyninst/stapdyn.h: Update stp_global_setter comment to note that
  names starting with '@' are internal names.
* stapdyn/dynutil.cxx: Correct spelling of 'stapdyn_suppress_warnings'
  variable name.
* stapdyn/dynutil.h: Ditto.
* stapdyn/stapdyn.cxx (main): Ditto.
* testsuite/systemtap.base/warnings2.exp: Remove dyninst_kfails proc,
  since duplicate warnings are now eliminated in dyninst mode.

11 years agojava: make sure that rulename-based filter gets into synthetic probe release-2.2.1
Frank Ch. Eigler [Thu, 16 May 2013 14:30:37 +0000 (10:30 -0400)]
java: make sure that rulename-based filter gets into synthetic probe

* tapset-method.cxx (java_builder::build): Put the rewritten body
  into the copied synthetic probe, not the original (?!).

11 years agojava: support $STAPBM_VERBOSE to enable byteman verbosity
Frank Ch. Eigler [Thu, 16 May 2013 14:24:59 +0000 (10:24 -0400)]
java: support $STAPBM_VERBOSE to enable byteman verbosity

11 years agoversion miniunbump to v2.2.1 for release
Frank Ch. Eigler [Thu, 16 May 2013 13:19:53 +0000 (09:19 -0400)]
version miniunbump to v2.2.1 for release

11 years agoupdate tapset deprecation from <= "2.2" to < "2.3" to make space for minor update
Frank Ch. Eigler [Thu, 16 May 2013 13:11:34 +0000 (09:11 -0400)]
update tapset deprecation from <= "2.2" to < "2.3" to make space for minor update

11 years agotestsuite: update unprivileged_probes with recently added probe types
Frank Ch. Eigler [Thu, 16 May 2013 02:35:08 +0000 (22:35 -0400)]
testsuite: update unprivileged_probes with recently added probe types

... incl. the java probes. timer.profile.tick, some minor kprobes variants

11 years agojava probes: make these unprivileged
Frank Ch. Eigler [Thu, 16 May 2013 02:34:18 +0000 (22:34 -0400)]
java probes: make these unprivileged

* tapset-method.cxx (register_tapset_java): bind_unprivileged the lot,
  considering that they are simply uprobes.
* tapset/system.stp (system): Mark as /* unprivileged */.

11 years agobenchmark: call them "start" rather than "begin"
Josh Stone [Wed, 15 May 2013 21:24:52 +0000 (14:24 -0700)]
benchmark: call them "start" rather than "begin"

... for consistency with our other SDT names.

11 years agoPR14297: Test that hyphenated SDT normalizes to underscores
Josh Stone [Wed, 15 May 2013 20:04:48 +0000 (13:04 -0700)]
PR14297: Test that hyphenated SDT normalizes to underscores

11 years agoChange "-" to "__" in naming our internal benchmark probes
Josh Stone [Wed, 15 May 2013 20:02:13 +0000 (13:02 -0700)]
Change "-" to "__" in naming our internal benchmark probes

They're supposed to be named like C-identifiers. Plus the process.mark
tapset normalizes "-" in user input to "__" already, making it
impossible to directly match on a literal "benchmark-begin".

11 years agoPR14297: Skip the user's input when scanning for resolved probes
Josh Stone [Wed, 15 May 2013 19:51:33 +0000 (12:51 -0700)]
PR14297: Skip the user's input when scanning for resolved probes

* elaborate.cxx (derived_probe::script_location): Sweep the derivation
  chain from its second-to-last, so we get at least one level of
  resolution from the user's input.
* testsuite/systemtap.base/list.exp: Add a case for kernel init_once,
  which demonstrates listing the @file:line is useful to disambiguate.
  Add a case for 'begin' too, the simplest expansion we have.

11 years agoPR14297: add a test case for stap -l
Frank Ch. Eigler [Wed, 15 May 2013 17:52:17 +0000 (13:52 -0400)]
PR14297: add a test case for stap -l

11 years agoPR15452 Follow DW_AT_signature attributes when trying to find a DW_AT_type.
Mark Wielaard [Wed, 15 May 2013 15:36:08 +0000 (11:36 -0400)]
PR15452 Follow DW_AT_signature attributes when trying to find a DW_AT_type.

When we are trying to find a type DIE we might hit upon a DIE that simply
has a DW_AT_signature pointing to the actual type (possibly in .debug_type).
Extend the debugtypes.exp testcase a bit. Add DW_AT_signature chasing to
dwarf_wrappers.h (dwarf_attr_die) when searching for a DW_AT_type. And
clarify that dwflpp::print_members takes a type DIE not a variable DIE.

11 years agoPR14297 cont'd: find wildcards more carefully for stap -l filtering
Frank Ch. Eigler [Wed, 15 May 2013 15:39:36 +0000 (11:39 -0400)]
PR14297 cont'd: find wildcards more carefully for stap -l filtering

* elaborate.cxx (derived_probe::script_location): Look for other
  glob characters too in to-be-skipped items in the derivation chain.

11 years agoPR14297 cont'd: drop optional flagging from process().plt() derivation
Frank Ch. Eigler [Wed, 15 May 2013 15:29:56 +0000 (11:29 -0400)]
PR14297 cont'd: drop optional flagging from process().plt() derivation

11 years agoPR14297 cont'd: stap -l to list process().plt() without synthetic .statement() suffix
Frank Ch. Eigler [Wed, 15 May 2013 14:49:08 +0000 (10:49 -0400)]
PR14297 cont'd: stap -l to list process().plt()  without synthetic .statement() suffix

Just another layer of synthetic-base-probe indirection.

11 years agoPR14297 cont'd: correct stap -l syscall.* -- i.e., aliases
Frank Ch. Eigler [Wed, 15 May 2013 14:29:32 +0000 (10:29 -0400)]
PR14297 cont'd: correct stap -l syscall.* -- i.e., aliases

What a tangled web.

* elaborate.cxx (alias_derived_probe::sole_location): Define &
  override to provide the alias name itself rather than the
  aliased referent probes.

11 years agoPrint plt addresses in hex
Josh Stone [Wed, 15 May 2013 04:24:05 +0000 (21:24 -0700)]
Print plt addresses in hex

11 years agoPR14297 and .mark($$name) regression
Frank Ch. Eigler [Wed, 15 May 2013 02:06:33 +0000 (22:06 -0400)]
PR14297 and .mark($$name) regression

The machinery for derived-probe chaining hasn't worked quite right,
relying on pretend-aliases and in-place-modified probe-point
components, inconsistencies abounding.  Some of these are improved
in this code.

* elaborate.cxx (collect_derivation_pp_chain): Use sole_location() for
  the starting point as that is the one most likely brought up-to-date
  during the building process, and will be emitted in pass-3.
  (script_location): Drop *basest* type logic fallback logic entirely;
  fall back to top-level sole_location().
* elaborate.h, staptree.h: Drop basest/almost_basest functions.
* staptree.cxx: Ditto.
  (probe::probe derived-copy ctor): Make deep-copy of probe body,
  in case of partial rewriting during derivation steps.
* main.cxx (printscript): Rework listings code to use exactly the
  same routine for -l output as which feeds pn(): namely
  derived_probe::script_location().
* tapsets.cxx (query_one_library, query_one_plt, sdt_query::convert_location):
  Use new derived-probe-copy ctor systematically; nested if necessary to
  track levels of wildcard-expansion and synthetic probe creation.

11 years agoversion bumps, cont'd
Frank Ch. Eigler [Tue, 14 May 2013 20:16:35 +0000 (16:16 -0400)]
version bumps, cont'd

11 years agoversion bump for 2.3 development
Frank Ch. Eigler [Tue, 14 May 2013 20:13:39 +0000 (16:13 -0400)]
version bump for 2.3 development

11 years agoimprove error message for $foo->bar.baz misuse
Frank Ch. Eigler [Tue, 14 May 2013 19:55:34 +0000 (15:55 -0400)]
improve error message for  $foo->bar.baz  misuse

11 years agojava support: snuff gcc warnings on non-HAVE_JAVA builds
Frank Ch. Eigler [Tue, 14 May 2013 17:09:55 +0000 (13:09 -0400)]
java support: snuff gcc warnings on non-HAVE_JAVA builds

11 years agosystemtap java support reorganization release-2.2
Frank Ch. Eigler [Mon, 13 May 2013 21:16:42 +0000 (17:16 -0400)]
systemtap java support reorganization

* systemtap.spec: require byteman > 2.0 for java support
* configure.ac: Make java/stapbm a AC_CONFIG_FILE.

* java/HelperSDT.c: Reorganize sys/sdt.h ABI usage: make the rule-name
  magic string the last argument, don't pass class/method strings.
  Stop mis-using "provider" name.
* java/HelperSDT.h: Regenerated.
* java/Makefile.am: Spell out more dependencies.
* java/stapbm: Thoroughly reorganized to use rulename as run-time unique-id,
  byteman port-number selection to enable concurrency, fewer lockfiles.
* tapset-method.cxx: Use consistent exceptions for error handling.  Switch
  to rulename-based identification.  Rework synthetic probe generation.
  Register java.* probes only if HAVE_JAVA.
* session.cxx, session.h, man/stap.1: Drop -J / -j options.
* testsuite/systemtap.apps/java*: Rely on pn() for class/method names.

Another related hunk extends the derivation chain to plain struct
probe, to avoid having to (mis)use alias-type derived probes.  The
script-location (function tapset::pn) calculation is made based on
a textual analysis of the derivation_pp_chain.

* staptree.h (struct probe): Add a base* field for use by synthetically
  created probes.  Update copy-ish constructor to use this form.  Update
  most callers (former users of probe::create_alias) in tapsets.cxx and
  tapset-method.cxx.  Make collect_derivation_*_chain const functions.
* staptree.cxx (probe::basest, almost_basest, ...): Create/update
  accordingly.
* elaborate.cxx (script_location): Rework a as more faithful heuristic.
  It should make it possible to get rid of the *basest* type calls soon.

11 years agotestsuite: only run java.exp if installtest_p
Frank Ch. Eigler [Mon, 13 May 2013 21:16:20 +0000 (17:16 -0400)]
testsuite: only run java.exp if installtest_p

11 years agoNEWS: weakened some deprecation wording; tweaked java wordage
Frank Ch. Eigler [Mon, 13 May 2013 21:15:04 +0000 (17:15 -0400)]
NEWS: weakened some deprecation wording; tweaked java wordage

11 years agoIf 'javac' doesn't exist, mark systemtap.apps/java.exp as untested.
David Smith [Tue, 14 May 2013 13:46:40 +0000 (08:46 -0500)]
If 'javac' doesn't exist, mark systemtap.apps/java.exp as untested.

11 years agoFixed PR15446 by using the new /proc interface.
David Smith [Tue, 14 May 2013 13:16:43 +0000 (08:16 -0500)]
Fixed PR15446 by using the new /proc interface.

* runtime/procfs.c: Rewritten to use latest /proc interface (for older
  kernels, use compatibility functions defined in proc_fs_compatibility.h).
* runtime/procfs-probes.c (_stp_proc_open_file): Use PDE_DATA() instead of
  accessing the data field of a 'struct proc_dir_entry' directly.
* runtime/proc_fs_compatibility.h: New file.
* tapset-procfs.cxx (emit_kernel_module_exit): Only remove the
  "/proc/systemtap/{module_name}' directory if the transport layer isn't
  using it.
  (procfs_derived_probe_group::emit_module_init): Pass the data parameter
  down to _stp_create_procfs().
* buildrun.cxx (compile_pass): Add 2 "exportconf" tests for new procfs
  features.

11 years agotestsuite: clear build tree paths out of main_quiesce.exp test case names
Frank Ch. Eigler [Tue, 14 May 2013 04:00:50 +0000 (00:00 -0400)]
testsuite: clear build tree paths out of main_quiesce.exp test case names

11 years agostaprun: move empty line after all options
Timo Juhani Lindfors [Mon, 13 May 2013 21:16:47 +0000 (16:16 -0500)]
staprun: move empty line after all options

11 years agobelated NEWS for PR12894
Serguei Makarov [Mon, 13 May 2013 19:39:19 +0000 (15:39 -0400)]
belated NEWS for PR12894

11 years agoAUTHORS bump
Serguei Makarov [Mon, 13 May 2013 19:29:47 +0000 (15:29 -0400)]
AUTHORS bump

11 years agoprobe timer.profile: langref.tex wording oops
Serguei Makarov [Fri, 10 May 2013 21:16:25 +0000 (17:16 -0400)]
probe timer.profile: langref.tex wording oops

11 years agoprobe timer.profile: document new timer.profile.tick, new behavour of timer.profile
Serguei Makarov [Fri, 10 May 2013 20:48:06 +0000 (16:48 -0400)]
probe timer.profile: document new timer.profile.tick, new behavour of timer.profile

11 years agoPR15452 Prevent crash in dwflpp::print_members ().
Mark Wielaard [Fri, 10 May 2013 20:29:15 +0000 (16:29 -0400)]
PR15452 Prevent crash in dwflpp::print_members ().

Don't try to find siblings when a DIE doesn't have any children.

This doesn't solve the actual bug and the debugtypes testcase still fails
because the code doesn't doesn't handle the DW_AT_signature.

11 years agostapdyn.h: make the release markers a bit more visible
Josh Stone [Fri, 10 May 2013 20:10:17 +0000 (13:10 -0700)]
stapdyn.h: make the release markers a bit more visible

11 years agostapdyn: hide internal module functions
Josh Stone [Fri, 10 May 2013 20:09:20 +0000 (13:09 -0700)]
stapdyn: hide internal module functions

The header stapdyn.h is only for functions meant to be called from the
stapdyn binary into the module, so stp_dyninst_session_init_finished
shouldn't be there.  Also, all functions that aren't part of stapdyn.h
should be declared with static visibility.

11 years agoUpdate syscall.rt_sigpending probe alias for kernel 3.10.
David Smith [Fri, 10 May 2013 20:07:30 +0000 (15:07 -0500)]
Update syscall.rt_sigpending probe alias for kernel 3.10.

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