Message ID | 875zl7yvhy.fsf@tromey.com |
---|---|
State | New, archived |
Headers |
Received: (qmail 62695 invoked by alias); 2 Oct 2019 16:15:33 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: <gdb-patches.sourceware.org> List-Unsubscribe: <mailto:gdb-patches-unsubscribe-##L=##H@sourceware.org> List-Subscribe: <mailto:gdb-patches-subscribe@sourceware.org> List-Archive: <http://sourceware.org/ml/gdb-patches/> List-Post: <mailto:gdb-patches@sourceware.org> List-Help: <mailto:gdb-patches-help@sourceware.org>, <http://sourceware.org/ml/#faqs> Sender: gdb-patches-owner@sourceware.org Delivered-To: mailing list gdb-patches@sourceware.org Received: (qmail 62600 invoked by uid 89); 2 Oct 2019 16:15:24 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_NONE, SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Languages-Length:1621 X-HELO: rock.gnat.com Received: from rock.gnat.com (HELO rock.gnat.com) (205.232.38.15) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 02 Oct 2019 16:15:22 +0000 Received: from localhost (localhost.localdomain [127.0.0.1]) by filtered-rock.gnat.com (Postfix) with ESMTP id BFD5D117C1B; Wed, 2 Oct 2019 12:15:06 -0400 (EDT) Received: from rock.gnat.com ([127.0.0.1]) by localhost (rock.gnat.com [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 8CCkwR448ItM; Wed, 2 Oct 2019 12:15:06 -0400 (EDT) Received: from murgatroyd (75-166-72-156.hlrn.qwest.net [75.166.72.156]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by rock.gnat.com (Postfix) with ESMTPSA id 464A41178D2; Wed, 2 Oct 2019 12:15:06 -0400 (EDT) From: Tom Tromey <tromey@adacore.com> To: Simon Marchi <simark@simark.ca> Cc: GDB Administrator <gdbadmin@sourceware.org>, gdb-patches@sourceware.org Subject: Re: New ARI warning Wed Oct 2 01:56:22 UTC 2019 References: <20191002015622.GA57488@sourceware.org> <e5f64ebd-e34a-cc1d-32ff-81d65d57833c@simark.ca> Date: Wed, 02 Oct 2019 10:15:05 -0600 In-Reply-To: <e5f64ebd-e34a-cc1d-32ff-81d65d57833c@simark.ca> (Simon Marchi's message of "Tue, 1 Oct 2019 22:50:07 -0400") Message-ID: <875zl7yvhy.fsf@tromey.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain |
Commit Message
Tom Tromey
Oct. 2, 2019, 4:15 p.m. UTC
>>>>> "Simon" == Simon Marchi <simark@simark.ca> writes: >>> gdb/valprint.c:2077: code: %p: Do not use printf(%p), instead use printf(%s,paddr()) to dump a target address, or host_address_to_string() for a host address >> gdb/valprint.c:2077: fprintf_filtered (stream, " %p[<repeats %u times>%p]", >> Simon> Hmm, I think we can get rid of that %p rule (or improve it), Simon> otherwise we will have a lot of noise. How's this? Tom commit ce98317860cdcdb19426ddee3509ccceea79c7b1 Author: Tom Tromey <tromey@adacore.com> Date: Wed Oct 2 10:13:33 2019 -0600 Let ARI allow gdb %p printf extensions As pointed out by Simon, this changes ARI to allow the gdb-specific %p printf extensions. gdb/ChangeLog 2019-10-02 Tom Tromey <tromey@adacore.com> * contrib/ari/gdb_ari.sh (%p): Allow gdb-specific %p extensions.
Comments
> From: Tom Tromey <tromey@adacore.com> > Cc: GDB Administrator <gdbadmin@sourceware.org>, gdb-patches@sourceware.org > Date: Wed, 02 Oct 2019 10:15:05 -0600 > > >>>>> "Simon" == Simon Marchi <simark@simark.ca> writes: > > >>> gdb/valprint.c:2077: code: %p: Do not use printf(%p), instead use printf(%s,paddr()) to dump a target address, or host_address_to_string() for a host address > >> gdb/valprint.c:2077: fprintf_filtered (stream, " %p[<repeats %u times>%p]", > >> > > Simon> Hmm, I think we can get rid of that %p rule (or improve it), > Simon> otherwise we will have a lot of noise. > > How's this? > > Tom > > commit ce98317860cdcdb19426ddee3509ccceea79c7b1 > Author: Tom Tromey <tromey@adacore.com> > Date: Wed Oct 2 10:13:33 2019 -0600 > > Let ARI allow gdb %p printf extensions > > As pointed out by Simon, this changes ARI to allow the gdb-specific %p > printf extensions. But %p is really not quite portable. For starters, on some systems it includes the 0x prefix, on others it doesn't.
>>>>> "Eli" == Eli Zaretskii <eliz@gnu.org> writes:
Eli> But %p is really not quite portable. For starters, on some systems it
Eli> includes the 0x prefix, on others it doesn't.
Ordinary uses of %p are still rejected with this patch.
Tom
On 2019-10-02 12:15 p.m., Tom Tromey wrote: > diff --git a/gdb/contrib/ari/gdb_ari.sh b/gdb/contrib/ari/gdb_ari.sh > index 4bd434c8fec..1556756a12c 100755 > --- a/gdb/contrib/ari/gdb_ari.sh > +++ b/gdb/contrib/ari/gdb_ari.sh > @@ -353,7 +353,7 @@ Do not use printf(\"%p\"), instead use printf(\"%s\",paddr()) to dump a \ > target address, or host_address_to_string() for a host address" > category["%p"] = ari_code > } > -/%p/ && !/%prec/ { > +/%p[^][sF]/ && !/%prec/ { > fail("%p") > } > My mind is a bit confused by that regex: aren't the [^] and [sF] considered as two successive character sets? If so, the caret character, which negates the character set, applies to nothing. Shouldn't there be some escaping involved? Or is the language smart enough to know that because the first ] wouldn't end a valid character set, it means it's not actually the end of the character set? Simon
>>>>> "Simon" == Simon Marchi <simark@simark.ca> writes: >> +/%p[^][sF]/ && !/%prec/ { Simon> My mind is a bit confused by that regex: aren't the [^] and [sF] considered Simon> as two successive character sets? If so, the caret character, which negates Simon> the character set, applies to nothing. I believe that in most regexp syntax, a "]" doesn't need to be quoted in a character class, provided it is either the first character (like "[]...]") or comes immediately after the "^" (like "[^]...]"). The gawk manual mentions this, though it does also recommend using backslash, so maybe I should just do that. (info "(gawk) Bracket Expressions") To include one of the characters '\', ']', '-', or '^' in a bracket expression, put a '\' in front of it. For example: [d\]] matches either 'd' or ']'. Additionally, if you place ']' right after the opening '[', the closing bracket is treated as one of the characters to be matched. Tom
On 2019-10-02 1:35 p.m., Tom Tromey wrote: > I believe that in most regexp syntax, a "]" doesn't need to be quoted in > a character class, provided it is either the first character (like > "[]...]") or comes immediately after the "^" (like "[^]...]"). > > The gawk manual mentions this, though it does also recommend using > backslash, so maybe I should just do that. > > (info "(gawk) Bracket Expressions") > > To include one of the characters '\', ']', '-', or '^' in a bracket > expression, put a '\' in front of it. For example: > > [d\]] > > matches either 'd' or ']'. Additionally, if you place ']' right after > the opening '[', the closing bracket is treated as one of the characters > to be matched. Well, as long as the regex does what it is meant to do, I am fine with it. I just thought that it would be nice to have a small comment that explains what it does, prevent using %p to print raw pointers, but allow the gdb extensions. Simon
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index cb450e28730..e79612696e6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2019-10-02 Tom Tromey <tromey@adacore.com> + + * contrib/ari/gdb_ari.sh (%p): Allow gdb-specific %p extensions. + 2019-10-02 Tom Tromey <tromey@adacore.com> * NEWS: Add $_ada_exception entry. diff --git a/gdb/contrib/ari/gdb_ari.sh b/gdb/contrib/ari/gdb_ari.sh index 4bd434c8fec..1556756a12c 100755 --- a/gdb/contrib/ari/gdb_ari.sh +++ b/gdb/contrib/ari/gdb_ari.sh @@ -353,7 +353,7 @@ Do not use printf(\"%p\"), instead use printf(\"%s\",paddr()) to dump a \ target address, or host_address_to_string() for a host address" category["%p"] = ari_code } -/%p/ && !/%prec/ { +/%p[^][sF]/ && !/%prec/ { fail("%p") }