summaryrefslogtreecommitdiffstats
path: root/runtime/uprobes/uprobes.c
Commit message (Collapse)AuthorAgeFilesLines
* map through uretprobe trampoline in an arbitrary taskTim Moore2010-01-131-17/+51
| | | | | | | | | * runtime/uprobes2/uprobes.c (uprobe_get_pc_task): new function (lookup_uretprobe): new helper function (uprobe_get_pc): use it * runtime/uprobes2/uprobes.h (uprobe_get_pc_task): declare * runtime/uprobes/uprobes.c : ditto * runtime/uprobes/uprobes.h : ditto
* bz6436 backtraces from uprobesTim Moore2010-01-051-31/+40
| | | | | | | | | | | | | | | | | | | | | This implements proper unwinding from uprobes in the presence of uretprobe trampolines. * runtime/stack.c (_stp_stack_print): Rework for uprobe context case and refactor a bit. * runtime/uprobes2/uprobes.h (GET_PC_URETPROBE_NONE): new constant * runtime/uprobes2/uprobes.c (uprobe_get_pc): Support translating the trampoline function from uprobe context in addition to uretprobe context. * runtime/uprobes/uprobes.h (GET_PC_URETPROBE_NONE): ditto * runtime/uprobes/uprobes.c (uprobe_get_pc): ditto * tapsets.cxx (uprobe_derived_probe_group::emit_module_decls): Initialize ri in context to GET_PC_URETPROBE_NONE in generated enter_uprobe_probe. * testsuite/systemtap.context/fib.stp: Add an option to do a backtrace on function entry. * testsuite/systemtap.context/fib.exp: Test backtrace in function entry (uprobe) probes.
* runtime backtracing: port commit #2e7f8442 to uprobes1Frank Ch. Eigler2009-12-201-0/+38
| | | | * runtime/uprobes/uprobes.c (uprobe_get_pc): new function
* Avoid lockdep warnings.Srikar Dronamraju2009-10-191-7/+17
| | | | | | | | | | | | | | | | | | | | uprobe_fork_uproc() runs with parent_uproc->rwsem locked. However uprobe_mk_process() that gets called within uprobe_fork_uproc() also locks child_uproc->rwsem after initializing it. Lockdep report confuses this to acquiring a lock that already has been acquired and suggests using sub-classes. The alternatives we have are: 1. use classes level to distinguish different uproc structures. 2. unlock parent_uproc->rwsem before we call uprobe_fork_uproc(). 3. dont try locking child_uproc->rwsem; since we are protected by uproc_mutex as well as parent_uproc->rwsem; We use the last approach. Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com> ---
* PR9940: add/use unmap_u[ret]probeJim Keniston2009-04-151-6/+28
| | | | | For uprobes 1 and 2, add unmap_u[ret]probe() and define UPROBES_API_VERSION=2. Adapt tapsets.cxx accordingly.
* PR7082: patch for uprobes1 (kernel <= 2.6.24)Jim Keniston2008-12-291-11/+67
|
* Add a version of uprobes that works with the 2.6.27 version of utrace.Jim Keniston2008-11-031-0/+13
|
* PR5274: uretprobes fixes, belated commitSrikar Dronamraju2008-10-281-1/+44
|
* PR 6850Jim Keniston2008-10-031-28/+148
| | | | | Fix handling of fork with uretprobe_instances outstanding. Add regression test.
* PR 5693kenistoj2008-02-111-4/+75
| | | | | | | * runtime/uprobes/uprobes.c: Intercept handler-destined signals received while we're single-stepping, and re-queue them afterward. * runtime/uprobes/uprobes.h: Ditto
* * runtime/uprobes/uprobes.c: Within a probed process, serializekenistoj2008-01-251-1/+11
| | | | | | | calls to access_process_vm() when populating instructions slots. Fixes an SMP bug on multithreaded apps with many active probepoints. * runtime/uprobes/uprobes.h: Ditto
* * runtime/uprobes/uprobes.c: Fix from Srinivasa: Recastkenistoj2008-01-221-5/+5
| | | | rcu_dereferences of engine->data to resync with kernel.org builds.
* * runtime/uprobes/uprobes.c: Added static copy ofkenistoj2008-01-191-0/+62
| | | | access_process_vm(), for kernels that don't export it.
* uprobes ppc64 ssol changessrikar2007-10-251-0/+4
|
* * runtime/uprobes/uprobes.[ch], uprobes_i386.[ch],kenistoj2007-10-161-2/+3
| | | | | | | | | uprobes_ppc64.h, uprobes_s390.h: Adjusted SLOT_IP and arch_validate_probed_insn to accept task pointer (needed by x86_64); added uprobe_probept_arch_info and uprobe_task_arch_info (ditto). * runtime/uprobes/uprobes_i386.c: Fixed a couple of glitches discovered when porting to x86_64
* PR 5083kenistoj2007-10-091-13/+38
| | | | | | | * runtime/uprobes/uprobes.c: Adjust module ref-count when creating or removing uprobe_process, so "rmmod --wait uprobes" waits as needed until uretprobed functions return.
* PR 5709kenistoj2007-10-081-84/+28
| | | | | | | | | | | | | | | | | | | | | | | * main.cxx: Add pass 4.5: make uprobes.ko in runtime/uprobes * buildrun.cxx: Add uprobes_enabled() and make_uprobes(). Factor run_make_cmd() out of compile_pass(). * buildrun.h: Add uprobes_enabled and make_uprobes decls. * tapsets.cxx: Do correct #include for modprobed uprobes.ko; set need_uprobes in pass 2. * session.h: Add need_uprobes * runtime/staprun/common.c: Add -u option -> need_uprobes * runtime/staprun/staprun_funcs.c: Generalize insert_module() to support inserting uprobes.ko. * runtime/staprun/staprun.c: Add enable_uprobes(). insert_module call becomes insert_stap_module(). * runtime/staprun/staprun.h: Reflect insert_module() and need_uprobes changes * runtime/uprobes/*.[c,h]: uprobes is built as a module, rather than included into the source of the stap-generated module. * runtime/uprobes/Makefile: Added
* uprobes.c, uprobes.h: architecture-independent codekenistoj2007-09-281-0/+2297
uprobes_i386.c, uprobes_i386.h: i386 code uprobes_arch.c, uprobes_arch.h: map to architecture-specific files