]> sourceware.org Git - systemtap.git/log
systemtap.git
14 years agoPut generated debug_hdr in _stp_section, add sec_load_offset for adjustment.
Mark Wielaard [Mon, 5 Jul 2010 19:14:42 +0000 (21:14 +0200)]
Put generated debug_hdr in _stp_section, add sec_load_offset for adjustment.

Make sure to adjust .debug_frame addresses to section load address.
Which means keeping track of the (synthetic) .debug_frame_hdr index
per section. For now keep track of "magic sections". Will need to
be extended to track all loadable code sections as we do for symbol
tables. See http://sourceware.org/ml/systemtap/2010-q3/msg00012.html

* runtime/sym.h (_stp_module): Remove dwarf_module_base. Move debug_hdr
  and debug_hdr_len from here to ...
  (_stp_section): ... here. And add sec_load_offset.
* runtime/unwind.c (adjustStartLoc): Don't use m->dwarf_module_base,
  use s->sec_load_offset.
  (_stp_search_unwind_hdr): Use s->debug_hdr and s->debug_hdr_len.
* translate.cxx (create_debug_frame_hdr): Accept and set debug_frame_off.
  (get_unwind_data): Likewise.
  (dump_unwindsyms): Keep track of debug_frame_off. Output debug_frame_hdr
  per _stp_section if section is ".dynamic", ".absolute", ".text", or
  "_stext".

14 years agostap -d processing: tolerate mystery modules
Frank Ch. Eigler [Mon, 5 Jul 2010 17:42:58 +0000 (13:42 -0400)]
stap -d processing: tolerate mystery modules

* translate.cxx (emit_symbol_data): Tolerate mystery modules being
  listed in -d or via --all-modules.  This kind of situation does
  not call for freaking out.  Wubba wubba.

14 years agostap --all-modules should imply -d kernel
Frank Ch. Eigler [Mon, 5 Jul 2010 17:42:21 +0000 (13:42 -0400)]
stap --all-modules should imply -d kernel

Reported-By: mjw@redhat.com
14 years agostap-server logging: quiet down zip/unzip; print time stamp
Frank Ch. Eigler [Mon, 5 Jul 2010 16:01:23 +0000 (12:01 -0400)]
stap-server logging: quiet down zip/unzip; print time stamp

14 years agotestsuite: run avahi-browse during server startup to verify/record state
Frank Ch. Eigler [Mon, 5 Jul 2010 15:46:23 +0000 (11:46 -0400)]
testsuite: run avahi-browse during server startup to verify/record state

14 years agostap-server: export x86-64 machine code to avahi sysinfo
Frank Ch. Eigler [Mon, 5 Jul 2010 15:32:33 +0000 (11:32 -0400)]
stap-server: export x86-64 machine code to avahi sysinfo

* stap-env (stap_get_arch): Simplify.  Abort on unknown machine
  instead of letting "unknown" value propagate.

14 years agoFix probefunc regression caused by swapping of arguments.
Mark Wielaard [Mon, 5 Jul 2010 14:19:27 +0000 (16:19 +0200)]
Fix probefunc regression caused by swapping of arguments.

Regression introduced by commit 1f5359.

* tapset/context-symbols.stp (probefunc): Swap flags and addr arguments
  in call to _stp_print_addr().

14 years agoAdd sprint_[u]backtrace() tapset functions.
Mark Wielaard [Mon, 5 Jul 2010 11:08:07 +0000 (13:08 +0200)]
Add sprint_[u]backtrace() tapset functions.

* tapset/context-unwind.stp (sprint_backtrace): New tapset function.
* tapset/ucontext-unwind.stp (sprint_ubacktrace): Likewise.
* testsuite/buildok/context-unwind-embedded.stp: Add sprint_backtrace test.
* testsuite/buildok/ucontext-unwind-embedded.stp: Add sprint_ubacktrace test.

14 years agoMake sure print_[u]stack result is terminated.
Mark Wielaard [Mon, 5 Jul 2010 10:58:44 +0000 (12:58 +0200)]
Make sure print_[u]stack result is terminated.

Last line shouldn't have a newline and string should always be terminated.

* tapset/context-symbols.stp (sprint_stack): Terminate string.
* tapset/ucontext-symbols.stp (sprint_ustack): Likewise.

14 years agoRework _stp_stack_hexstring into _stp_stack_sprint with sym flags.
Mark Wielaard [Mon, 5 Jul 2010 10:17:42 +0000 (12:17 +0200)]
Rework _stp_stack_hexstring into _stp_stack_sprint with sym flags.

* runtime/stack.c (_stp_stack_hexstring): Renamed to ...
  (_stp_stack_sprint): ... this. Now takes sym flags which gets passed
  through.
* tapset/context-unwind.stp (backtrace): Use _stp_stack_sprint, pass
  _STP_SYM_NONE.
* tapset/ucontext-unwind.stp (ubacktrace): Likewise.

14 years agoPR11778 Add sprint_stack and sprint_ustack tapset functions.
Mark Wielaard [Mon, 5 Jul 2010 09:48:35 +0000 (11:48 +0200)]
PR11778 Add sprint_stack and sprint_ustack tapset functions.

New tapset functions that take a hexstring and produce a (simplified) stack
as string. Simplified because otherwise it would quickly run over max string
length.

* runtime/sym.h (_STP_SYM_SIMPLE): New format that gives only symbol,
  module, offset (and newline).
* tapset/context-symbols.stp (sprint_stack): New tapset function.
* tapset/ucontext-symbols.stp (sprint_ustack): Likewise.
* testsuite/buildok/context-symbols-embedded.stp: New sprint_stack test.
* testsuite/buildok/ucontext-symbols-embedded.stp: New sprint_ustack test.

14 years agoFix _stp_snprint_addr offset, no size case.
Mark Wielaard [Mon, 5 Jul 2010 09:38:05 +0000 (11:38 +0200)]
Fix _stp_snprint_addr offset, no size case.

* runtime/sym.c (_stp_snprint_addr): Don't include size if not requested.

14 years agoReplace _stp_symbol_snprint usage with _stp_snprint_addr.
Mark Wielaard [Sun, 4 Jul 2010 21:16:21 +0000 (23:16 +0200)]
Replace _stp_symbol_snprint usage with _stp_snprint_addr.

