]> sourceware.org Git - systemtap.git/log
systemtap.git
14 years agochmod +x testsuite/parseko/conditional.stp
Josh Stone [Wed, 20 Jan 2010 01:04:15 +0000 (17:04 -0800)]
chmod +x testsuite/parseko/conditional.stp

14 years agoPR11195: Prevent all nested argument substitution
Josh Stone [Tue, 19 Jan 2010 23:36:35 +0000 (15:36 -0800)]
PR11195: Prevent all nested argument substitution

Our existing protection only made sure that the first token in a
substitution wasn't a nested substitution.  That's not sufficient when
there could be multiple tokens involved.  This patch makes sure that no
nested tokens are ever allowed to be argument substitutions.

This also adds a cursor_suspended_line/column and resets the main
cursor_line/column to the beginning of the substitution, so errors will
point a little closer to the right place.

14 years agosecurity: list some prudent security practices for stap-server
Frank Ch. Eigler [Tue, 19 Jan 2010 22:19:12 +0000 (17:19 -0500)]
security: list some prudent security practices for stap-server

14 years agoSwap DW_OP_shr and DW_OP_shra.
Roland McGrath [Tue, 19 Jan 2010 20:44:05 +0000 (12:44 -0800)]
Swap DW_OP_shr and DW_OP_shra.

* loc2c.c (translate): DW_OP_shr is unsigned, DW_OP_shra is signed.

14 years agoUse signed division for DW_OP_div.
Roland McGrath [Tue, 19 Jan 2010 20:38:31 +0000 (12:38 -0800)]
Use signed division for DW_OP_div.

* loc2c.c (translate): Use signed division for DW_OP_div.

14 years agoFix the listing mode of process.library.mark
Josh Stone [Mon, 18 Jan 2010 22:36:47 +0000 (14:36 -0800)]
Fix the listing mode of process.library.mark

Our hack for producing nicer listing modes was to write the mark name in
component index 1.  That's fine for process.mark, but writes the wrong
position for process.library.mark.  It now munges the last probe
component of any number of indexes.

(A better fix is due in PR10831, preserving the derivation chain.)

14 years agoPR11173 Markers get a bad address in prelinked libraries.
Mark Wielaard [Mon, 18 Jan 2010 08:13:30 +0000 (09:13 +0100)]
PR11173 Markers get a bad address in prelinked libraries.

Our literal_addr_to_sym_addr() function was just wrong. To compensate for
raw addresses read from elf (either given by the user or through a mark
transformation) we need to know what the elf_bias is (as returned by
dwfl_module_getelf) before feeding them to any libdwfl functions.

* tapsets.cxx (query_module_dwarf): Always add elf_bias to raw function or
  statement addresses before calling query_addr().
  (query_addr): Don't call literal_addr_to_sym_addr().
* dwflpp.h (literal_addr_to_sym_addr): Removed.
* dwflpp.cxx (literal_addr_to_sym_addr): Likewise.

14 years agoPR11105: forget about packaging stap-server-request
Frank Ch. Eigler [Fri, 15 Jan 2010 21:25:16 +0000 (16:25 -0500)]
PR11105: forget about packaging stap-server-request

14 years agoRelax sdt address check for attach to running process case.
Stan Cox [Fri, 15 Jan 2010 20:06:35 +0000 (15:06 -0500)]
Relax sdt address check for attach to running process case.

* uprobes-common.c (stap_uprobe_change_plus): Relax VM_EXEC check.

14 years agoPR11105: support default unset --prefix release-1.1
Frank Ch. Eigler [Fri, 15 Jan 2010 17:34:39 +0000 (12:34 -0500)]
PR11105: support default unset --prefix

* configure.ac (STAP_PREFIX): Map NONE -> /usr/local.

14 years agoPR11105: remove extraneous \n from localized foo.stp script file name
Frank Ch. Eigler [Fri, 15 Jan 2010 08:27:34 +0000 (03:27 -0500)]
PR11105: remove extraneous \n from localized foo.stp script file name

14 years agotestsuite: fix wording of invalid-entry test group
Frank Ch. Eigler [Fri, 15 Jan 2010 08:12:53 +0000 (03:12 -0500)]
testsuite: fix wording of invalid-entry test group

14 years agoPR11105: Remove stap-server-request shell script.
Frank Ch. Eigler [Fri, 15 Jan 2010 08:11:18 +0000 (03:11 -0500)]
PR11105: Remove stap-server-request shell script.

* Makefile.am: Don't install it any more.

14 years agoPR11105: robustify stap-server
Frank Ch. Eigler [Fri, 15 Jan 2010 08:06:52 +0000 (03:06 -0500)]
PR11105: robustify stap-server

* main.cxx (main): Always downgrade client-provided -p5 to -p4.
* stap-client (unpack_response): Sanitize stdout due to same.
* stap-server-connect.c: Eliminate a bunch of globals.
  (handle_connection): Make things locals instead.  Base tmp files
  on $TMPDIR.
  (spawn_and_wait): New helper function.
  (handleRequest): New monster function to inline rest of old
  stap-server-request.

