summaryrefslogtreecommitdiffstats
path: root/runtime
Commit message (Collapse)AuthorAgeFilesLines
* Don't use stack fallback for user space unwinding when using dwarf unwinder.Mark Wielaard2009-04-212-8/+16
| | | | | | | | It never seems to be anywhere near correct. * runtime/stack-i386.c (__stp_stack_print): Stop unwinding when dwarf unwinder fails and we are unwinding user space task. * runtime/stack-x86_64.c (__stp_stack_print): Likewise.
* Remove old _stp_ustack bits.Mark Wielaard2009-04-211-17/+0
| | | | | | This code was never used, nor did it actually work. * runtime/stack.c (_stp_ustack_print): Removed.
* Pass task from tapset, through stack and unwind functions for lookup.Mark Wielaard2009-04-208-19/+25
| | | | | | | | | | | | | | | | | * runtime/stack-arm.c (__stp_stack_print): Take struct task_struct *. * runtime/stack-ia64.c (__stp_stack_print): Likewise. * runtime/stack-ppc64.c (__stp_stack_print): Likewise. * runtime/stack-s390.c (__stp_stack_print): Likewise. * runtime/stack-i386.c (__stp_stack_print): Likewise. And add check and pass to unwind() and _stp_func_print(). * runtime/stack-x86_64.c: Likewise. * runtime/stack.c *_stp_stack_print): Take and pass on task_struct. (_stp_stack_snprint): Likewise. * runtime/unwind.c (unwind): Take and use task_struct for _stp_mod_sec_lookup(). * tapset/context-unwind.stp (print_backtrace): Pass NULL to _stp_stack_print(). (backtrace): Pass NULL to _stp_stack_snprint().
* Pass task to _stp_func_print and _stp_kallsyms_lookup.Mark Wielaard2009-04-194-8/+9
| | | | | | | | | * runtime/sym.c (_stp_func_print): Take task, pass to _stp_kallsyms_lookup. * runtime/stack.c (print_stack_address): Pass NULL. * runtime/stack-i386.c (_stp_stack_print_fallback): Pass NULL. (__stp_stack_print): Pass NULL or current. * runtime/stack-x86_64.c (_stp_stack_print_fallback): Pass NULL. (__stp_stack_print): Pass current.
* Handle .absolute and .dynamic (user space) addresses in adjustStartLoc.Mark Wielaard2009-04-191-6/+12
| | | | | * runtime/unwind.c (adjustStartLoc): .absolute sections don't need adjustment, .dynamic sections need the section addr to be added.
* PR7072: use _stp_reserve_bytes for printf bufferKent Sebastian2009-04-172-33/+350
|
* Privatize MAX_STACK_DEPTHJosh Stone2009-04-162-3/+3
| | | | | | The kernel-tip tree also has a MAX_STACK_DEPTH defined in perf_counter.h, so we need to separate our definition. I've changed the definition in our unwinder to STP_MAX_STACK_DEPTH.
* Improved ppc and ia64 runtime/syscall.h.David Smith2009-04-161-7/+18
| | | | | | | | | 2009-04-16 David Smith <dsmith@redhat.com> * syscall.h (syscall_get_arguments): Fixed sign extension for 32-bit processes on ppc64. (__ia64_syscall_get_arguments): Calls ia64_fetch_register() to handle NULL values. Corrected register numbers.
* PR9940: add/use unmap_u[ret]probeJim Keniston2009-04-154-14/+75
| | | | | For uprobes 1 and 2, add unmap_u[ret]probe() and define UPROBES_API_VERSION=2. Adapt tapsets.cxx accordingly.
* Merge branch 'master' of ssh://kenistoj@sources.redhat.com/git/systemtapJim Keniston2009-04-1517-520/+1291
|\
| * Merge branch 'dwarf_unwinder'Mark Wielaard2009-04-152-8/+8
| |\
| | * Don't redefine STP_USE_DWARF_UNWINDER.Mark Wielaard2009-04-121-0/+2
| | | | | | | | | | | | * runtime/runtime.h: STP_USE_DWARF_UNWINDER don't redefine.
| | * Prefer dwarf unwinder on i386 and x86_64.Mark Wielaard2009-04-111-7/+5
| | | | | | | | | | | | * runtime/runtime.h: Move up and enable check for STP_USE_DWARF_UNWINDER.
| | * Fix unwind _stp_mod_sec_lookup.Mark Wielaard2009-04-101-1/+1
| | | | | | | | | | | | * runtime/unwind.c (unwind): Pass current to _stp_mod_sec_lookup().
| * | Merge branch 'sections'Mark Wielaard2009-04-152-15/+13
| |\ \
| | * | Make sure addr falls inside section in _stp_mod_sec_lookup.Mark Wielaard2009-04-141-14/+10
| | | | | | | | | | | | | | | | | | | | * runtime/sym.c (_stp_mod_sec_lookup): Use section size to match addr. Only return exact matches, not just closes offset.
| | * | Only set sec in _stp_mod_sec_lookup when not NULL.Mark Wielaard2009-04-141-1/+2
| | | | | | | | | | | | | | | | * runtime/sym.c (_stp_mod_sec_lookup): Only set sec when not NULL.
| | * | Keep track of relocation section sizes.Mark Wielaard2009-04-141-0/+1
| | |/ | | | | | | | | | | | | | | | | | | | | | * runtime/sym.h (_stp_section): Add size field. * translate.cxx (dump_unwindsyms): Get start of module address space, turn seclist into vector of secname, size pairs, track relocation section size, or add module address range if no sections, output size in _stp_section list.
| * / PR10067: fix bitfield accessJosh Stone2009-04-131-5/+6
| |/ | | | | | | | | | | | | | | | | * tapsets.cxx (dwflpp::translate_components): Eliminate the extra die-dereference at the end of the loop (a regression from @casts). * runtime/loc2c-runtime.h (store_bitfield): Use the target as the representative type, since the base is always int64_t. Also be a bit more aggressive with masking and parentheses. * testsuite/systemtap.base/bitfield.*: New test for R/W bitfields.
| * Uses <asm/syscall.h> when available.David Smith2009-04-093-149/+207
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-04-09 David Smith <dsmith@redhat.com> * buildrun.cxx (compile_pass): Compile autoconf test for <asm/syscall.h>. * runtime/autoconf-asm-syscall.c: New "autoconf" test the presence of <asm/syscall.h>. * runtime/syscall.h: If <asm/syscall.h> exists, use it. Otherwise, use our private copy of the functions for each architecture. (syscall_get_nr): Renamed from __stp_user_syscall_nr(). (syscall_get_return_value): Renamed from __stp_user_syscall_return_value(). (syscall_get_arguments): Renamed from __stp_user_syscall_arg(). * runtime/task_finder.c (__stp_utrace_task_finder_target_syscall_exit): Uses new syscall.h functions. * tapset/utrace.stp: Ditto.
| * Make simple probes work even without KPROBES in the kernel.Mark Wielaard2009-04-091-0/+8
| | | | | | | | | | | | | | | | | | Without KPROBES very little works atm. But stack.c file is unconditionally imported, while these two functions are only used through context-unwind.stp. This at least lets us do simple sanity checks on "plain" kernels. * runtime/stack.c (_stp_stack_print, _stp_stack_snprint): Wrap in #if defined (CONFIG_KPROBES).
| * Make new stap_task_finder_targets chain on correct list.Mark Wielaard2009-04-091-1/+1
| | | | | | | | | | * runtime/task_finder.c (stap_register_task_finder_target): Also check both pathlen are zero.
| * Make sure code using the vma tracker compiles again.Mark Wielaard2009-04-083-5/+6
| | | | | | | | | | | | | | | | * runtime/runtime.h: Include task_finder.c. * runtime/sym.c: Always define task_finder callbacks for usage in tapsets. * runtime/task_finder.c: Define dummy stap_task_finder_target when ! defined(CONFIG_UTRACE). * tapsets.cxx: Never include task_finder.c directly.
| * Fix DEBUG_TASK_FINDER_VMA compilation.Mark Wielaard2009-04-081-1/+1
| | | | | | | | * runtime/sym.c (_stp_tf_mmap_cb): We get passed vm_flags, not flags.
| * Added '#ifdef STP_NEED_VMA_TRACKER' around code that needs it.David Smith2009-04-081-1/+2
| | | | | | | | | | | | | | 2009-04-08 David Smith <dsmith@redhat.com> * runtime/sym.c: Added '#ifdef STP_NEED_VMA_TRACKER' around code that needs it.
| * Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDavid Smith2009-04-081-2/+2
| |\
| | * Use _stp_snprintf in _stp_symbol_snprint.Mark Wielaard2009-04-081-2/+2
| | | | | | | | | | | | * runtime/sym.c (_stp_symbol_snprint): Use _stp_snprintf, no _stp_printf.
| * | Only includes task_finder.c when needed.David Smith2009-04-081-2/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | | | 2009-04-08 David Smith <dsmith@redhat.com> * tapsets.cxx (itrace_derived_probe_group::emit_module_decls): Added inclusion of task_finder.c back. Unconditionally including it when not needed causes all systemtap scripts to fail on kernels with no utrace support. (utrace_derived_probe_group::emit_module_decls): Ditto. (uprobe_derived_probe_group::emit_module_decls): Ditto. * runtime/runtime.h: Removed unconditional inclusion of task_finder.c.
| * Track VMA per pid (group_leader/tgid).Mark Wielaard2009-04-071-5/+6
| | | | | | | | | | * runtime/sym.c (_stp_tf_vm_cb): Add and remove tsk->group_leader. (_stp_mod_sec_lookup): find vma for task->group_leader.
| * PR 9940. Rearchitected task_finder.c a bit.David Smith2009-04-072-298/+261
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-04-07 David Smith <dsmith@redhat.com> PR 9940. * tapsets.cxx (emit_vma_callback_probe_decl): Initialized new callbacks. (utrace_derived_probe_group::emit_probe_decl): Ditto. (uprobe_derived_probe_group::emit_module_decls): Uses new callback. Makes sure mapping is executable before trying to set a probe in it. (itrace_derived_probe_group::emit_module_init): Calls _stp_sym_init(). (utrace_derived_probe_group::emit_module_init): Ditto. (uprobe_derived_probe_group::emit_module_init): Ditto. * runtime/sym.c: Moved task_finder_vma.c inclusion here from task_finder.c. (_stp_sym_init): New function. (_stp_tf_mmap_cb): New function that replaces _stp_tf_vm_cb. (_stp_tf_munmap_cb): Ditto. * runtime/task_finder.c: Removed task_finder_vma.c inclusion. Split vm_callback into 3 callbacks: mmap_callback, munmap_callback, and mprotect_callback. (stap_register_task_finder_target): Initializes new events variables for the new callbacks. (__STP_TASK_VM_BASE_EVENTS): No longer specifies syscall entry events. (__stp_call_mmap_callbacks): New function. (__stp_call_mmap_callbacks_with_vma): Ditto. (__stp_call_munmap_callbacks): Ditto. (__stp_call_mprotect_callbacks): Ditto. (__stp_call_vm_callbacks): Removed. (__stp_utrace_task_finder_target_quiesce): Calls __stp_call_mmap_callbacks() instead of __stp_call_vm_callbacks(). (__stp_utrace_task_finder_target_syscall_entry): Removed function. (__stp_utrace_task_finder_target_syscall_exit): Reports raw mmap()/mprotect()/munmap() events.
| * PR10032: Trigger cleanup after relay thread errorsJosh Stone2009-04-032-10/+25
| | | | | | | | | | | | When the relay threads encounter an error, they now send SIGTERM to the rest of the process before the thread exit, so we get a clean shutdown. For EPIPE in particular, error messages are also suppressed.
| * Add a .gitignore for uprobesJosh Stone2009-04-021-0/+7
| |
| * Really fix run-stap this time, I promise!Josh Stone2009-04-021-1/+14
| |
| * Fix strftime format bugMasami Hiramatsu2009-04-021-3/+6
| | | | | | | | | | This fixes bugs in strftime-subset function. This modifies %C, %l and %j to fit the output of date command.
| * Fix a bug in file size limitation code.Masami Hiramatsu2009-04-022-3/+3
| | | | | | | | | | | | | | | | | | This fixes a bug in stapio, which checks written data size and switches new file when it exceeds a limit. The problem is that written-data-size counter ignores the first written-data size when switching files. So, actual file size always exceeds the limit. This changes stapio to initialize written-data-size counter with the size of the data which will be written in new file.
| * Reorder includes so regs.c and regs-ia64.c included before task_finder.c.William Cohen2009-04-021-0/+2
| |
| * Revert "runtime/syscall.h: Forward declare __ia64_fetch_register."William Cohen2009-04-021-3/+0
| | | | | | | | This reverts commit 49be62cc7130e60947bbae90b6bf177e173c8b29.
| * runtime/syscall.h: Forward declare __ia64_fetch_register.Mark Wielaard2009-04-021-0/+3
| |
| * PR6580: Implement symname, symdata and modname context functions.Mark Wielaard2009-04-021-7/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a couple of the suggested context/stack revamp functions from PR6580. In particular it replaces the symbolname() function that sneaked in with the pr6866 branch merge with the suggested symname(). * runtime/sym.c (_stp_mod_sec_lookup): Make section optional. (_stp_symbol_snprint): Provide a way to get optional module info. * tapset/context-symbols.stp: Replace symbolname() with symname(), add modname() and symdata(). (probemod): Implement pc based fallback. * tapset/context-unwind.stp (caller): Adjust for _stp_symbol_snprint change. * testsuite/systemtap.context/usymbols.exp: Use new symname. * testsuite/buildok/modname.stp: New test. * testsuite/buildok/symdata.stp: Likewise. * testsuite/buildok/symname.stp: Likewise.
| * Make task_finder.c compiler if ! defined (CONFIG_UTRACE).Mark Wielaard2009-04-021-2/+28
| | | | | | | | | | | | | | * runtime/task-finder.c: If ! defined (CONFIG_UTRACE) define dummy noop API for sym.c consisting of struct stap_task_finder_target, stap_add_vma_map_info, stap_remove_vma_map_info and stap_find_vma_map_info.
| * PR10019: --skip-badvars to suppress run-time memory errors tooFrank Ch. Eigler2009-04-011-1/+5
| | | | | | | | | | | | | | | | * NEWS: Note this change. * hash.cxx (find_script_hash): Add s.skip_badvars into hash. * translate.cxx (translate_pass): Emit STP_SKIP_BADVARS. * runtime/loc2c-runtime.h (DEREF_FAULT, STORE_DEREF_FAULT): Provide dummy implementation if STP_SKIP_BADVARS.
| * Revert "Fix runtime/itrace.c to call arch_has_*_step() prior to calling ↵Josh Stone2009-04-011-13/+0
| | | | | | | | | | | | utrace_control" This reverts commit 489afa702639fd10e9756795bd516d939766247d.
| * Fix runtime/itrace.c to call arch_has_*_step() prior to calling utrace_controlMaynard Johnson2009-04-011-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As Roland pointed out in his Mar 31 reply to a posting of mine (subject: Re: Testing insn.block probe point uncovers possible utrace bug), utrace_control() documents that the caller must ensure that arch_has_single_step and arch_has_block_step are defined before trying to use those step modes. The attached patch addresses that issue. I've tested this patch on x86_64 arch, and a block step test runs successfully, since block step is supported on that arch. Testing on ppc64 arch, the test fails as expected (since block step is not supported on ppc64 yet) with: "ERROR: callback for <pid> failed: 1" which is sent to stdderr and "usr_itrace_init: arch does not support block step mode" which is sent to the system log. This isn't the most user-friendly way of surfacing an error. Perhaps the stap runtime could have a set of defined return codes that would be mapped to strings so the user can get an idea of what the error is without looking in the system log. But that's a side issue, of course. Regards, -Maynard
| * Merge branch 'master' into pr6866Mark Wielaard2009-04-017-34/+683
| |\
| | * PR4105: support up to 9 (up from 5) array index dimensionsFrank Ch. Eigler2009-04-012-0/+634
| | | | | | | | | | | | | | | | | | | | | | | | * runtime/map-gen.c, pmap-gen.c: Hand-expand arity 6..9 cases throughout. * testsuite/buildok/thirty.stp: New test. * testsuite/buildko/two.stp: New test. An Alan Smithee patch.
| * | Merge branch 'master' into pr6866Mark Wielaard2009-03-2210-37/+548
| |\ \
| * | | Move _stp_tf_vm_cb to sym.c.Mark Wielaard2009-03-201-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | * tapsets.cxx (utrace_derived_probe_group::emit_module_decls): Remove output task finder vma callback _stp_tf_vm_cb. * runtime/sym.c (_stp_tf_vm_cb): And add it here.
| * | | Merge branch 'master' into pr6866Mark Wielaard2009-03-204-10/+61
| |\ \ \
| * | | | Remove __stp_tf_vm_cb from task_finder interface.Mark Wielaard2009-03-191-34/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * runtime/task_finder.c (__stp_tf_vm_cb): Removed. * tapsets.cxx (utrace_derived_probe_group::emit_module_decls): Output task finder vma callback and hook it.
| * | | | Initialize user and vm_start before use.Mark Wielaard2009-03-191-3/+2
| | | | | | | | | | | | | | | | | | | | * runtime/sym.c (_stp_mod_sec_lookup): Initialize user and vm_start.