| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
* runtime/sym.h (_stp_kretprobe_trampoline): Document.
* translate.cxx (unwindsym_dump_context): Add stp_kretprobe_trampoline_addr.
(dump_unwindsyms): Detect kretprobe_trampoline_holder symbol address.
(emit_symbol_data): Initialize and emit _stp_kretprobe_trampoline.
* runtime/transport/symbols.c (_stp_do_relocation): Detect kernel load
address and adjust _stp_kretprobe_trampoline.
* runtime/stack-i386.c (__stp_stack_print): Always use fallback unwinder
when hitting kretprobe_trampoline_holder.
* runtime/stack-x86_64.c (__stp_stack_print): Likewise.
|
|
|
|
|
| |
* runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Fixed
cut-and-paste error.
|
|
|
|
|
|
|
|
|
| |
* runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Grabs the
'mmap_sem' sempaphore. Caches vma information, releases the semaphore,
then makes mmap callbacks.
(__stp_utrace_task_finder_target_quiesce): Calls
__stp_call_mmap_callbacks_for_task() to make mmap callbacks on initial
attach to a task.
|
|
|
|
|
|
|
|
|
|
| |
* runtime/task_finder.c (__stp_call_mmap_callbacks_with_addr): Renamed
from __stp_call_mmap_callbacks_with_vma(). Also added some code from
__stp_utrace_task_finder_target_syscall_exit() that locks the 'mmap_sem'
semaphore. This avoids holding the semaphore while the mmap callbacks
are made.
(__stp_utrace_task_finder_target_syscall_exit): Just calls
__stp_call_mmap_callbacks_with_addr() in the mmap case.
|
|
|
|
|
| |
This is needed for run-stap so that stapio and all child processes can
run as the originally invoking user instead of root.
|
|
|
|
|
|
|
|
|
| |
* runtime/unwind.c (adjustStartLoc): Add extra dbug_unwind.
(_stp_search_unwind_hdr): Always pass true for is_ehframe.
(unwind_frame): Properly pass through is_ehframe to adjustStartLoc().
(unwind): Add extra dbug_unwind.
* translate.cxx (dump_unwindsyms): Output and use correct eh_frame
and eh_len.
|
|
|
|
|
|
|
| |
* runtime/unwind.c (unwind): Call new unwind_frame() first with debug_frame
data, then if that wasn't able to unwind again with eh_frame data.
(unwind_frame): Adapted version of old unwind() function that takes a
table, table length and whether it is an eh_frame table.
|
|
|
|
|
|
|
| |
* runtime/unwind.c (adjustStartLoc): Add ptrType and is_ehframe as arguments.
Use these to adjust location when necessary.
(DEBUG_UNWIND): Move block before adjustStartLoc.
Pass false for is_ehframe throughout.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* runtime/sym.h (_stp_module): Remove unwind_data, unwind_data_len and
unwind_is_ehframe fields. Add debug_frame, eh_frame, debug_frame_len,
eh_frame_len and eh_frame_addr fields.
* runtime/unwind.c: Use debug_frame and debug_frame_len instead of
unwind_data and unwind_data_len throughout.
(cie_for_fde): Take unwind_data and is_ehframe as direct arguments.
* runtime/unwind/unwind.h (cie_for_fde): New function declaration.
* translate.cxx (get_unwind_data): Fetch and return both debug_frame
and eh_frame tables.
(dump_unwindsyms): Dump both debug_frame and eh_frame tables.
|
|
|
|
| |
* runtime/itrace.c: To avoid ia64 lockups, disable itrace on ia64.
|
|
|
|
|
|
|
|
| |
* runtime/itrace.c (usr_itrace_report_signal): Add a workaround for
ppc-specific problem.
* testsuite/systemtap.base/itrace.exp: Improved tests. Improved test
completeness. Will also no longer give fails for systems that don't
support single or block step (will give xfails instead).
|
|
|
|
|
|
|
| |
* runtime/unwind.c (_stp_enc_hi_name): Include prefix for hi == 0.
(_stp_enc_lo_name): Don't include prefix.
(_stp_eh_enc_name): Always include hi_name.
(unwind): Always include newline in dbug_unwind() calls.
|
| |
|
|
|
|
| |
HAVE_NSS related compile time warning.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
PR10091 fix.
* runtime/itrace.c: Includes ptrace_compatibility.h.
(usr_itrace_report_quiesce): Corrected return value for original version
of utrace.
* runtime/ptrace_compatibility.h: Defines arch_has_single_step() and
arch_has_block_step() in terms of ARCH_HAS_SINGLE_STEP and
ARCH_HAS_BLOCK_STEP.
|
|
|
|
|
|
|
| |
Output debuginfo file name and build-id if verification
failed.
* runtime/sym.c: Print more info if not matched.
|
|
|
|
|
|
|
|
|
|
| |
This patch will make %M directive dump the variable width
buffer in hex format instead of returning uint64_t number
as before.
* runtime/vsprintf.c: Modify %M directive.
* stap.1.in: Update description.
* testsuite/systemtap.printf/memory1.stp: Add test case.
|
|
|
|
|
| |
Resynch uprobes1 2-byte-opcode table with uprobes2 x86. Mostly changes a
bunch of mmx instructions from rejected to accepted.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
to make sdt.exp pass
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|\ |
|
| | |
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |
| |
| |
| |
| |
| | |
This code was never used, nor did it actually work.
* runtime/stack.c (_stp_ustack_print): Removed.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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().
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* 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.
|
| |
| |
| |
| |
| | |
* runtime/unwind.c (adjustStartLoc): .absolute sections don't need
adjustment, .dynamic sections need the section addr to be added.
|
| |
| |
| |
| |
| | |
arch_predict_sp_at_ret() for x86_32 now accommodates ret $4.
Added bz10078 regression test.
|
|\| |
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
For uprobes 1 and 2, add unmap_u[ret]probe() and define UPROBES_API_VERSION=2.
Adapt tapsets.cxx accordingly.
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | | |
* runtime/runtime.h: STP_USE_DWARF_UNWINDER don't redefine.
|
| | |
| | |
| | |
| | | |
* runtime/runtime.h: Move up and enable check for STP_USE_DWARF_UNWINDER.
|
| | |
| | |
| | |
| | | |
* runtime/unwind.c (unwind): Pass current to _stp_mod_sec_lookup().
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
* runtime/sym.c (_stp_mod_sec_lookup): Use section size to match addr.
Only return exact matches, not just closes offset.
|
| | | |
| | | |
| | | |
| | | | |
* runtime/sym.c (_stp_mod_sec_lookup): Only set sec when not NULL.
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 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.
|