14 years agoserver: log controlling pid
Frank Ch. Eigler [Fri, 15 Jan 2010 08:05:38 +0000 (03:05 -0500)]
server: log controlling pid

* stap-serverd (initialization): Log startup pid.

14 years agoruntime: better staprun diagnostics for failed signature tests
Frank Ch. Eigler [Fri, 15 Jan 2010 08:04:18 +0000 (03:04 -0500)]
runtime: better staprun diagnostics for failed signature tests

* modverify.c (verify_module): Print some messages for verbose > 1.

14 years agoPR11105: stap-client wire protocol change
Dave Brolley [Fri, 15 Jan 2010 05:47:32 +0000 (00:47 -0500)]
PR11105: stap-client wire protocol change

14 years agoImprove stack printing format
Wenji Huang [Fri, 15 Jan 2010 06:00:49 +0000 (14:00 +0800)]
Improve stack printing format

* runtime/stack.c (_stp_stack_print_tsk): Use _stp_symbol_print.

14 years agoPR11151: Recover stap_uprobes slots on process exit
Josh Stone [Fri, 15 Jan 2010 00:40:45 +0000 (16:40 -0800)]
PR11151: Recover stap_uprobes slots on process exit

When a process exits, it won't necessarily bother to munmap all of its
shared libraries.  This patch makes sure that with uprobes in libraries,
we still grab an exit notification and clear everything out.

* runtime/uprobes-common.c (stap_uprobe_process_munmap): New.
* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls): Use above
  callback so that we can recover our resources on process exit.

14 years agoAllow / as a random argyment character when fuzzing.
Dave Brolley [Thu, 14 Jan 2010 20:44:09 +0000 (15:44 -0500)]
Allow / as a random argyment character when fuzzing.

14 years agoPR10467 cont'd: be tolerant of bad line numbers
Josh Stone [Thu, 14 Jan 2010 19:22:23 +0000 (11:22 -0800)]
PR10467 cont'd: be tolerant of bad line numbers

If a line number is invalid for a source file, that should not be a
fatal error, as it may still be valid for some other matching source
file.

* dwflpp.cxx (dwflpp::iterate_over_srcfile_lines): Don't assert that the
  line must be found, just break out quietly.

14 years agoFixed rawhide syscall testsuite problem.
David Smith [Thu, 14 Jan 2010 17:08:14 +0000 (11:08 -0600)]
Fixed rawhide syscall testsuite problem.

* testsuite/systemtap.syscall/net1.c (main): The 'bzero()' function has
  been deprecated on rawhide.  Replaced with 'memset()'.

14 years agoUse gnu indentation style.
Stan Cox [Thu, 14 Jan 2010 15:50:55 +0000 (10:50 -0500)]
Use gnu indentation style.

14 years agoFix rawhide compile problem.
David Smith [Thu, 14 Jan 2010 15:39:36 +0000 (09:39 -0600)]
Fix rawhide compile problem.

* main.cxx (getmemusage): On rawhide systems, 'getpagesize()' has been
  deprecated.  Substitute 'sysconf(_SC_PAGESIZE)'.

