]> sourceware.org Git - systemtap.git/commit - tapsets.cxx
PR10458. User actual breakpoint address for [ku]probe[ret].
authorMark Wielaard <mjw@redhat.com>
Fri, 31 Jul 2009 16:46:47 +0000 (18:46 +0200)
committerMark Wielaard <mjw@redhat.com>
Fri, 31 Jul 2009 17:01:45 +0000 (19:01 +0200)
commit6415dddecb81f59996e422e87e1d3da266d743e8
treebd8d939f14299912e111e2027399c39538e394ca
parentf1312b2c2bc1ec7b0475a251f27a2f75779f4ccb
PR10458. User actual breakpoint address for [ku]probe[ret].

Setup the pt_regs REG_IP to the actual breakpoint address before
entering a probe handler for [ku]probe[ret] (and restore it after
returning). This helps getting symbol resolution and backtraces
more correct and makes it more conform with other probe handlers
like the iutrace and profile timers that also provide pt_regs
(which untill now exhibited off-by-one errors while unwinding).

* tapsets.cxx (dwarf_derived_probe_group::emit_module_decls):
  Setup REG_IP correctly before calling enter_kprobe_probe
  and enter_kretprobe_probe, and restore afterwards.
  (uprobe_derived_probe_group::emit_module_decls): Likewise for
  enter_uprobe_probe and enter_uretprobe_probe.
  (kprobe_derived_probe_group::emit_module_decls): Likewise for
  enter_kprobe2_probe and enter_kretprobe2_probe.
* runtime/unwind/i386.h (arch_unw_init_frame_info): Initialize
  info->call_frame to zero.
* runtime/unwind/x86_64.h (arch_unw_init_frame_info): Likewise.
runtime/unwind/i386.h
runtime/unwind/x86_64.h
tapsets.cxx
This page took 0.028581 seconds and 5 git commands to generate.