From: "Marcin Kościelnicki" <koriakin@0x04.net>
To: Pedro Alves <palves@redhat.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH] gdb.trace: Fix string collection for 64-bit platforms.
Date: Thu, 21 Jan 2016 16:18:00 -0000 [thread overview]
Message-ID: <56A104DF.7010803@0x04.net> (raw)
In-Reply-To: <56A103D5.2090505@redhat.com>
On 21/01/16 17:14, Pedro Alves wrote:
> On 01/21/2016 04:02 PM, Marcin KoÅcielnicki wrote:
>> String collection always used ref32 to fetch the string pointer. Make it
>> use ref64 when pointeer size is 64-bit.
>
> "pointer".
>
>>
>> This appeared to work on x86_64 since it's a little-endian platform, and
>> malloc (used in gdb.trace/collection.exp) returns addresses in low 4GB.
>> Noticed and tested on s390x-ibm-linux-gnu, also tested on
>> i686-unknown-linux-gnu and x86_64-unknown-linux-gnu.
>>
>> gdb/ChangeLog:
>>
>> * ax-gdb.c (gen_traced_pop): Use aop_ref64 when appropriate for
>> string collection.
>> ---
>> OK to push?
>>
>> gdb/ChangeLog | 5 +++++
>> gdb/ax-gdb.c | 5 ++++-
>> 2 files changed, 9 insertions(+), 1 deletion(-)
>>
>> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
>> index 45d8ef9..3f4d152 100644
>> --- a/gdb/ChangeLog
>> +++ b/gdb/ChangeLog
>> @@ -1,3 +1,8 @@
>> +2016-01-21 Marcin KoÅcielnicki <koriakin@0x04.net>
>> +
>> + * ax-gdb.c (gen_traced_pop): Use aop_ref64 when appropriate for
>> + string collection.
>> +
>> 2016-01-21 Andrew Burgess <andrew.burgess@embecosm.com>
>>
>> * disasm.c (maybe_add_dis_line_entry): Rename to...
>> diff --git a/gdb/ax-gdb.c b/gdb/ax-gdb.c
>> index dd6eee6..d17cb04 100644
>> --- a/gdb/ax-gdb.c
>> +++ b/gdb/ax-gdb.c
>> @@ -410,7 +410,10 @@ gen_traced_pop (struct gdbarch *gdbarch,
>>
>> if (string_trace)
>> {
>> - ax_simple (ax, aop_ref32);
>> + if (TYPE_LENGTH(value->type) == 4)
>
> Missing space before parens.
>
>> + ax_simple (ax, aop_ref32);
>> + else
>> + ax_simple (ax, aop_ref64);
>
>> + if (TYPE_LENGTH(value->type) == 4)
>> + ax_simple (ax, aop_ref32);
>> + else
>> + ax_simple (ax, aop_ref64);
>
>
> Missing space before parens. I was going to say to
> check for == 8 instead so that we don't pessimize the
> 8/16 bits cases, but sounds better even to factor out
> the switch in gen_fetch, so that the ref8/ref16 are covered
> as well:
>
> switch (TYPE_LENGTH (type))
> {
> case 8 / TARGET_CHAR_BIT:
> ax_simple (ax, aop_ref8);
> break;
> case 16 / TARGET_CHAR_BIT:
> ax_simple (ax, aop_ref16);
> break;
> case 32 / TARGET_CHAR_BIT:
> ax_simple (ax, aop_ref32);
> break;
> case 64 / TARGET_CHAR_BIT:
> ax_simple (ax, aop_ref64);
> break;
>
> /* Either our caller shouldn't have asked us to dereference
> that pointer (other code's fault), or we're not
> implementing something we should be (this code's fault).
> In any case, it's a bug the user shouldn't see. */
> default:
> internal_error (__FILE__, __LINE__,
>
> WDYT?
>
> Thanks,
> Pedro Alves
>
Fair enough, ref16 may actually be useful on some tiny platforms, and it
certainly won't hurt to throw in ref8 as well. I'll do that.
next prev parent reply other threads:[~2016-01-21 16:18 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-21 16:02 Marcin Kościelnicki
2016-01-21 16:14 ` Pedro Alves
2016-01-21 16:18 ` Marcin Kościelnicki [this message]
2016-01-21 16:43 ` [PATCH v2] " Marcin Kościelnicki
2016-01-21 16:55 ` Pedro Alves
2016-01-21 18:51 ` Marcin Kościelnicki
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56A104DF.7010803@0x04.net \
--to=koriakin@0x04.net \
--cc=gdb-patches@sourceware.org \
--cc=palves@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox