[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