This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug tapsets/18597] long_arg() doesn't correctly handle negative values in 32-on-64 environment
- From: "mcermak at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Thu, 25 Jun 2015 15:03:22 +0000
- Subject: [Bug tapsets/18597] long_arg() doesn't correctly handle negative values in 32-on-64 environment
- Auto-submitted: auto-generated
- References: <bug-18597-6586 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=18597
--- Comment #2 from Martin Cermak <mcermak at redhat dot com> ---
> =======
> $ git diff tapset/x86_64/registers.stp | nl
> 1 diff --git a/tapset/x86_64/registers.stp
> b/tapset/x86_64/registers.stp
> 2 index d7035e4..e662f9e 100644
> 3 --- a/tapset/x86_64/registers.stp
> 4 +++ b/tapset/x86_64/registers.stp
> 5 @@ -167,7 +167,7 @@ function _stp_arg:long (argnum:long,
> sign_extend:long, truncate:long) %{ /* pure
> 6 default:
> 7 goto bad_argnum;
> 8 }
> 9 - if (STAP_ARG_truncate || argsz == sizeof(int)) {
> 10 + if (STAP_ARG_truncate || _stp_is_compat_task()) {
> 11 if (STAP_ARG_sign_extend)
> 12 STAP_RETVALUE = (int64_t)
> __stp_sign_extend32(val);
> 13 else
> 14 @@ -215,12 +215,7 @@ function ulong_arg:long (argnum:long) {
> 15 }
> 16
> 17 function longlong_arg:long (argnum:long) {
> 18 - if (probing_32bit_app()) {
> 19 - lowbits = _stp_arg(argnum, 0, 1)
> 20 - highbits = _stp_arg(argnum+1, 0, 1)
> 21 - return ((highbits << 32) | lowbits)
> 22 - } else
> 23 - return _stp_arg(argnum, 0, 0)
> 24 + return _stp_arg(argnum, 0, 0)
> 25 }
> 26
> 27 function ulonglong_arg:long (argnum:long) {
> $
> =======
>
> Lines 18-23 are just removal of redundant code that, based on my testing, appears to never be used ... stuff deleted ...
Actually, I am not sure about user scripts. If there is a risk this might break
them, then lines 18-26 (and respective snippets for powerpc and s390) can stay
in place. It is not directly related to the reported issue. Maybe I shouldn't
have mixed these two independent things here.
--
You are receiving this mail because:
You are the assignee for the bug.