| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
* runtime/loc2c-runtime.h (usr_i386): Fix si/di ordering. Add ip.
(usr_x86_64): Add rip.
(u_*_register): Use kernel standard ARRAY_SIZE() instead of S().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
|
| |
* runtime/stack-i386.c (_stp_stack_print): Make call to uprobe_get_pc()
conditional on CONFIG_UTRACE.
* runtime/stack-x86_64.c: Ditto.
|
|
|
|
|
| |
* runtime/loc2c-runtime.h: Remove k_ vs u_[store_]deref; share instead.
* tapsets.cxx: Remove k_ vs u_ redirection for *deref().
|
|
|
|
| |
* runtime/stack.c (_stp_stack_print): Comment out *retprobe logic if !CONFIG_UTRACE.
|
|
|
|
| |
* 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
|
| |/ |
|