summaryrefslogtreecommitdiffstats
path: root/runtime
Commit message (Collapse)AuthorAgeFilesLines
* PR5273: uprobes_i386.c instruction tableJim Keniston2009-04-241-11/+11
| | | | | Resynch uprobes1 2-byte-opcode table with uprobes2 x86. Mostly changes a bunch of mmx instructions from rejected to accepted.
* Cache and retrieve syscall arguments when needed.David Smith2009-04-242-35/+293
| | | | | | | | | | | | * runtime/task_finder.c (__stp_utrace_task_finder_target_syscall_entry): New function that caches syscall arguments for mmap(), munmap(), and mprotect() for use in __stp_utrace_task_finder_target_syscall_exit(). (__stp_utrace_task_finder_target_syscall_exit): Uses cached syscall argument info when making callbacks. (stap_start_task_finder): Initializes map subsytem for storing syscall argument data. * runtime/task_finder_map.c: New file containing functions to save and retrieve syscall arguments.
* i386 uprobes1: enable the 0x0f 0x1_ row of opcodesJim Keniston2009-04-231-1/+1
| | | | to make sdt.exp pass
* utrace/ia64: Fix syscall_get_set_args_cb() to handle syscalls via syscall()Masami Hiramatsu2009-04-221-3/+10
| | | | | | * runtime/syscall.h (syscall_get_set_args_cb): Fix to decode user stack collectly in case of syscall(), and check the maximum number of syscall arguments.
* PR 9821: Use genuine strftime in staprun/stapioMasami Hiramatsu2009-04-221-105/+7
| | | | | | | | | | * Makefile.am: Add -fno-builtin-strftime to stapio_CFLAGS. * Makefile.in: Ditto. * runtime/staprun/common.c (stap_strfloctime): Use strftime(3). (parse_args): Remove strftime format limitation message. * main.cxx (usage): Ditto. * stap.1.in: Ditto. * staprun.8.in: Ditto.
* Merge branch 'master' of ssh://sourceware.org/git/systemtapMark Wielaard2009-04-211-1/+2
|\
| * Ref-count correctly when deranged handler calls do_exit().Jim Keniston2009-04-211-1/+2
| |
* | Merge branch 'user_unwind'Mark Wielaard2009-04-219-57/+90
|\ \ | |/ |/|
| * Add uprobes_ustack testcase and bug fixlet.Mark Wielaard2009-04-211-1/+4
| | | | | | | | | | | | * runtime/stack.c (_stp_stack_print): Use _stp_usymbol_print when tsk given. * testsuite/systemtap.base/uprobes_ustack.exp: New test file. * testsuite/systemtap.base/uprobes_ustack.stp: Likewise.
| * Add ubacktrace(), print_ustack() and print_ubacktrace().Mark Wielaard2009-04-211-0/+26
| | | | | | | | | | | | | | | | * runtime/sym.c (_stp_usymbol_print): New function. * tapset/ucontext-unwind.stp (print_ubacktrace): New tapset function. (ubacktrace): Likewise. * tapset/ucontext-symbols.stp (print_ustack): Likewise. * testsuite/buildok/ustack.stp: New test for above three functions.
| * 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.
* | PR10078: uretprobes on functions returning structs/unionsJim Keniston2009-04-203-3/+36
| | | | | | | | | | arch_predict_sp_at_ret() for x86_32 now accommodates ret $4. Added bz10078 regression test.
* | Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDavid Smith2009-04-202-33/+350
|\|
| * PR7072: use _stp_reserve_bytes for printf bufferKent Sebastian2009-04-172-33/+350
| |
* | Uses upstream ia64 syscall functions.David Smith2009-04-202-30/+116
|/ | | | | | | | | | | | | 2009-04-20 David Smith <dsmith@redhat.com> * runtime/syscall.h (syscall_get_nr): Uses upstream version of syscall_get_nr() for ia64. (syscall_get_arguments): Ditto. (in_syscall): New ia64-only function from upstream. (syscall_get_set_args_cb): Ditto. (ia64_syscall_get_set_arguments): Ditto. * runtime/task_finder.c (stap_register_task_finder_target): Removed ia64 register cache.
* 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.