14 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
William Cohen [Thu, 14 Jan 2010 04:23:26 +0000 (23:23 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

14 years agoUse __access_process_vm_noflush for static user semaphore decrement.
Stan Cox [Thu, 14 Jan 2010 03:26:10 +0000 (22:26 -0500)]
Use __access_process_vm_noflush for static user semaphore decrement.

* access_process_vm (__access_process_vm_noflush): New
* tapsets.cxx (uprobe_derived_probe_group::emit_module_exit):  Use it.
* translate.cxx (translate_pass):  Declare it.

14 years agobuild fix: rhbz55060: stdlib.h vs sys/wait.h __WAIT_STATUS conflicts
Frank Ch. Eigler [Wed, 13 Jan 2010 21:35:48 +0000 (16:35 -0500)]
build fix: rhbz55060: stdlib.h vs sys/wait.h __WAIT_STATUS conflicts

14 years agoPR 11167 fixed by adding compat_sys_sigaction to the syscall.sigaction32 probe.
David Smith [Wed, 13 Jan 2010 20:13:15 +0000 (14:13 -0600)]
PR 11167 fixed by adding compat_sys_sigaction to the syscall.sigaction32 probe.

* tapset/syscalls2.stp (syscall.sigaction32): Added
  kernel.function("compat_sys_sigaction").
  (syscall.sigaction32.return): Ditto.

14 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
Dave Brolley [Wed, 13 Jan 2010 20:09:10 +0000 (15:09 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

14 years agoTest newline characters as part of fuzzing argument strings.
Dave Brolley [Wed, 13 Jan 2010 20:07:52 +0000 (15:07 -0500)]
Test newline characters as part of fuzzing argument strings.

14 years agoMove userspace probing boiler plate code in translator to runtime library.
William Cohen [Wed, 13 Jan 2010 18:54:26 +0000 (13:54 -0500)]
Move userspace probing boiler plate code in translator to runtime library.

14 years agoMerge remote branch 'origin/master'
Tim Moore [Wed, 13 Jan 2010 18:38:47 +0000 (19:38 +0100)]
Merge remote branch 'origin/master'

14 years agomap through uretprobe trampoline in an arbitrary task
Tim Moore [Wed, 13 Jan 2010 18:37:51 +0000 (19:37 +0100)]
map through uretprobe trampoline in an arbitrary task

* runtime/uprobes2/uprobes.c (uprobe_get_pc_task): new function
  (lookup_uretprobe): new helper function
  (uprobe_get_pc): use it
* runtime/uprobes2/uprobes.h (uprobe_get_pc_task): declare
* runtime/uprobes/uprobes.c : ditto
* runtime/uprobes/uprobes.h : ditto

14 years agoFix PR11160 by handling ppc syscall.sigaction32 correctly.
David Smith [Wed, 13 Jan 2010 15:30:12 +0000 (09:30 -0600)]
Fix PR11160 by handling ppc syscall.sigaction32 correctly.

* tapset/aux_syscalls.stp (_struct_old_sigaction32_u): New function.
* tapset/syscalls2.stp (syscall.sigaction32): Uses new
  _struct_old_sigaction32() function to provide a human readable version
  of the sigaction argument.
* testsuite/systemtap.syscall/test.tcl (run_one_test): Use additional C
  flags when pre-processing test files to better determine which tests are
  valid on which platforms.

14 years agoRemoved bogus task_finder error message.
David Smith [Wed, 13 Jan 2010 14:51:42 +0000 (08:51 -0600)]
Removed bogus task_finder error message.

* runtime/task_finder.c (__stp_utrace_attach): No longer prints bogus
  error message when utrace_barrier succeeds.

14 years agoFaulty conditionals are parse errors, not semantical errors.
Mark Wielaard [Wed, 13 Jan 2010 14:11:58 +0000 (15:11 +0100)]
Faulty conditionals are parse errors, not semantical errors.

The test was correct, the given construct should fail. But it fails because
it is a parse error, not because it is a semantical error. So move into the
right pass1-4 sub-directory.

* testsuite/semko/conditional.stp: Moved to...
* testsuite/parseko/conditional.stp: ... here.

14 years agoPR10493: autoconf for cpu_khz
Wenji Huang [Wed, 13 Jan 2010 03:27:48 +0000 (11:27 +0800)]
PR10493: autoconf for cpu_khz

* buildrun.cxx (output_cpu_khz): New function to check cpu_khz.
  (compile_pass): Invoke function output_cpu_khz.
* runtime/time.c : Use STAPCONF_CPU_KHZ.

14 years agoFixed PR 11163 so that syscall.readv/syscall.writev puts fd in argstr for ppc.
David Smith [Tue, 12 Jan 2010 22:48:33 +0000 (16:48 -0600)]
Fixed PR 11163 so that syscall.readv/syscall.writev puts fd in argstr for ppc.

* tapset/syscalls2.stp (syscall.readv): Removed old ppc hack.
  (syscall.writev): Ditto.
* tapset/nd_syscalls2.stp (nd_syscall.readv): Removed mention of old ppc
  hack.
  (nd_syscall.writev): Ditto.

14 years agoAdd attach to live process tests.
Stan Cox [Tue, 12 Jan 2010 20:09:55 +0000 (15:09 -0500)]
Add attach to live process tests.

* sdt_misc.exp (sdt_misc.c):  New funcs loop_check, int_handler, alrm_handler.
(sdt_misc.sdt):  Add timer.ms
(test attach to a running process):  New.
(test attach to a running process with .so markers):  New.

14 years agoFixed PR 11162 by removing extra 'buf_uaddr' assignment.
David Smith [Tue, 12 Jan 2010 19:57:34 +0000 (13:57 -0600)]
Fixed PR 11162 by removing extra 'buf_uaddr' assignment.

* tapset/syscalls2.stp (syscall.pwrite32): Remove extra 'buf_uaddr'
  assignment.

14 years agotweak stap argument checking
Frank Ch. Eigler [Tue, 12 Jan 2010 19:12:04 +0000 (14:12 -0500)]
tweak stap argument checking

* main.cxx (checkOptions): Inline into main(), abeam other option checks.

14 years agonew sample script: overcommit failure monitor
Frank Ch. Eigler [Tue, 12 Jan 2010 16:49:48 +0000 (11:49 -0500)]
new sample script: overcommit failure monitor

14 years agoPR10747: check invalid preprocessor construct
Wenji Huang [Tue, 12 Jan 2010 05:45:55 +0000 (13:45 +0800)]
PR10747: check invalid preprocessor construct

* parse.cxx (scan_pp): Match '%(' and '%?'.
* testsuite/semko/conditional.stp: New test.

14 years agoAdd some additional test cases.
Dave Brolley [Tue, 12 Jan 2010 03:14:36 +0000 (22:14 -0500)]
Add some additional test cases.

14 years agoInvalid casess can be tested for 'make check'.
Dave Brolley [Tue, 12 Jan 2010 01:19:54 +0000 (20:19 -0500)]
Invalid casess can be tested for 'make check'.

14 years agoRework filtering of client options. Add testsuite.
Dave Brolley [Tue, 12 Jan 2010 01:13:40 +0000 (20:13 -0500)]
Rework filtering of client options. Add testsuite.

14 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
Dave Brolley [Mon, 11 Jan 2010 19:35:27 +0000 (14:35 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

14 years agoFilter options for unprivileged use after --stap-client is seen.
Dave Brolley [Mon, 11 Jan 2010 19:34:27 +0000 (14:34 -0500)]
Filter options for unprivileged use after --stap-client is seen.

14 years agoAdded STP_MAXMEMORY documentation.
David Smith [Mon, 11 Jan 2010 19:23:18 +0000 (13:23 -0600)]
Added STP_MAXMEMORY documentation.

* stap.1.in: Added STP_MAXMEMORY documentation.

14 years agoFix extra blank lines in man page output.
David Smith [Mon, 11 Jan 2010 17:32:27 +0000 (11:32 -0600)]
Fix extra blank lines in man page output.

* stap.1.in: Correct comment syntax to avoid outputting blank lines.

14 years agoAdd stack walking function for 2.6.33
Wenji Huang [Mon, 11 Jan 2010 05:01:54 +0000 (13:01 +0800)]
Add stack walking function for 2.6.33

* runtime/stack.c (walk_context_stack): New function.
  (print_stack_ops): Add function pointer.

14 years agoPull set of semaphore into its own function.
Stan Cox [Mon, 11 Jan 2010 02:43:17 +0000 (21:43 -0500)]
Pull set of semaphore into its own function.

* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls):  Move
sdt_sem_address from standalone to stap_uprobes.  Remove sdt_sem_tid.
In emitted function stap_uprobe_change_plus distinguish VM_EXEC/VM_WRITE
cases, use sdt_sem_address member, move setting of semaphores to new
emitted function stap_uprobe_change_semaphore_plus.
(stap_uprobe_process_found): Call stap_uprobe_change_semaphore_plus.
(stap_uprobe_mmap_found): Likewise.
* stap-postgres.stp (postgresrelease): New.  Sync to current upstream version.
* stap-tcl.sh:  Check if wget failed.
* stap-tcl.stp: Check for skipped probes.
* xulrunner.exp: Check if wget failed.

14 years agotracepoints build fix
Frank Ch. Eigler [Sat, 9 Jan 2010 18:48:11 +0000 (13:48 -0500)]
tracepoints build fix

* tapsets.cxx (emit_module_decls): #undef TRACE_INCLUDE_FILE
  in front of each #include'd trace/event header, to prevent
  macro redefinition.
  (init_dw): Respect pending_interrupts in traceprobe module
  compilation loop.

14 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
Dave Brolley [Fri, 8 Jan 2010 21:26:44 +0000 (16:26 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

14 years agoNew test suite for client/server argument handling.
Dave Brolley [Fri, 8 Jan 2010 21:25:59 +0000 (16:25 -0500)]
New test suite for client/server argument handling.

14 years agoFixed PR 11148 by reworking transport directory locks.
David Smith [Fri, 8 Jan 2010 19:26:47 +0000 (13:26 -0600)]
Fixed PR 11148 by reworking transport directory locks.

* runtime/transport/transport.c (_stp_get_root_dir): No longer
  locks/unlocks the transport directory.
  (_stp_remove_root_dir): Ditto.
  (_stp_transport_fs_init): Locks and unlocks the transport directory.
  Ensures that the root directory can't be deleted between calling
  _stp_get_root_dir() and creating the module dir.
  (_stp_transport_fs_close): Locks and unlocks the transport directory.

14 years agoMove PKGLIBDIR variable set to testsuite/Makefile.am for self-contained tests.
William Cohen [Fri, 8 Jan 2010 15:07:21 +0000 (10:07 -0500)]
Move PKGLIBDIR variable set to testsuite/Makefile.am for self-contained tests.

14 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
Dave Brolley [Thu, 7 Jan 2010 22:11:29 +0000 (17:11 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

14 years agoTake care when echoing something that could start with a -.
Dave Brolley [Thu, 7 Jan 2010 22:10:30 +0000 (17:10 -0500)]
Take care when echoing something that could start with a -.

14 years agoMake sure testcase debug output is correct.
David Smith [Thu, 7 Jan 2010 20:04:06 +0000 (14:04 -0600)]
Make sure testcase debug output is correct.

* testsuite/systemtap.base/sdt_misc.exp: Make sure debug output of what
  we're about to execute actually matches what we're about to execute.

14 years agoMerge branch 'master' of ssh://sources.redhat.com/git/systemtap
Dave Brolley [Thu, 7 Jan 2010 19:00:49 +0000 (14:00 -0500)]
Merge branch 'master' of ssh://sources.redhat.com/git/systemtap

14 years agoClient argument handling:
Dave Brolley [Thu, 7 Jan 2010 18:58:11 +0000 (13:58 -0500)]
Client argument handling:

Pass partial options to the server instead of complaining about
them in the client.

Update known failures from buildok in server.exp.

14 years agoPartial PR 10848 fix. Added testcase for STP_MAXMEMORY.
David Smith [Thu, 7 Jan 2010 18:14:44 +0000 (12:14 -0600)]
Partial PR 10848 fix.  Added testcase for STP_MAXMEMORY.

* runtime/alloc.c (_stp_kmalloc): Renamed 'MAXMEMORY' to 'STP_MAXMEMORY'.
  (_stp_kzalloc): Ditto.
  (_stp_vmalloc): Ditto.
  (_stp_alloc_percpu): Ditto.
  (_stp_kmalloc_node): Ditto.
* testsuite/systemtap.base/maxmemory.exp: New test for STP_MAXMEMORY.

14 years agoFix multi-piece constant failure in vta-test.exp on 32bit systems.
Mark Wielaard [Thu, 7 Jan 2010 16:54:28 +0000 (17:54 +0100)]
Fix multi-piece constant failure in vta-test.exp on 32bit systems.

Commit 73b5e9 "Make sure loc2c declare_noncontig_union for different locs
don't overlap", wasn't complete. It only took into account having a piece
becuase of a noncontiguous loc and a constant loc together. But pieces can
be nested deeper (newer gcc outputs multiple constant locations for one
piece on 32bit systems). This patch keeps track of the piece declaration
depth. Another approach could have been to have each sub-piece in its own
local scope, but keeping track of the depth and naming the temporary unions
distinct fitted the current code better. It currently only supports a depth
of 10. An error will be emitted if a location construct needs more than 10
pieces to be assembled.

* loc2c.c (declare_noncontig_union): Take depth argument. Always use the
  same name for the union (u_pieces<depth>).
  (translate_base_fetch): Take depth argument. Use it to calculate union
  names.
  (translate_base_store): Likewise.
  (c_translate_fetch): Pass in depth zero.
  (c_translate_store): Likewise.
  (c_translate_pointer): Likewise.
  (c_translate_pointer_store): Likewise.

14 years agoMake all buildok tests executable.
William Cohen [Thu, 7 Jan 2010 15:20:55 +0000 (10:20 -0500)]
Make all buildok tests executable.

14 years agoMerge remote branch 'origin/master'
Tim Moore [Wed, 6 Jan 2010 16:28:45 +0000 (17:28 +0100)]
Merge remote branch 'origin/master'

14 years agographer example with backtraces in events
Tim Moore [Wed, 6 Jan 2010 16:27:25 +0000 (17:27 +0100)]
grapher example with backtraces in events

* testsuite/systemtap.examples/profiling/graphcall.stp : new file

14 years agoFix get_cfa_ops failure on shared libraries.
Mark Wielaard [Wed, 6 Jan 2010 15:24:56 +0000 (16:24 +0100)]
Fix get_cfa_ops failure on shared libraries.

The fix for PR10923 (fafeaf) wasn't completely correct. All cfa lookups
need to be done through the relative pc (without bias) of the module we
are looking in.

* dwflpp.cxx (translate_location): Call get_cfa_ops with relative pc.

14 years agoManual cleanup
Wenji Huang [Wed, 6 Jan 2010 08:14:09 +0000 (16:14 +0800)]
Manual cleanup

Fix typos and comment unused text.

14 years agoPartial PR 10848 fix. Added '-DMAXMEMORY=NUM' processing.
David Smith [Tue, 5 Jan 2010 21:22:21 +0000 (15:22 -0600)]
Partial PR 10848 fix.  Added '-DMAXMEMORY=NUM' processing.

* runtime/alloc.c (_stp_mem_debug_validate): New debug function.
  (_stp_kmalloc): Added MAXMEMORY code to check size of memory used by
  module.
  (_stp_kzalloc): Ditto.
  (_stp_vmalloc): Ditto.
  (_stp_alloc_percpu): Ditto.
  (_stp_kmalloc_node): Ditto.

14 years ago%define -> %global in .spec file
Roland McGrath [Tue, 5 Jan 2010 20:50:12 +0000 (12:50 -0800)]
%define -> %global in .spec file

* systemtap.spec: Use %global in place of %define throughout,
it's the recommended syntax.

14 years agoMerge remote branch 'origin/master'
Tim Moore [Tue, 5 Jan 2010 14:22:21 +0000 (15:22 +0100)]
Merge remote branch 'origin/master'

14 years agobz6436 backtraces from uprobes
Tim Moore [Tue, 5 Jan 2010 14:18:57 +0000 (15:18 +0100)]
bz6436 backtraces from uprobes

This implements proper unwinding from uprobes in the presence of
uretprobe trampolines.

* runtime/stack.c (_stp_stack_print): Rework for uprobe context case
  and refactor a bit.
* runtime/uprobes2/uprobes.h (GET_PC_URETPROBE_NONE): new constant
* runtime/uprobes2/uprobes.c (uprobe_get_pc): Support translating the
  trampoline function from uprobe context in addition to uretprobe
  context.
* runtime/uprobes/uprobes.h (GET_PC_URETPROBE_NONE): ditto
* runtime/uprobes/uprobes.c (uprobe_get_pc): ditto
* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls):
  Initialize ri in context to GET_PC_URETPROBE_NONE in generated
  enter_uprobe_probe.
* testsuite/systemtap.context/fib.stp: Add an option to do a backtrace
  on function entry.
* testsuite/systemtap.context/fib.exp: Test backtrace in function
  entry (uprobe) probes.

14 years agoPR10732 declaration.exp empty-struct fails, resolve-fail passes erroneously.
Mark Wielaard [Tue, 5 Jan 2010 10:45:52 +0000 (11:45 +0100)]
PR10732 declaration.exp empty-struct fails, resolve-fail passes erroneously.

* testsuite/systemtap.base/declaration.exp: Remove test.

14 years agoMake publican invocation make -j safe.
Mark Wielaard [Tue, 5 Jan 2010 09:29:27 +0000 (10:29 +0100)]
Make publican invocation make -j safe.

publican isn't make -j safe. So cheat a little, always create pdf and html
at the same time, then make html depend on pdf build for copying.

* doc/beginners/Makefile.am ($(SBG).pdf): Also generate html version.
  ($(SBG).html): Depend on pdf version, then copy.
* doc/beginners/Makefile.in: Regenerated.

14 years agoReformat/change per Josh's email comments.
Robb Romans [Mon, 4 Jan 2010 21:55:55 +0000 (15:55 -0600)]
Reformat/change per Josh's email comments.

14 years agoPurge sdt utrace support.
Stan Cox [Mon, 4 Jan 2010 21:20:44 +0000 (16:20 -0500)]
Purge sdt utrace support.

* sdt.h (UTRACE_SDT): Remove.
* tapset-utrace.cxx (utrace_derived_probe): Remove has_library and library.
(utrace_derived_probe_group::emit_probe_decl):  Remove mmap_callback,
sdt_sem_offset, and sdt_sem_address.
(utrace_derived_probe_group::emit_module_decls):  Remove sdt_sem_offset and
sdt_sem_address support.
* tapsets.cxx (sdt_var_expanding_visitor):  Remove utrace_probe.
(sdt_query::handle_query_module)  Remove utrace_type.
(sdt_query::convert_probe):  Likewise.
* postgres.exp: Remove utrace testing.
* sdt.exp:  Likewise.
* sdt_misc.exp:  Likewise.

14 years agoChange directory of utsrelease.h to include/generated for 2.6.33
Wenji Huang [Mon, 4 Jan 2010 06:11:47 +0000 (14:11 +0800)]
Change directory of utsrelease.h to include/generated for 2.6.33

14 years agoMake probe syscall.mmap2 optional
Wenji Huang [Mon, 4 Jan 2010 05:29:50 +0000 (13:29 +0800)]
Make probe syscall.mmap2 optional

The function sys32_mmap2 is removed since 2.6.33.

14 years agoAdd SystemTap_Beginners_Guide to build.
Mark Wielaard [Fri, 1 Jan 2010 19:47:26 +0000 (20:47 +0100)]
Add SystemTap_Beginners_Guide to build.

* configure.ac: Add --enable-publican and --with-publican-brand.
  Setup "shadow" directory doc/beginners.
* Makefile.in: Regenerated.
* configure: Regenerated.
* doc/Makefile.am (SUBDIRS): Add beginners.
* doc/Makefile.in: Regenerated.
* doc/SystemTap_Beginners_Guide/en-US/Book_Info.xml (productname):
  Set to Systemtap.
  (productnumber): Set to 1.0.
* SystemTap_Beginners_Guide/en-US/*.xml: Replace includes from
  extras/testsuite to ../testsuite,
* doc/SystemTap_Beginners_Guide/publican.cfg: Moved to ...
* doc/SystemTap_Beginners_Guide/publican.cfg.in: ... here.
* doc/SystemTap_Beginners_Guide/Makefile: Removed.
* doc/SystemTap_Beginners_Guide/old-syncandbuild.sh: Removed.
* doc/SystemTap_Beginners_Guide/syncandbuild.sh: Removed.
* doc/SystemTap_Tapset_Reference/Makefile.in: Regenerated.
* doc/beginners/Makefile.am: New makefile.
* doc/beginners/Makefile.in: New generated file.
* grapher/Makefile.in: Regenerated.
* systemtap.spec: Add with_publican and publican_brand.

14 years agographer: workaround for bz 11118
Tim Moore [Thu, 31 Dec 2009 09:15:15 +0000 (10:15 +0100)]
grapher: workaround for bz 11118

* grapher/CairoWidget.cxx (CairoTextBox::draw): Use
  boost::is_from_range instead of is_any_of. Reports on the net
  suggest that is_any_of triggers a compiler bug.

14 years agoRegenerate examples index to include new memory/vm.tracepoints.stp.
Mark Wielaard [Wed, 30 Dec 2009 18:33:06 +0000 (19:33 +0100)]
Regenerate examples index to include new memory/vm.tracepoints.stp.

14 years agoFixup some memory tapset vm kernel function probe fallbacks.
Mark Wielaard [Tue, 29 Dec 2009 20:05:55 +0000 (21:05 +0100)]
Fixup some memory tapset vm kernel function probe fallbacks.

Older kernels don't have all GFP constants defined, and the fallback
kernel function probe fallbacks don't have the same dwarf variable
names as the kernel trace point probes. So replace them with variables
that are available. bytes_alloc was sometimes a long and sometimes a
string, this caused scripts to fail depending on which alternative was
chosen for a particular kernel. So make it a long always.
This isn't a full solution since kmalloc is always inlined which makes
the kernel.function("kmalloc").return probe fail.

* tapset/memory.stp: Define __GFP_THISNODE, __GFP_RECLAIMABLE,
  GFP_TEMPORARY, GFP_HIGHUSER_MOVABLE and GFP_THISNODE when not yet
  defined.
  (__vm.kmalloc.kp): Use $flags, not $gfp_flags. Set bytes_alloc equal
  to bytes_req.
  (__vm.kmem_cache_alloc.kp): Likewise. And use $cachep->buffer_size
  for bytes_req.
  (__vm.kmalloc_node.kp): Likewise.
  (__vm.kmem_cache_alloc_node.kp): Likewise.
  (__vm.kfree.kp): Use $ibjp for ptr, not $return.
  (__vm.kmem_cache_free.kp): Likewise.
* testsuite/buildok/vm.tracepoints.stp: Move vm.kmalloc test to...
* testsuite/buildok/vm.tracepoints.kmalloc.stp: ... here.

14 years agoRemove all caching from _stp_module_relocate.
Mark Wielaard [Tue, 29 Dec 2009 19:04:19 +0000 (20:04 +0100)]
Remove all caching from _stp_module_relocate.

This function now also does user space address relocation. The connection
with module loading/unloading was removed in commit 1b94bf which made all
symbol tables emitted at compile time. _stp_module_relocate is called from
the dwarf unwinder, and when doing some of the symbol lookup through
dwflpp::emit_adress now.

* runtime/sym.c (_stp_module_relocate): Remove last, last_sec and last_tsk
  caching and invalidation code.

14 years agoGuard SDEV_BLOCK and SDEV_CREATED_BLOCK in tapset/scsi.stp with #ifdef.
Mark Wielaard [Tue, 29 Dec 2009 15:34:54 +0000 (16:34 +0100)]
Guard SDEV_BLOCK and SDEV_CREATED_BLOCK in tapset/scsi.stp with #ifdef.

Older kernels didn't define these constants, which are only used in
the tapset/scsi.stp describe_device_state() function.

14 years agoSet last_tsk in runtime/sym.c _stp_module_relocate.
Mark Wielaard [Tue, 29 Dec 2009 08:10:00 +0000 (09:10 +0100)]
Set last_tsk in runtime/sym.c _stp_module_relocate.

last_tsk was checked but never set. Noticed by Wenji Huang.

14 years agoExtend skipped.exp test timeout for slower machines.
Mark Wielaard [Mon, 28 Dec 2009 19:47:59 +0000 (20:47 +0100)]
Extend skipped.exp test timeout for slower machines.

14 years agoFix test output for PR10849 make MAXSKIPPED overflow trigger an error message
Mark Wielaard [Mon, 28 Dec 2009 19:37:20 +0000 (20:37 +0100)]
Fix test output for PR10849 make MAXSKIPPED overflow trigger an error message

14 years agoDefine __GFP_MOVABLE GFP_ZONEMASK __GFP_NOTRACK in memory.stp if not there.
Mark Wielaard [Mon, 28 Dec 2009 11:07:06 +0000 (12:07 +0100)]
Define __GFP_MOVABLE GFP_ZONEMASK __GFP_NOTRACK in memory.stp if not there.

Older kernels might not have these defines available, so define them
if not yet there.

14 years agoXFAIL PR10732 declaration.exp empty-struct always fails.
Mark Wielaard [Mon, 28 Dec 2009 11:05:12 +0000 (12:05 +0100)]
XFAIL PR10732 declaration.exp empty-struct always fails.

14 years agoMerge remote branch 'origin/master'
Tim Moore [Wed, 23 Dec 2009 08:14:02 +0000 (09:14 +0100)]
Merge remote branch 'origin/master'

14 years agoppc stack: transcribe portions of modern kernel ppc/.../asm/ptrace.h
Frank Ch. Eigler [Tue, 22 Dec 2009 17:53:17 +0000 (12:53 -0500)]
ppc stack: transcribe portions of modern kernel ppc/.../asm/ptrace.h

* runtime/stack-ppc.c (__stp_stack_print): Define STACK_FRAME_LR_SAVE,
  STACK_FRAME_REGS_MARKER,STACK_FRAME_MARKER, etc.

14 years agosdt.h semaphore: use get_user / put_user instead of __access_process_vm.
Frank Ch. Eigler [Wed, 23 Dec 2009 02:53:39 +0000 (21:53 -0500)]
sdt.h semaphore: use get_user / put_user instead of __access_process_vm.

    * translate.cxx (translate_pass): Don't #include <access_blah.>
    * tapsets.cxx, tapset-utrace.cxx: Replace __access_process_vm()
      calls with get_user() / put_user() respectively.

14 years agographer: remove _zoomFactor from horizontal scaling calculation
Tim Moore [Tue, 22 Dec 2009 22:30:56 +0000 (23:30 +0100)]
grapher: remove _zoomFactor from horizontal scaling calculation

This makes zooming more consistent and less buggy.

* grapher/Graph.cxx (Graph::draw): Set graph time spread using
  _zoomFactor.
* grapher/Graph.hxx (Graph::getHorizontalScale): no _zoomFactor
* grapher/GraphWidget.cxx (on_motion_notify_event): Dragging increment
  uses _zoomFactor.
  (on_scroll_event): Set extents after changing the zoom factor with
  the scroll wheel.

14 years agographer: scale from right end of graph
Tim Moore [Tue, 22 Dec 2009 18:48:20 +0000 (19:48 +0100)]
grapher: scale from right end of graph

The right side of the graph represents the most recent time. Since
there is never anything interesting to the right of that, it makes
sense to have the origin of the scaling be there.

* grapher/Graph.hxx (getHorizontalScale): new function
* grapher/GraphStyle.cxx (GraphStyleBar::draw, GraphStyleDot::draw,
  GraphStyleEvent::draw): Use cairo transform functions to set up
  scaling.
  (GraphStyleBar::dataIndexAtPoint, GraphStyleEvent::dataIndexAtPoint):
  Base calculations on scaling from right.

14 years agographer: fix bug in looking up event under pointer
Tim Moore [Tue, 22 Dec 2009 14:06:17 +0000 (15:06 +0100)]
grapher: fix bug in looking up event under pointer

I don't why I thought this ever worked.

* grapher/GraphStyle.cxx (GraphStyleEvent::dataIndexAtPoint): return
  distance from beginning of buffer, not beginning of search bounds.

14 years agodon't assume buffer passed to pty_write is null terminated
Tim Moore [Tue, 22 Dec 2009 14:02:43 +0000 (15:02 +0100)]
don't assume buffer passed to pty_write is null terminated

* testsuite/systemtap.examples/general/grapher.stp: Use kernel_char
  instead of kernel_string to dig characters out of buffer.

14 years agographer: draw axes on multiples of the axis "major unit"
Tim Moore [Tue, 22 Dec 2009 11:00:41 +0000 (12:00 +0100)]
grapher: draw axes on multiples of the axis "major unit"

* grapher/Graph.cxx (Graph::draw): Make axis values end up on
  multiples of majorUnit.

14 years agographer: scroll continuously with time
Tim Moore [Tue, 22 Dec 2009 10:35:38 +0000 (11:35 +0100)]
grapher: scroll continuously with time

Don't scale graph based on how much data will fit. This didn't work
very well and resulted in distracting, weird scale changes. We now
assume that scripts output their time (x axis) in milliseconds.

* grapher/Graph.hxx (setCurrentTime): New function.
* grapher/Graph.cxx (Graph::draw): Assume a fixed default scale of 1
  pixel = 5 milliseconds and don't do any autoscaling.
* grapher/GraphWidget.cxx (GraphWidget constructor): Set global time
  base on startup.
  (on_expose_event): Don't search graphs for earliest time.
* grapher/GraphWidget.hxx (_timeBaseInitialized): delete
* grapher/Time.hxx: new file; interface to timeval.

14 years agoPR11015 Support shared library reloading (in different processes)
Mark Wielaard [Mon, 21 Dec 2009 12:02:19 +0000 (13:02 +0100)]
PR11015 Support shared library reloading (in different processes)

* runtime/task_finder_vma.c (stap_remove_vma_map_info): Return negative
  status on failure.
  (stap_find_vma_map_info): Likewise.
  (stap_find_vma_map_info_user): New function.
  (stap_drop_vma_maps): New function.
* runtime/sym.h (addr): Renamed to static_addr, to store addresses for
  sections which are always mapped at the same address.
  (_stp_module_relocate): Add extra struct task_struct *tsk argument.
* runtime/sym.c (_stp_tf_exec_cb): New callback, calls stap_drop_vma_maps.
  (_stp_tf_mmap_cb): Don't store address in module.section, but call
  stap_add_vma_map_info() per tsk->group_leader for matched module.
  Don't register empty/null modules.
  (_stp_module_relocate): Take extra struct task_struct *tsk argument,
  cache last tsk used. Only use section->static_addr for none dynamic
  modules. Use stap_find_vma_map_info_user() to locate dynamic modules.
  (_stp_mod_sec_lookup): Add extra argument unsigned long *rel_addr to
  optionally store relative address when module/section found.
  (_stp_kallsyms_lookup): Use _stp_mod_sec_lookup to find relative address.
  (_stp_sym_init): Register _stp_tf_exec_cb in stap_task_finder_target.
  Add error check to see if task finder could be initialized.
* dwflpp.cxx (emit_address): Pass NULL for kernel/modules and current for
  user tasks to _stp_module_relocate.
* runtime/transport/symbols.c (_stp_do_relocation): Set new static_addr
  _stp_section field.
* runtime/unwind.c (adjustStartLoc): Take new struct task_struct *tsk
  argument and pass to stap_find_vma_map_info_user and _stp_module_relocate
  to find adjusted addr.
  (_stp_search_unwind_hdr): Pass through struct task_struct *tsk.
  (unwind_frame): Likewise.
* tapset/context-symbols.stp (probemod): Add NULL to _stp_mod_sec_lookup
  call to indicate we aren't interested in relative address.
* tapsets.cxx (dwarf_derived_probe_group::emit_module_init): Pass NULL to
  _stp_module_relocate to indicate kernel/module address.

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