| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
* runtime/uprobes/uprobes.c (uprobe_get_pc): new function
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* runtime/loc2c-runtime.h (fetch_register, store_register):
forked into k_ (kernel) and u_ (user) varieties. Implement
i386 and x86_64 in terms of regset.h; fall back to k_* for
other architectures.
* tapsets.cxx: (*::visit_target_symbol): Emit macros to map
loc2c's fetch/store_register to loc2c-runtime's k_ or u_ as
appopriate.
|
|
|
|
|
|
|
|
|
|
|
| |
Turns out that it breaks on kernels that don't have utrace.
* runtime/runtime.h : Don't include uprobes.h
* runtime/stack.c: Include uprobes.h
* runtime/stack-i386.c: Check if uprobes is included at all.
* runtime/stack-x86_64.c: ditto
* tapsets.cxx (uprobe_derived_probe_group::emit_module_decls): put
uprobes.h include back in.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only prints symbol+offset, or an address if the symbol isn't
known.
* runtime/runtime.h (SYM_VERBOSE_NO, SYM_VERBOSE_FULL,
SYM_VERBOSE_BRIEF): new constants
* runtime/stack.c (_stp_stack_print): support brief format
* runtime/sym.c (_stp_func_print): ditto
* tapset/ucontext-unwind.stp (print_ubacktrace_brief): new function
* testsuite/systemtap.context/fib.c: new test program
* testsuite/systemtap.context/fib.stp: new test
* testsuite/systemtap.context/fib.exp: new test
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only works in uretprobes for the moment.
* runtime/stack-x86_64.c (__stp_stack_print): Rewrite trampoline PC
addresses if necessary.
* runtime/stack-i386.c (__stp_stack_print): ditto
* runtime/stack-arm.c (__stp_stack_print): Add extra argument
* runtime/stack-ppc.c (__stp_stack_print): ditto
* runtime/stack-s390.c (__stp_stack_print): ditto
* runtime/stack.c (_stap_stack_print): call __stp_stack_print with
uretprobe_instance.
* testsuite/systemtap.context/uprobe_backtrace.stp: new test
|
|
|
|
|
|
| |
return address
* runtime/uprobes2/uprobes.c (uprobe_get_pc): new function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's easily available in kretprobes and uretprobes and is consistent
with the rest of the program state.
* translate.cxx (emit_common_header) : add uretprobe_instance to context.
* tapsets.cxx (common_probe_entryfn_prologue): Initialize ri in
context to 0.
(dwarf_derived_probe_group::emit_module_decls): Change IP to return
address in kretprobes.
(uprobe_derived_probe_group::emit_module_decls): enter_uretprobe_probe:
set ri (uretprobe_instance) in context. Change IP to return
address in uretprobes. Don't emit uprobe include and #define
* runtime/runtime.h : Add includes and #define for uprobes.
* runtime/stack.c (_stp_stack_print, _stp_stack_snprint): Add extra
argument for uretprobe_instance.
* tapset/context-unwind.stp (print_backtrace, backtrace): Pass NULL
for uretprobe_instance to _stp_stack_print.
* tapset/ucontext-unwind.stp (print_ubacktrace, ubacktrace): pass
uretprobe_instance to _stp_stack_print
* testsuite/systemtap.context/uprobe_uaddr.exp : new test for uaddr in
function probes
* testsuite/systemtap.context/uprobe_uaddr.stp : new file
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* runtime/alloc.c (_stp_kmalloc): Fixed compilation when DEBUG_MEM is
defined. Improved allocated memory tracking.
(_stp_kzalloc): Ditto.
(_stp_vmalloc): Ditto.
(_stp_alloc_percpu): Ditto.
(_stp_kmalloc_node): Ditto.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It does not exist in recent kernels.
Use regs->ARM_cpsr instead, this should work with all versions
of linux found in git repo (versions >=2.6.12-rc2). Difference
between condition_codes() and regs->ARM_cpsr should not matter
for systemtap.
|
| |
| |
| |
| | |
* runtime/alloc.c (_stp_kmalloc): Move var decl back to top.
|
| |
| |
| |
| |
| |
| |
| | |
DEBUG_MEM can & does evoke locking timeouts.
* runtime/alloc.c (*): Track __stp_allocated_memory regardless
of DEBUG_MEM.
|
| |
| |
| |
| |
| | |
* runtime/alloc.c: Define DEBUG_MEM.
* runtime/print.c (_stp_print_kernel_info): Reformat/rescale mem values.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In commit 98c783852039061db8c1611742660aaded0eab77 ("Use proper types
for do_div") I imprudently changed some variables to an unsigned type
while in some places the code actually relies on a sign.
So, let's be a bit smarter now and use temporary variables.
Reported-by: Wenji Huang <wenji.huang@oracle.com>
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
| |
| |
| |
| |
| |
| |
| | |
* runtime/addr-map.c (add_bad_addr_entry): Uses systemtap memory
allocation/deallocation wrappers.
* runtime/itrace.c (create_itrace_info): Ditto.
(remove_usr_itrace_info): Ditto.
|
| |
| |
| |
| |
| | |
* runtime/staprun/relay.c (reader_thread): Check switch_file thread flags
inside inner read-write loop. And clear the flags after switching file.
|
|/ |
|
|
|
|
| |
changes.
|
|\ |
|
| |
| |
| |
| | |
* runtime/uprobes/uprobes_ppc.c (calc_offset): Fix printk types.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
do_div accepts unsigned 64-bit integer type for dividend, signed types
would cause do_div's typecheck fail:
stat-common.c: In function 'needed_space':
stat-common.c:50: error: comparison of distinct pointer types lacks a cast
...same errors in time.c and tapset-timers.cxx's generated code...
A fix for time.c is special, on ppc32 cycles_t is 32-bit, so technically
we don't need do_div, but since the whole _stp_gettimeofday_ns() operates
on 64-bit types we'd better be safe and use uint64_t for the math.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Currently staprun fails at send_relocation_kernel(), this is because
ppc32 doesn't have ".__start" symbol. I think we should use _stext,
just as other arches.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
| |
| |
| |
| |
| |
| |
| | |
_div64 and _mod64 arch-specific details were taken from gcc/longlong.h,
just as it was done for i386.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* runtime/copy.c: Can use ppc64's code.
* runtime/regs.h: Ditto.
* runtime/string.h: Ditto.
* tapset/context.stp: Ditto.
* tapset/errno.stp: Ditto.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
Get rid of magic numbers, use appropriate defines from ptrace.h.
From now on stack-ppc.c should be suitable for ppc32.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
| |
| |
| |
| |
| |
| | |
There should be no functional changes in this patch.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
| |
| |
| |
| |
| |
| |
| | |
The code *looks* generic enough, so I think it can be used for ppc32
without modifications.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
|/ |
|
|
|
|
|
| |
* runtime/itrace.c (usr_itrace_report_signal): On modern utrace,
must check/propagate utrace_signal_action().
|
|
|
|
|
| |
* runtime/alloc.c (_stp_alloc_percpu): Refuses to allocate too much percpu
memory.
|
|
|
|
|
| |
* runtime/staprun/staprun_funcs.c (assert_stap_module_permissions): Mark
parameters unused.
|
|
|
|
| |
canonicalizing /lib/modules/KVER/systemtap.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| | |
* runtime/sym.c (_stp_tf_mmap_cb): Only look for first load of whole module
that is executable. Add check for detecting reloading of module.
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
group owner of the uprobes buld directory to build uprobes.ko.
- When building uprobes.ko, make all generated files writable by the group
owner of the uprobes build directory.
- Don't change the group owner of the uprobes build directory during
'make install'
|
|\| |
|
| |\ |
|
| | |
| | |
| | |
| | | |
limited to members of stapusr.
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | | |
Conflicts:
configure
|
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We are abusing the "first" section address here to indicate where the
module (actually first segment) is loaded (which is why we are ignoring
the offset). It would be good to redesign the stp_module/stp_section
data structures to better align with the actual memory mappings we are
interested in (especially the "section" naming is slightly confusing
since what we really seem to mean are elf segments (which can contain
multiple elf sections).
* runtime/sym.c (_stp_tf_mmap_cb): Add cheat comment.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* dwflpp.cxx (dwflpp::emit_address): Enable task finder and emit a
_stp_module_relocate for the ".dynamic" section when seeing a
user-space dso address.
* runtime/sym.c (_stp_mod_sec_lookup): Remove .dynamic section addr cheat.
(_stp_tf_mmap_cb): Add cheat here.
|
| |
| |
| |
| |
| |
| |
| | |
* runtime/sym.h: Define _stp_need_vma_tracker.
* translate.cxx (emit_symbol_data_done): Output _stp_need_vma_tracker value.
(c_unparser::emit_module_init): If STP_NEED_VMA_TRACKER isn't defined
check _stp_need_vma_tracker to call _stp_sym_init().
|
| |
| |
| |
| |
| | |
Ensure uprobes install directory has group 'stap-server'.
Rename igid_in to in_group.
|
| | |
|
| |
| |
| |
| | |
individually.
|