_stp_snprint_addr is a more generic version of _stp_symbol_snprint.
[u]symdata is now also slightly more exact is offset/sizes returned.

* runtime/sym.c (_stp_symbol_snprint): Removed.
* runtime/sym.h (_STP_SYM_DATA): New define for sym/mod/off/size.
* tapset/context-symbols.stp (probefunc): Use _stp_snprint_addr with
  _STP_SYM_SYMBOL.
  (symname): Likewise.
  (symdata): Use _stp_snprint_addr with _STP_SYM_DATA.
* tapset/ucontext-symbols.stp (usymname): Use _stp_snprint_addr with
  _STP_SYM_SYMBOL.
  (usymdata): Use _stp_snprint_addr with _STP_SYM_DATA.
* testsuite/systemtap.context/uprobe_uaddr.exp: Tweak result_funcs match.

14 years agoFix _stp_snprint_addr hex address, module name printf arguments.
Mark Wielaard [Sun, 4 Jul 2010 21:02:23 +0000 (23:02 +0200)]
Fix _stp_snprint_addr hex address, module name printf arguments.

* runtime/sym.c (_stp_snprint_addr): Fix arguments for hex address,
  module name case.

14 years agoIntroduce _stp_snprint_addr to print address/symbol into a string.
Mark Wielaard [Sun, 4 Jul 2010 12:47:14 +0000 (14:47 +0200)]
Introduce _stp_snprint_addr to print address/symbol into a string.

* runtime/sym.c (_stp_snprint_addr): New function, derived from
  _stp_print_addr.
  (_stp_print_addr): Call through into _stp_snprint_addr.

14 years agoPR11785 (partial): Better detection of kretprobe data types
Josh Stone [Sat, 3 Jul 2010 05:19:11 +0000 (22:19 -0700)]
PR11785 (partial): Better detection of kretprobe data types

It's a bit less of a kludge now, letting the one who expanded the $var
determine the type to be saved.

