[Bug dyninst/24954] stapdyn on ppc/aarch64 do not support full register set

scox at redhat dot com sourceware-bugzilla@sourceware.org
Fri Aug 30 21:13:00 GMT 2019


https://sourceware.org/bugzilla/show_bug.cgi?id=24954

--- Comment #1 from Stan Cox <scox at redhat dot com> ---
ah so for -O0 on ppc the stap probe gets the value from r31 + 0x80 but r31 is
not setup due to 8 arg restriction.  optimization often works because r31 isn't
used.  not too familiar with ppc, why not r1 (sp) + 0x80 ?

stapdyn sets up the probe register context using a dyninst synthesized call,
which dyninst limits to the number of register args.  stapdyn sets up only
those registers so if a probe variable access requires a register that isn't
set, e.g. r31 + 0x80, then it fails. 

If a non set register is not required, oftentimes this will be the case with
-O2, then the access will succeed.  The possible solution is to set up all the
regs using multiple synthesized calls.   See mutatee.cxx::get_dwarf_registers,
mutatee.cxx::mutatee::instrument_dynprobe_target,
uprobes-regs.c::enter_dyninst_uprobe_regs.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Systemtap mailing list