[Bug tapsets/18597] long_arg() doesn't correctly handle negative values in 32-on-64 environment
dsmith at redhat dot com
sourceware-bugzilla@sourceware.org
Tue Jun 30 17:36:00 GMT 2015
https://sourceware.org/bugzilla/show_bug.cgi?id=18597
--- Comment #8 from David Smith <dsmith at redhat dot com> ---
(In reply to Josh Stone from comment #7)
> (In reply to David Smith from comment #5)
> > What if we decided that if you call longlong_arg() on a 64-bit OS on a
> > 32-bit process you really *want* a 64-bit value from 1 register? In some
> > ways this makes sense and it matches our old behavior. My theory here is
> > that you know what you are doing and if you call longlong_arg() on a 32-bit
> > process you must be in the true 64-bit function at this point.
>
> That assumes you're only using this in the kernel. For a uprobe,
> longlong_arg() still needs to follow the 2-register ABI, no? That's when
> the probing_32bit_app() branch should be active.
>
> So yes, longlong_arg() in 64-bit kernel context should use 1 register,
> regardless of the task, but a 32-bit user context still needs to use 2
> registers.
We can certainly add that code back, but do we know of anyone using the
stp_arg()-based dwarfless parameters functions from uprobes? Do we test that?
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the Systemtap
mailing list