* tapsets.cxx (dwarf_var_expanding_visitor::gen_kretprobe_saved_return):
  Determine the kretprobe data type from the expression itself.
  (dwarf_var_expanding_visitor::visit_target_symbol_context): Dwarf
  context vars become an sprintf, and thus are pe_string.
  (dwarf_var_expanding_visitor::visit_target_symbol): Regular dwarf vars
  get their type from the functiondecl (practically it's always pe_long).
  (dwarf_pretty_print::expand): Pretty-printing is always a string.
* testsuite/semok/kretprobe-data.stp: Test the various type resolution.

14 years agoMake debugging easier without installing
Josh Stone [Sat, 3 Jul 2010 04:52:22 +0000 (21:52 -0700)]
Make debugging easier without installing

When using run-stap, it was a pain to replicate the same environment in
gdb after a crash.  Now you can use the environment variable DEBUG_STAP=1.

$ ./run-stap -e 'something touchy...'
(crash!)
$ env DEBUG_STAP=1 !!
(gdb, ready to go with the same args)

14 years agoPR11785 (partial): add grace to tracepoint $$parms$
Josh Stone [Sat, 3 Jul 2010 04:40:53 +0000 (21:40 -0700)]
PR11785 (partial): add grace to tracepoint $$parms$

Tracepoint args with base types should not be dereferenced at all, but
the pretty-printing is not wise enough to know that.  Thankfully we were
already blocking the pretty-printing from such vars, but the error was
turning into an assertion failure in $$parms$.

So rather than asserting, for now just turn them into "=?" like dwarf
probes do with such failure.  Later we can try to make pretty printing
work with such base-typed tracepoint $vars.

* tapsets.cxx
  (tracepoint_var_expanding_visitor::visit_target_symbol_context):
  Don't assert that there aren't errors, just squash them.
* testsuite/semok/pretty2.stp: Exercise lots of tracepoints.

14 years agoRename context.exp cleanup to cleanup_modules to avoid conflicts.
Mark Wielaard [Thu, 1 Jul 2010 15:59:07 +0000 (17:59 +0200)]
Rename context.exp cleanup to cleanup_modules to avoid conflicts.

There are other cleanup procs declared in the testsuite. Depending on
order the context.exp one would be called because it was defined first.

* testsuite/systemtap.context/context.exp: Rename and call cleanup_modules.

14 years agoRestructuring of .probes section (SW11667)
Stan Cox [Thu, 1 Jul 2010 20:32:07 +0000 (16:32 -0400)]
Restructuring of .probes section (SW11667)

sdt.h (sdt_probe_entry_v2):  Add semaphore.
(STAP_SDT_IMPLICIT_ENABLED):  Remove.
(STAP_PROBE_DATA_): Allocate probe associated strings after the probe

tapsets.cxx (sdt_query): Add semaphore.
(sdt_query::get_next_probe): Initialize it.  For *2_type case skip over strings
following probe.
(sdt_query::record_semaphore):  Use it.

14 years agoPR11338 (partial): Used @defined in linuxmib.stp and new testcase.
David Smith [Thu, 1 Jul 2010 16:44:26 +0000 (11:44 -0500)]
PR11338 (partial): Used @defined in linuxmib.stp and new testcase.

* tapset/linuxmib.stp: Fixed documentation strings.  Removed a kernel
  version check.
* testsuite/buildok/linuxmib-detailed.stp: New testcase.

14 years agoPR11444 Don't leak CONTEXT->regs in unwind, explicitly use task_pt_regs.
Mark Wielaard [Thu, 1 Jul 2010 14:42:30 +0000 (16:42 +0200)]
PR11444 Don't leak CONTEXT->regs in unwind, explicitly use task_pt_regs.

CONTEXT->regs might be kernel regs, or not set at all, so check whether
we have a real task and grab the task_pt_regs before proceeding.

* tapset/ucontext-unwind.stp (print_ubacktrace): Check current->mm
  and grab task_pt_regs.
  (print_ubacktrace_brief): Likewise.
  (ubacktrace): Likewise.

14 years agoMove compatibility defines for task_pt_regs from context.stp to compatdefs.h.
Mark Wielaard [Thu, 1 Jul 2010 13:27:32 +0000 (15:27 +0200)]
Move compatibility defines for task_pt_regs from context.stp to compatdefs.h.

So task_pt_regs can be used in other tapset functions also.

* tapset/context.stp: Move backwards compatible task_pt_regs defines to ...
* runtime/compatdefs.h: ... here, and include an asm/ptrace.h include as
  the tracehooks documentation says might contain another definition.

14 years agoDo not use relay_file_operations directly.
Przemyslaw Pawelczyk [Thu, 1 Jul 2010 09:30:17 +0000 (11:30 +0200)]
Do not use relay_file_operations directly.

Reference counting is important to avoid removing the module while the
file exposing relay channel is being used. SystemTap alone does not need
it, but malicious user may block reloading the module by opening such
file and stap user won't notice it during unloading.

relay_file_operations defined and exported in kernel/relay.c is const
and .owner is obviously not set there, hence it shouldn't be used
directly by any kernel module.

Add relay_file_operations_w_owner and use it instead of mentioned one to
fix 'trace' file handling w.r.t. module unloading.

* runtime/transport/relay_v2.c: Add owner to the trace file.

14 years agoPR10943: support @entry saving in .return probes
Josh Stone [Wed, 30 Jun 2010 23:39:11 +0000 (16:39 -0700)]
PR10943: support @entry saving in .return probes

* staptree.h (struct entry_op): New.
* parse.cxx (parse_entry_op): Parse @entry into an entry_op.
* elaborate.cxx, staptree.cxx, translate.cxx: Add entry_op boilerplate.
* tapsets.cxx (dwarf_var_expanding_visitor::visit_entry_op): New, save
  operand value using gen_mapped_saved_return.
  (dwarf_var_expanding_visitor::gen_mapped_saved_return): Use a new flag
  to see if the tid is already saved, because the add_block may have
  been created by gen_kretprobe_saved_return instead.
* NEWS, stapprobes.3stap: Document it.
* testsuite/sem*/entry*.stp: Test it.

14 years agoFixed PR11771, a syscall.pipe problem on ppc.
David Smith [Wed, 30 Jun 2010 19:13:23 +0000 (14:13 -0500)]
Fixed PR11771, a syscall.pipe problem on ppc.

* tapset/syscalls2.stp (syscall.pipe): Fixed for systems with
  SYSCALL_WRAPPERS (like ppc).
  (syscall.pipe.return): Ditto.

14 years agoImprove synchronization of sdt_misc.exp attach tests.
Stan Cox [Wed, 30 Jun 2010 13:34:30 +0000 (09:34 -0400)]
Improve synchronization of sdt_misc.exp attach tests.

sdt_misc.exp (v_flags): New.  Pass it to dtrace.
(sdt_misc.c):  Use explicit SDT_MISC_TEST_PROBE_N_ENABLED ()
Wait after synchronization loop termination.

14 years agoFix .debug_frame dwarf unwinding through prelinked dynamic libraries.
Mark Wielaard [Wed, 30 Jun 2010 12:27:05 +0000 (14:27 +0200)]
Fix .debug_frame dwarf unwinding through prelinked dynamic libraries.

This wasn't immediately visible since often we would pick up the .eh_frame
CFI. But when the would pick up the CFI from the .debug_frame and the
shared library was prelinked, we would not correctly adjust some addresses.

* runtime/sym.h (_stp_module): Better explain dwarf_module_base.
* runtime/unwind.c (adjustStartLoc): Only adjust against dwarf_module_base
  when not eh_frame.
* translate.cxx (dump_unwindsyms): Adjust dwarf_module_base against dwbias.

14 years agoPR11761: add $name and $format to available variables list of marker probe
Wenji Huang [Wed, 30 Jun 2010 02:20:47 +0000 (10:20 +0800)]
PR11761: add $name and $format to available variables list of marker probe

* tapset-mark.cxx(mark_derived_probe::getargs): Push $name and $format to
  arguments set.

14 years agostap diagnostics: make stap -V list interesting enabled/detecteda autoconf features
Frank Ch. Eigler [Wed, 30 Jun 2010 01:37:20 +0000 (21:37 -0400)]
stap diagnostics: make stap -V list interesting enabled/detecteda autoconf features

* session.cxx (version): List a bunch of set HAVE_* flags.
* configure.ac: Removed -lpfm (historical perfmon) tests.
* other configury: Regenerated on f13.

14 years agoWarn about SDT $vars that don't look like $argN
Josh Stone [Wed, 30 Jun 2010 00:46:52 +0000 (17:46 -0700)]
Warn about SDT $vars that don't look like $argN

* tapsets.cxx (sdt_uprobe_var_expanding_visitor::visit_target_symbol):
  When arg_count==0, just trickle down to uprobes, but otherwise warn
  about improper naming if it doesn't parse as $argN.
  (sdt_kprobe_var_expanding_visitor::visit_target_symbol): Warn about
  improper naming if it doesn't parse as $argN.

14 years agoRemove SDT visit_defined_op
Josh Stone [Wed, 30 Jun 2010 00:44:41 +0000 (17:44 -0700)]
Remove SDT visit_defined_op

SDT doesn't need to do anything special for @defined -- the underlying
mechanisms should work just fine.

* tapsets.cxx (sdt_uprobe_var_expanding_visitor::visit_defined_op,
  sdt_kprobe_var_expanding_visitor::visit_defined_op): Remove.

14 years agoSilence another uninitialized warning in _stp_umodule_relocate.
Mark Wielaard [Tue, 29 Jun 2010 21:44:45 +0000 (23:44 +0200)]
Silence another uninitialized warning in _stp_umodule_relocate.

* runtime/sym.c (_stp_umodule_relocate): Initialize vm_start to zero.

14 years agoMake csclient.cxx buildable with HAVE_NSS, but not HAVA_AVAHI.
Mark Wielaard [Tue, 29 Jun 2010 21:35:55 +0000 (23:35 +0200)]
Make csclient.cxx buildable with HAVE_NSS, but not HAVA_AVAHI.

* csclient.cxx: Rejigger conditional includes.

14 years agoFixed uninitialized variable error on f12.
David Smith [Tue, 29 Jun 2010 20:49:36 +0000 (15:49 -0500)]
Fixed uninitialized variable error on f12.

* runtime/unwind.c (adjustStartLoc): Initialize a variable to avoid an
  error on f12.

14 years agoMatch AUTOMAKE_OPTIONS and configure.ac AM_INIT_AUTOMAKE flags.
Mark Wielaard [Tue, 29 Jun 2010 19:03:24 +0000 (21:03 +0200)]
Match AUTOMAKE_OPTIONS and configure.ac AM_INIT_AUTOMAKE flags.

This make sure that files regenerated through autoreconf are similar to
what is done when building with --enable-maintainer-mode.

* configure.ac (AM_INIT_AUTOMAKE): Add no-dist foreign flags.
* Makefile.in: Regenerated.
* doc/Makefile.in: Likewise.
* doc/SystemTap_Tapset_Reference/Makefile.in: Likewise.
* doc/beginners/Makefile.in: Likewise.
* grapher/Makefile.in: Likewise.

14 years agobuild: csclient should include a few more headers
Frank Ch. Eigler [Tue, 29 Jun 2010 19:35:51 +0000 (15:35 -0400)]
build: csclient should include a few more headers

14 years agoCheck for libavahi-common and link it into stap if found.
Dave Brolley [Tue, 29 Jun 2010 19:07:11 +0000 (15:07 -0400)]
Check for libavahi-common and link it into stap if found.

14 years agosystemtap package now BuildRequires avahi-devel, but not nss-tools.
Dave Brolley [Tue, 29 Jun 2010 17:16:08 +0000 (13:16 -0400)]
systemtap package now BuildRequires avahi-devel, but not nss-tools.

14 years agoRun compile client/server tests using the new integrated client.
Dave Brolley [Tue, 29 Jun 2010 16:37:00 +0000 (12:37 -0400)]
Run compile client/server tests using the new integrated client.

14 years agoFix erroneous artifacts of git rebase.
Dave Brolley [Thu, 24 Jun 2010 20:37:29 +0000 (16:37 -0400)]
Fix erroneous artifacts of git rebase.

14 years agoCompile Server Client merge into stap: Use errno to diagnose stream problems if it...
Dave Brolley [Tue, 22 Jun 2010 18:01:59 +0000 (14:01 -0400)]
Compile Server Client merge into stap: Use errno to diagnose stream problems if it is set during the operation.

14 years agoReword compile server client merge into stap based on feedback received:
Dave Brolley [Mon, 14 Jun 2010 19:19:43 +0000 (15:19 -0400)]
Reword compile server client merge into stap based on feedback received:

- Move server related utility methods out of systemtap_session
- Move other utility methods back out of systemtap_session and back
  into the top level of main.cxx
- Move pending_interrupts out of systemtap_session and back to top level.
- Initialize systemtap_session in the constructor
- Move server argument collection out of main options switch.

14 years agoMerged compile server client: Cleanup error handling.
Dave Brolley [Tue, 8 Jun 2010 18:57:50 +0000 (14:57 -0400)]
Merged compile server client: Cleanup error handling.

14 years agoMerged compile server client: Basic implementation.
Dave Brolley [Tue, 1 Jun 2010 18:51:53 +0000 (14:51 -0400)]
Merged compile server client: Basic implementation.

o client automatically detects compatible online servers
o request package created, zipped and sent to the server
o response unzipped and processed
o staprun called, if requsted
o command line options filtered and passed to the server in the request package
o --unprivileged is handled

14 years agoMore compile server client merge infrastructure:
Dave Brolley [Fri, 21 May 2010 19:52:32 +0000 (15:52 -0400)]
More compile server client merge infrastructure:

- Make phase management functions methods of systemtap_session
- Make phase management globals static members of systemtap_session
- Create skeletal compile_server_client class

14 years agoBegin compile server client merge into stap:
Dave Brolley [Fri, 21 May 2010 18:09:26 +0000 (14:09 -0400)]
Begin compile server client merge into stap:

- Detect presence of avahi-client library and headers during configuration
- Use avahi-client API to detect online servers
- Implement --server-status=online,compatible

14 years agoPR10599 Always print modname when available (and requested).
Mark Wielaard [Tue, 29 Jun 2010 14:16:02 +0000 (16:16 +0200)]
PR10599 Always print modname when available (and requested).

* runtime/sym.c (_stp_umod_lookup): Also return vm_end if available.
  (_stp_kallsyms_lookup): Don't try to handle 32bit-on-64bit signedness,
  _stp_umod_lookup already does. If available return modname, size and
  offset.
  (_stp_print_addr): Always print modname when available (and requested).
  (_stp_symbol_snprint): Likewise.
* runtime/unwind.c (unwind): Adjust _stp_umod_lookup call.
* tapset/ucontext.stp (umodname): Likewise.

14 years agoConsolidate _stp_print_symbol and _stp_func_print into _stp_print_addr.
Mark Wielaard [Tue, 29 Jun 2010 12:23:35 +0000 (14:23 +0200)]
Consolidate _stp_print_symbol and _stp_func_print into _stp_print_addr.

Finally one address symbol function to print them all.

* runtime/sym.c (_stp_print_symbol): Removed.
  (_stp_func_print): Renamed to ...
  (_stp_print_addr): ... this.
* runtime/stack-arm.c (__stp_stack_print): Use _stp_print_addr.
* runtime/stack-i386.c (_stp_stack_print_fallback): Likewise.
  (__stp_stack_print): Likewise.
* runtime/stack-ia64.c (dump_para): Add verbose flag.
  (__stp_show_stack_sym): Use _stp_print_addr with verbose flag.
  (__stp_show_stack_addr): Removed.
  (__stp_stack_print): Set verbose flag and just call __stp_show_stack_sym
  through unw_init_running.
* runtime/stack-ppc.c (__stp_stack_print): Use _stp_print_addr.
* runtime/stack-s390.c (__stp_show_stack): Likewise.
* runtime/stack-x86_64.c (_stp_stack_print_fallback): Likewise.
  (__stp_stack_print): Likewise.
* runtime/stack.c (print_stack_address): Likewise.
  (_stp_stack_print): Likewise.
  (_stp_stack_print_tsk): Likewise and use verbose flag.
* tapset/context-symbols.stp (print_stack): Use _stp_print_addr.
* tapset/ucontext-symbols.stp (print_ustack): Likewise.

14 years agoMerge _stp_vma_module_name functionality into _stp_umod_lookup.
Mark Wielaard [Tue, 29 Jun 2010 10:02:48 +0000 (12:02 +0200)]
Merge _stp_vma_module_name functionality into _stp_umod_lookup.

This also includes the fix for 32bit signed values in 64bit longs issue
which was missing from _stp_umod_lookup. Better to have the lookup and
fix/workaround all in one place.

* runtime/vma.c (_stp_vma_module_name): Removed.
* runtime/sym.c (_stp_umod_lookup): Include module name lookup.
  (_stp_kallsyms_lookup): Get name directly when available throug umodule.
* runtime/unwind.c (unwind): Adjust _stp_umod_lookup call.
* tapset/ucontext.stp (umodname): Use _stp_umod_lookup.

14 years agoMatch user space modules on actual path and set name to basename.
Mark Wielaard [Mon, 28 Jun 2010 20:21:23 +0000 (22:21 +0200)]
Match user space modules on actual path and set name to basename.

Matching on actual canonical path is more accurate. Having basename is
better for module in backtraces.

* translate.cxx (dump_unwindsyms): Grab basename from canonical path for
  user space modules.
* dwflpp.cxx (dwflpp::emit_address): Call _stp_umodule_relocate with
  canonical path.
* runtime/sym.c (_stp_umodule_relocate): Match on path, not name.

14 years agoFixed PR11762 by making the systemtap.base/flightrec*.exp tests more robust.
David Smith [Mon, 28 Jun 2010 19:30:33 +0000 (14:30 -0500)]
Fixed PR11762 by making the systemtap.base/flightrec*.exp tests more robust.

* testsuite/systemtap.base/flightrec1.exp: Make sure old test results are
  removed when starting.  Be sure to close spawned processes properly.
  When sending stapio a signal, sleep 2 seconds to let everything settle
  out.
* testsuite/systemtap.base/flightrec2.exp: Ditto.
* testsuite/systemtap.base/flightrec3.exp: Ditto.
* testsuite/systemtap.base/flightrec4.exp: Ditto.
* testsuite/systemtap.base/flightrec5.exp: Ditto.

14 years agoFold space/newline/brief/inexact logic into _stp_func_print flags.
Mark Wielaard [Mon, 28 Jun 2010 14:14:29 +0000 (16:14 +0200)]
Fold space/newline/brief/inexact logic into _stp_func_print flags.

Trying to get all the logic of how symbols/addresses in backtraces are
printed into one place. So that passing through the flags tell the whole
story, instead of decissions being spread out all over the place. This
does mean one hairy _stp_print_func() function unfortunately. But at least
there is now one place to tweak when adding stack/symbol output changes.

* runtime/runtime.h: Remove SYM_VERBOSE_NO, _FULL, _BRIEF.
* runtime/sym.h: Add _STP_SYM_ flags.
* runtime/sym.c (_stp_func_print): Base output on individual _STP_SYM_ flags.
* runtime/stack.c (print_stack_address): Use _STP_SYM_INEXACT.
  (_stp_stack_print): Check and use _STP_SYM_ flags.
* runtime/stack-i386.c (_stp_stack_print_fallback): Use _STP_SYM_INEXACT.
* runtime/stack-x86_64.c (_stp_stack_print_fallback): Likewise.
* tapset/context-unwind.stp (print_backtrace): Pass _STP_SYM_FULL.
* tapset/ucontext-unwind.stp (print_ubacktrace): Likewise.
  (print_ubacktrace_brief): Pass _STP_SYM_BRIEF.

14 years agoMerge branch 'usym'
Mark Wielaard [Mon, 28 Jun 2010 09:20:00 +0000 (11:20 +0200)]
Merge branch 'usym'

14 years agoPR11759: more DEFINE_*LOCK -> DEFINE_RAW_*lock for CONFIG_PREEMPT_RT
Frank Ch. Eigler [Mon, 28 Jun 2010 00:53:37 +0000 (20:53 -0400)]
PR11759: more DEFINE_*LOCK -> DEFINE_RAW_*lock for CONFIG_PREEMPT_RT

14 years agoDon't resolve symbols unnecessarily and don't suppress things from backtrace.
Mark Wielaard [Sun, 27 Jun 2010 19:30:53 +0000 (21:30 +0200)]
Don't resolve symbols unnecessarily and don't suppress things from backtrace.

We were always doing symbol lookups of addresses in a backtrace, even when
the user only wanted the addresses. If we couldn't find an symbol associated
with an address in the backtrace we just tried again and reported the next
address/symbol we could find. It really is better to always report all
addresses we think are part of a backtrace. It is more efficient, and more
truthful.

* runtime/sym.c (_stp_func_print): Don't report whether name lookup
  succeeded. Only lookup symbol names when requested.
* runtime/stack-x86_64.c (_stp_stack_print_fallback): Report all addresses
  found.
* runtime/stack-i386.c (_stp_stack_print_fallback): Likewise.
  (__stp_stack_print): Mark frame based addresses as inexact.

14 years agoUse -w --ldd in exelib.exp tests. Allow "startup" functions to leak through.
Mark Wielaard [Sun, 27 Jun 2010 20:50:37 +0000 (22:50 +0200)]
Use -w --ldd in exelib.exp tests. Allow "startup" functions to leak through.

* testsuite/systemtap.exelib/libmarkunamestack.tcl: Spawn stap with -w --ldd.
  Allow startup functions (like _start and _main) in backtrace.
* testsuite/systemtap.exelib/ustack.tcl: Likewise.

14 years agoRemove unused argument namebuf for _stp_kallsym_lookup.
Mark Wielaard [Sun, 27 Jun 2010 15:36:58 +0000 (17:36 +0200)]
Remove unused argument namebuf for _stp_kallsym_lookup.

* runtime/sym.c (_stp_kallsyms_lookup): Remove char *namebuf argument.
  (_stp_print_symbol): Don't call _stp_kallsyms_lookup with NULL namebuf.
  (_stp_func_print): Likewise.
  (_stp_symbol_snprint): Likewise.

14 years agoDon't panic on utrace_barrier failures because process already ended.
Mark Wielaard [Sun, 27 Jun 2010 12:22:55 +0000 (14:22 +0200)]
Don't panic on utrace_barrier failures because process already ended.

* runtime/task_finder.c (stap_utrace_detach): When utrace_barrier returns
  -ESRCH or -EALREADY treat it as success.

14 years agoSplit _stp_module_relocate into kernel and user space lookup functions.
Mark Wielaard [Sun, 27 Jun 2010 12:18:33 +0000 (14:18 +0200)]
Split _stp_module_relocate into kernel and user space lookup functions.

Simplify relocation logic by splitting kernel and user space module lookups.

* runtime/sym.h (_stp_module_relocate): Split into ...
  (_stp_kmodule_relocate): ... this for kernel module lookups and ...
  (_stp_umodule_relocate): ... this for user space lookups.
* runtime/sym.c: Likewise.
  (_stp_module_check): Use _stp_kmodule_relocate.
* dwflpp.cxx (dwflpp::emit_address): Use _stp_kmodule_relocate or
  _stp_umodule_relocate as appropriate.
* tapsets.cxx (dwarf_derived_probe_group::emit_module_init): Use
  _stp_kmodule_relocate for kprobes.

14 years agoMerge branch 'master' into usym
Mark Wielaard [Sun, 27 Jun 2010 11:01:02 +0000 (13:01 +0200)]
Merge branch 'master' into usym

14 years agoDon't relookup module/section in unwinder, use section static_addr directly.
Mark Wielaard [Sat, 26 Jun 2010 21:15:08 +0000 (23:15 +0200)]
Don't relookup module/section in unwinder, use section static_addr directly.

* runtime/unwind.c (adjustStartLoc): Add comments. Use s->static_addr
   directly instead of looking it up through _stp_module_relocate().

14 years agoUse #ifdef CONFIG_PREEMPT_RT, not #if.
Mark Wielaard [Sat, 26 Jun 2010 20:47:46 +0000 (22:47 +0200)]
Use #ifdef CONFIG_PREEMPT_RT, not #if.

* runtime/itrace.c (struct itrace_info): Guard raw_spinlock_t with #ifdef.

14 years agoPR11759: CONFIG_PRREMPT_RT -> use raw_{rwlock,spinlock}_t
Frank Ch. Eigler [Sat, 26 Jun 2010 20:16:55 +0000 (16:16 -0400)]
PR11759: CONFIG_PRREMPT_RT -> use raw_{rwlock,spinlock}_t

14 years agomore deprecation policy elaboration
Frank Ch. Eigler [Fri, 25 Jun 2010 18:40:33 +0000 (14:40 -0400)]
more deprecation policy elaboration

14 years agodraft deprecation policy/mechanism
Frank Ch. Eigler [Fri, 25 Jun 2010 15:42:38 +0000 (11:42 -0400)]
draft deprecation policy/mechanism

14 years agoPR11343: document
Frank Ch. Eigler [Fri, 25 Jun 2010 15:41:51 +0000 (11:41 -0400)]
PR11343: document

14 years agoFix warnings.exp testcase for s390x.
David Smith [Fri, 25 Jun 2010 21:13:56 +0000 (16:13 -0500)]
Fix warnings.exp testcase for s390x.

* testsuite/systemtap.base/warnings.stp: Adjust the line number offset in
  a 'kernel.statement' probe for s390x.

14 years agoAdded kprocess.stp testcases.
David Smith [Fri, 25 Jun 2010 16:32:02 +0000 (11:32 -0500)]
Added kprocess.stp testcases.

* testsuite/buildok/kprocess-all-probes.stp: Renamed from
  process-all-probes.stp and uses wildcards.
* testsuite/buildok/kprocess-detailed.stp: New testcase.
* testsuite/buildok/kprocess-embedded.stp: Ditto.

14 years agoAllow dtrace to override -DSTAP_SDT_V2
Stan Cox [Fri, 25 Jun 2010 15:28:37 +0000 (11:28 -0400)]
Allow dtrace to override -DSTAP_SDT_V2

* dtrace.in: For -G: #include sys/sdt.h and pass includes to gcc
* sdt_misc.exp: Use it.

14 years agoFixed PR11752 by updating the signal.handle alias for ppc.
David Smith [Fri, 25 Jun 2010 14:36:54 +0000 (09:36 -0500)]
Fixed PR11752 by updating the signal.handle alias for ppc.

* tapset/signal.stp (signal.handle): Added handle_rt_signal64,
  handle_rt_signal32, and handle_signal32 to the alias to support ppc
  kernels >= 2.6.23.

14 years agoRename _stp_stack_snprint to _stp_stack_hexstring.
Mark Wielaard [Fri, 25 Jun 2010 14:04:12 +0000 (16:04 +0200)]
Rename _stp_stack_snprint to _stp_stack_hexstring.

_stp_stack_snprint() was only used to get the hex string of a backtrace.
So rename it to make that clear and simplify it by not calling through
the full _stp_stack_print(). Simplify _stp_stack_print() a bit since it
now doesn't need to handle "hex string only" backtraces.

* runtime/stack.c (_stp_stack_print): Just handle the SYM_VERBOSE_FULL
  and SYM_VERBOSE_BRIEF cases. SYM_VERBOSE_NONE isn't supported directly
  anymore.
  (_stp_stack_snprint): Rename to ...
  (_stp_stack_hexstring): ... this. Remove now unused verbose argument.
  Just handle hexstring backtrace only, call through to __stp_stack_print.
* tapset/context-unwind.stp (print_backtrace): Explicitly use
  SYM_VERBOSE_FULL.
  (backtrace): Use _stp_stack_hexstring().
* tapset/ucontext-unwind.stp (ubacktrace): Likewise.

14 years agoCombine _stp_symbol_print and _stp_usymbol_print into _stp_print_symbol.
Mark Wielaard [Fri, 25 Jun 2010 10:00:42 +0000 (12:00 +0200)]
Combine _stp_symbol_print and _stp_usymbol_print into _stp_print_symbol.

These functions did exactly the same, except the usymbol one took a
task_struct. Combine them and use task_struct being NULL as indicator
for wanting kernel/module symbols.

* runtime/sym.c (_stp_symbol_print): Combine with...
  (_stp_usymbol_print): ... this into ...
  (_stp_print_symbol): combined function.
* tapset/context-symbols.stp (print_stack): Call _stp_print_symbol with NULL.
* tapset/ucontext-symbols.stp (print_ustack): Call _stp_print_symbol with tsk.
* runtime/stack.c (_stp_stack_print): Use _stp_print_symbol.
  (_stp_stack_print_tsk): Likewise.
* runtime/stack-arm.c (__stp_stack_print): Likewise.
* runtime/stack-ia64.c (__stp_show_stack_sym): Likewise.
* runtime/stack-ppc.c (__stp_stack_print): Likewise.
* runtime/stack-s390.c (__stp_show_stack): Likewise.

14 years agoImprove dwflpp::emit_address internal error message.
Mark Wielaard [Thu, 24 Jun 2010 19:00:56 +0000 (21:00 +0200)]
Improve dwflpp::emit_address internal error message.

* dwflpp.cxx (dwflpp::emit_address): Be more explicit about context and
  what failed in case of internal error.

14 years agodocs rpm: prereq publican "brand" by /path/ rather than RPM name
Frank Ch. Eigler [Thu, 24 Jun 2010 18:51:59 +0000 (14:51 -0400)]
docs rpm: prereq publican "brand" by /path/ rather than RPM name

14 years agoSplit _stp_mod_sec_lookup into _stp_kmod_sec_lookup and _stp_umod_lookup.
Mark Wielaard [Thu, 24 Jun 2010 16:19:35 +0000 (18:19 +0200)]
Split _stp_mod_sec_lookup into _stp_kmod_sec_lookup and _stp_umod_lookup.

* runtime/sym.c (_stp_mod_sec_lookup): Split into...
  (_stp_kmod_sec_lookup): ... for kernel/module lookup and ...
  (_stp_umod_lookup): For user space/vma lookup.
  (_stp_kallsyms_lookup): Use either of the above and calculate rel_addr.
* runtime/unwind.c (unwind): Call either _stp_umod_lookup or
  _stp_kmod_sec_lookup.
* tapset/context-symbols.stp (probemod): Use _stp_kmod_sec_lookup.
  (modname): Likewise.

14 years agoWorking PR11719 fixes for cmd_parse.exp for ppc.
David Smith [Thu, 24 Jun 2010 14:21:55 +0000 (09:21 -0500)]
Working PR11719 fixes for cmd_parse.exp for ppc.

* testsuite/systemtap.base/cmd_parse.exp: Fixed mapped variable name.

14 years agoAnother PR11710 fix so that nd_syscall probes work on s390x systems.
David Smith [Thu, 24 Jun 2010 14:03:37 +0000 (09:03 -0500)]
Another PR11710 fix so that nd_syscall probes work on s390x systems.

* tapset/s390/registers.stp (_stp_get_register_by_offset): Added a cast.

14 years agoInclude gettimeofday in the tapset reference
Josh Stone [Thu, 24 Jun 2010 00:00:09 +0000 (17:00 -0700)]
Include gettimeofday in the tapset reference

14 years agoInclude pn() in the tapset reference
Josh Stone [Wed, 23 Jun 2010 23:34:23 +0000 (16:34 -0700)]
Include pn() in the tapset reference

14 years agoAdd kernel-dwarf to the pretty-prints tests
Josh Stone [Wed, 23 Jun 2010 23:04:25 +0000 (16:04 -0700)]
Add kernel-dwarf to the pretty-prints tests

Since some kernels don't have utrace, we should also exercise the dwarf
pretty-printing on a kprobe.

14 years agoPR10830 cont'd: Rename pp1() -> pn() and isolate it
Josh Stone [Wed, 23 Jun 2010 21:28:16 +0000 (14:28 -0700)]
PR10830 cont'd: Rename pp1() -> pn() and isolate it

The new name is "pn" to evoke "probe name".  It is also now isolated in
its own tapset file, so it's less likely to be pulled into and conflict
with a user's script accidentally.

No real code changes here -- it's roughly just s/pp1/pn/ and
s/probe_point_listing/probe_name/.

14 years agoCorrect testing for compat task. Always use our own test.
Mark Wielaard [Wed, 23 Jun 2010 19:47:53 +0000 (21:47 +0200)]
Correct testing for compat task. Always use our own test.

is_compat_task(), when defined in the kernel, is really just for testing
whether or not we are in a 32-compat syscall. It does not definitely tell
us whether or not the current task is a 32bit compat task. So always use
our own test_thread_flag() with the arch specific TIF_flag.

* runtime/autoconf-is-compat-task.c: Removed.
* buildrun.cxx (compile_pass): Remove is-compat-task check.
* runtime/compatdefs.h: Detect s390 specific TIF flag. Always define
  _stp_is_compat_task() when CONFIG_COMPAT defined.
* tapset/conversions.stp (user_long): Use _stp_is_compat_task().
  (user_long_warn): Likewise.

14 years agoBetter split kernel/user space address symbol lookups.
Mark Wielaard [Wed, 23 Jun 2010 19:07:33 +0000 (21:07 +0200)]
Better split kernel/user space address symbol lookups.

* runtime/sym.c (_stp_mod_sec_lookup): Don't fall through to kernel module
  address search when we know to be looking for a user space module/vma.
* tapset/context-symbols.stp (probefunc): Clarify documentation.
  Use user_mode(CONTEXT->regs) check. Pass NULL for task to
  _stp_symbol_snprint().
 (probemod): Clarify documentation. Pass NULL for task to
 _stp_mod_sec_lookup().
 (modname): Likewise.
 (symname): Clarify documentation.
 (symdata): Likewise.

14 years agoFixed PR11725 by adding big-endian support to systemtap.printf/bin6.exp.
David Smith [Wed, 23 Jun 2010 16:39:05 +0000 (11:39 -0500)]
Fixed PR11725 by adding big-endian support to systemtap.printf/bin6.exp.

* testsuite/systemtap.printf/bin6.exp: Added a big-endian result string
  and code to pick the correct result string bassed on the system running
  the test.

14 years agoPR10830: Add pp1() for the high-level probe name
Josh Stone [Wed, 23 Jun 2010 00:44:35 +0000 (17:44 -0700)]
PR10830: Add pp1() for the high-level probe name

This is a new function which should return the same high-level name that
"stap -l" gives.  (e.g. syscall.open instead of kernel.function...)

* translate.cxx (c_unparser::emit_common_header): Add probe_point_listing.
  (translate_pass): Add pp1 to stap_probe, predicated on
  STP_NEED_PROBE_POINT_LISTING so we don't waste space.
* tapsets.cxx (common_probe_init): Set pp1 to script_location().
  (common_probe_entryfn_prologue): Write pp1 to the CONTEXT.
* tapset-timers.cxx (profile_derived_probe_group::emit_module_decls):
  Fixup CONTEXT->probe_point_listing, since it loops individual probes
  manually.
* tapset/context.stp (pp1): New, expose the location to scripts.
* testsuite/buildok/context-embedded.stp: Build pp1().
* testsuite/systemtap.base/pp.{exp,stp}: Test the difference between
  pp() and pp1().

14 years agoFactor out common probe elements
Josh Stone [Wed, 23 Jun 2010 00:02:37 +0000 (17:02 -0700)]
Factor out common probe elements

The probes in every tapset type all have a handler (ph) and a
probe_point (pp), which are initialized and used in exactly the same
way.  Let's bring that out into a common stap_probe struct.

This will also ease new fields, e.g. for PR10830.

* translate.cxx (translate_pass): Define struct stap_probe, also making
  the decision of whether pp is better as char* or char[].
* tapsets.cxx (common_probe_init): Initialize a runtime stap_probe from
  any translator derived_probe.
  (common_probe_entryfn_prologue): Take a stap_probe instead of pp.
* tapset*.cxx: Adjust all tapsets to use the features above.

14 years agoAdd a function for getting a probe's script location
Josh Stone [Tue, 22 Jun 2010 20:01:10 +0000 (13:01 -0700)]
Add a function for getting a probe's script location

* elaborate.cxx (derived_probe::script_location): New, factor out the
  code for grabbing the "friendly" location of a probe, as specified in
  the script.
* main.cxx (printscript): Use it.

14 years agoMake probe->basest/almost_basest const
Josh Stone [Tue, 22 Jun 2010 19:55:50 +0000 (12:55 -0700)]
Make probe->basest/almost_basest const

14 years agoMake probe::almost_basest() work
Josh Stone [Tue, 22 Jun 2010 18:42:30 +0000 (11:42 -0700)]
Make probe::almost_basest() work

* staptree.h (probe::almost_basest): Probes are the basest, not almost.
* elaborate.h (derived_probe::almost_basest): If base says 0, then the
  almost_basest is this one.
* main.cxx (printscript): Use p->almost_basest() instead of collecting
  the entire derivation chain.

14 years agoAdded detailed irq.stp testcase.
David Smith [Tue, 22 Jun 2010 21:42:28 +0000 (16:42 -0500)]
Added detailed irq.stp testcase.

* testsuite/buildok/irq-detailed.stp: New detailed testcase.
* testsuite/buildok/irq-all-probes.stp: Renamed from
  testsuite/buildok/irq.stp.

14 years agoImprove regexec string accesses.
Stan Cox [Tue, 22 Jun 2010 20:07:58 +0000 (16:07 -0400)]
Improve regexec string accesses.

tapsets.cxx (sdt_uprobe_var_expanding_visitor::visit_target_symbol):
Use substr instead of funky C tricks.

14 years agoFixed PR11726 by adding a cast to get the memory1.exp testcase compiling.
David Smith [Tue, 22 Jun 2010 19:34:50 +0000 (14:34 -0500)]
Fixed PR11726 by adding a cast to get the memory1.exp testcase compiling.

* translate.cxx (visit_print_format): Added a cast to fix ppc64 support.

14 years agoUpdated ip.stp and added a testcase for it.
David Smith [Tue, 22 Jun 2010 19:32:53 +0000 (14:32 -0500)]
Updated ip.stp and added a testcase for it.

* tapset/ip.stp: Simplified __get_skb_iphdr() a bit by merging
  __get_skb_iphdr_new() into it.
* testsuite/buildok/ip-embedded.stp: New testcase.

14 years agoOnly use compat functions/types when CONFIG_COMPAT defined.
Mark Wielaard [Tue, 22 Jun 2010 18:59:22 +0000 (20:59 +0200)]
Only use compat functions/types when CONFIG_COMPAT defined.

* tapset/conversions.stp (user_long): Use #ifdef CONFIG_COMPAT.
  (user_long_warn): Likewise.

14 years agoInitialize ln in sdt_uprobe_var_expanding_visitor::visit_target_symbol.
Mark Wielaard [Tue, 22 Jun 2010 18:58:33 +0000 (20:58 +0200)]
Initialize ln in sdt_uprobe_var_expanding_visitor::visit_target_symbol.

* tapsets.cxx (sdt_uprobe_var_expanding_visitor::visit_target_symbol):
  Fool compiler into thinking literal_number* ln is always assigned.

14 years agoAdded new ipmib.stp buildok testcases.
David Smith [Tue, 22 Jun 2010 18:59:12 +0000 (13:59 -0500)]
Added new ipmib.stp buildok testcases.

* testsuite/buildok/ipmib-detailed.stp: New testcase.
* testsuite/buildok/ipmib-embedded.stp: Ditto.

14 years agoMinor buildok testsuite fixes.
David Smith [Tue, 22 Jun 2010 18:00:34 +0000 (13:00 -0500)]
Minor buildok testsuite fixes.

* testsuite/buildok/inet_sock-embedded.stp: Added daddr_to_string() test.
* testsuite/buildok/ioscheduler-detailed.stp: Added comment about why
  we're testing the iocheduler.*.kp probe aliases.

14 years agoHandle $N numeric literal for -DSTAP_SDT_V2 probe asm arg descriptor.
Stan Cox [Tue, 22 Jun 2010 16:37:43 +0000 (12:37 -0400)]
Handle $N numeric literal for -DSTAP_SDT_V2 probe asm arg descriptor.

sdt.h (__stap_argN):  Switch gcc asm constraint from "ro" to "ron" to allow $N
tapsets.cxx (sdt_uprobe_var_expanding_visitor::visit_target_symbol):
Add literal_arg to support $N.

14 years agoPut the stappaths manpage in all rpms that have manpages.
David Smith [Tue, 22 Jun 2010 15:58:06 +0000 (10:58 -0500)]
Put the stappaths manpage in all rpms that have manpages.

* systemtap.spec (Requires): Put stappaths.7* in all subrpms that have
  manpages, since it is a "global" manpage.

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