Message ID | 20200221210628.24922-1-luis.machado@linaro.org |
---|---|
State | New, archived |
Headers |
Received: (qmail 106510 invoked by alias); 21 Feb 2020 21:06:49 -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 106500 invoked by uid 89); 21 Feb 2020 21:06:48 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.8 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= X-HELO: mail-qk1-f195.google.com Received: from mail-qk1-f195.google.com (HELO mail-qk1-f195.google.com) (209.85.222.195) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 21 Feb 2020 21:06:47 +0000 Received: by mail-qk1-f195.google.com with SMTP id z19so3179523qkj.5 for <gdb-patches@sourceware.org>; Fri, 21 Feb 2020 13:06:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=suCnXj3kfgMv6Fogje6N6H1pf3wJesyXZ3jzz496rOE=; b=ke1i0iDTHUGEi0HBwH7kuQgABspzWvFquqnnDgLpkft0UWEX/0Ft05kP/C0So81kEk z5RGF2NIiI4kDg+7RAgxia4jM2T+v6Eem04z6+DHsWW9AorReNh0OjMOZAYgFYlunhDZ bDjmFl/K3+4NLG+OYpK2cqaeQzzg1xUB5yt3a/YCcSbafieAAiIq/QycbL2Z5pEqFtdz uWj6ahKImzQqZ5VHNxiEuoNatfqfuiZJ6rE2u0xcChqDgw/3t92P1x/B63Tw/VSlvA0j HZgqHou51JXUJAZMpgfA5bgI9B4VpJztzMqDAwsDSpQITVeNbDghatVlBVpjEZ5DF1/4 GFuA== Return-Path: <luis.machado@linaro.org> Received: from localhost.localdomain ([191.249.236.248]) by smtp.gmail.com with ESMTPSA id l16sm2057173qkk.118.2020.02.21.13.06.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Feb 2020 13:06:44 -0800 (PST) From: Luis Machado <luis.machado@linaro.org> To: gdb-patches@sourceware.org Cc: Alan.Hayward@arm.com Subject: [PATCH] Harden gdb.arch/aarch64-pauth.exp and fix a failure Date: Fri, 21 Feb 2020 18:06:28 -0300 Message-Id: <20200221210628.24922-1-luis.machado@linaro.org> X-IsSubscribed: yes |
Commit Message
Luis Machado
Feb. 21, 2020, 9:06 p.m. UTC
When running this testcase against a QEMU with PAC support, i noticed we
were failing to recognize the additional [PAC] that is emitted in the
backtrace, resulting in this failure:
FAIL: gdb.arch/aarch64-pauth.exp: backtrace
I've made the test use multi_line to make the pattern more clear.
Tested against aarch64-linux-gnu with and without PAC support.
gdb/testsuite/ChangeLog:
2020-02-21 Luis Machado <luis.machado@linaro.org>
* gdb.arch/aarch64-pauth.exp: Recognize optional PAC output.
Signed-off-by: Luis Machado <luis.machado@linaro.org>
---
gdb/testsuite/gdb.arch/aarch64-pauth.exp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
Comments
On Fri, 21 Feb 2020 18:06:28 -0300 Luis Machado <luis.machado@linaro.org> wrote: > When running this testcase against a QEMU with PAC support, i noticed we > were failing to recognize the additional [PAC] that is emitted in the > backtrace, resulting in this failure: > > FAIL: gdb.arch/aarch64-pauth.exp: backtrace > > I've made the test use multi_line to make the pattern more clear. > > Tested against aarch64-linux-gnu with and without PAC support. > > gdb/testsuite/ChangeLog: > > 2020-02-21 Luis Machado <luis.machado@linaro.org> > > * gdb.arch/aarch64-pauth.exp: Recognize optional PAC output. > > Signed-off-by: Luis Machado <luis.machado@linaro.org> > --- > gdb/testsuite/gdb.arch/aarch64-pauth.exp | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/gdb/testsuite/gdb.arch/aarch64-pauth.exp b/gdb/testsuite/gdb.arch/aarch64-pauth.exp > index 816e58be44..e6d25c5d97 100644 > --- a/gdb/testsuite/gdb.arch/aarch64-pauth.exp > +++ b/gdb/testsuite/gdb.arch/aarch64-pauth.exp > @@ -40,4 +40,9 @@ gdb_breakpoint [ gdb_get_line_number "break here" ] > gdb_continue_to_breakpoint "break here" ".*break here.*" > > # Ensure we can get a full backtrace, despite the address signing. > -gdb_test "bt" "^bt\r\n#0 +bar *\\(b=9\\) +at.*\r\n#1 +0x\[0-9a-f\]* +in +foo \\(a=5\\).*\r\n#2 +0x\[0-9a-f\]* +in +main \\(\\).*" "backtrace" > +gdb_test "bt" \ > + [multi_line \ > + "#0\[ \t\]*bar \\(b=9\\) at \[^\r\n\]+" \ > + "#1\[ \t\]*$hex (\\\[PAC\\\] )?in foo \\(a=5\\) at \[^\r\n\]+" \ > + "#2\[ \t\]*$hex (\\\[PAC\\\] )?in main \\(\\) at \[^\r\n\]+" ] \ > + "backtrace" LGTM except for the \[ \t\]* parts of it. I think we actually want + instead of * to ensure that there's whitespace separating the frame number from the hex value. Kevin
On 2/22/20 1:20 AM, Kevin Buettner wrote: > On Fri, 21 Feb 2020 18:06:28 -0300 > Luis Machado <luis.machado@linaro.org> wrote: > >> When running this testcase against a QEMU with PAC support, i noticed we >> were failing to recognize the additional [PAC] that is emitted in the >> backtrace, resulting in this failure: >> >> FAIL: gdb.arch/aarch64-pauth.exp: backtrace >> >> I've made the test use multi_line to make the pattern more clear. >> >> Tested against aarch64-linux-gnu with and without PAC support. >> >> gdb/testsuite/ChangeLog: >> >> 2020-02-21 Luis Machado <luis.machado@linaro.org> >> >> * gdb.arch/aarch64-pauth.exp: Recognize optional PAC output. >> >> Signed-off-by: Luis Machado <luis.machado@linaro.org> >> --- >> gdb/testsuite/gdb.arch/aarch64-pauth.exp | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/gdb/testsuite/gdb.arch/aarch64-pauth.exp b/gdb/testsuite/gdb.arch/aarch64-pauth.exp >> index 816e58be44..e6d25c5d97 100644 >> --- a/gdb/testsuite/gdb.arch/aarch64-pauth.exp >> +++ b/gdb/testsuite/gdb.arch/aarch64-pauth.exp >> @@ -40,4 +40,9 @@ gdb_breakpoint [ gdb_get_line_number "break here" ] >> gdb_continue_to_breakpoint "break here" ".*break here.*" >> >> # Ensure we can get a full backtrace, despite the address signing. >> -gdb_test "bt" "^bt\r\n#0 +bar *\\(b=9\\) +at.*\r\n#1 +0x\[0-9a-f\]* +in +foo \\(a=5\\).*\r\n#2 +0x\[0-9a-f\]* +in +main \\(\\).*" "backtrace" >> +gdb_test "bt" \ >> + [multi_line \ >> + "#0\[ \t\]*bar \\(b=9\\) at \[^\r\n\]+" \ >> + "#1\[ \t\]*$hex (\\\[PAC\\\] )?in foo \\(a=5\\) at \[^\r\n\]+" \ >> + "#2\[ \t\]*$hex (\\\[PAC\\\] )?in main \\(\\) at \[^\r\n\]+" ] \ >> + "backtrace" > > LGTM except for the \[ \t\]* parts of it. I think we actually want + > instead of * to ensure that there's whitespace separating the frame > number from the hex value. > > Kevin > Indeed. Fixed now. Thanks for the review.
On 2/22/20 1:20 AM, Kevin Buettner wrote: > On Fri, 21 Feb 2020 18:06:28 -0300 > Luis Machado <luis.machado@linaro.org> wrote: > >> When running this testcase against a QEMU with PAC support, i noticed we >> were failing to recognize the additional [PAC] that is emitted in the >> backtrace, resulting in this failure: >> >> FAIL: gdb.arch/aarch64-pauth.exp: backtrace >> >> I've made the test use multi_line to make the pattern more clear. >> >> Tested against aarch64-linux-gnu with and without PAC support. >> >> gdb/testsuite/ChangeLog: >> >> 2020-02-21 Luis Machado <luis.machado@linaro.org> >> >> * gdb.arch/aarch64-pauth.exp: Recognize optional PAC output. >> >> Signed-off-by: Luis Machado <luis.machado@linaro.org> >> --- >> gdb/testsuite/gdb.arch/aarch64-pauth.exp | 7 ++++++- >> 1 file changed, 6 insertions(+), 1 deletion(-) >> >> diff --git a/gdb/testsuite/gdb.arch/aarch64-pauth.exp b/gdb/testsuite/gdb.arch/aarch64-pauth.exp >> index 816e58be44..e6d25c5d97 100644 >> --- a/gdb/testsuite/gdb.arch/aarch64-pauth.exp >> +++ b/gdb/testsuite/gdb.arch/aarch64-pauth.exp >> @@ -40,4 +40,9 @@ gdb_breakpoint [ gdb_get_line_number "break here" ] >> gdb_continue_to_breakpoint "break here" ".*break here.*" >> >> # Ensure we can get a full backtrace, despite the address signing. >> -gdb_test "bt" "^bt\r\n#0 +bar *\\(b=9\\) +at.*\r\n#1 +0x\[0-9a-f\]* +in +foo \\(a=5\\).*\r\n#2 +0x\[0-9a-f\]* +in +main \\(\\).*" "backtrace" >> +gdb_test "bt" \ >> + [multi_line \ >> + "#0\[ \t\]*bar \\(b=9\\) at \[^\r\n\]+" \ >> + "#1\[ \t\]*$hex (\\\[PAC\\\] )?in foo \\(a=5\\) at \[^\r\n\]+" \ >> + "#2\[ \t\]*$hex (\\\[PAC\\\] )?in main \\(\\) at \[^\r\n\]+" ] \ >> + "backtrace" > > LGTM except for the \[ \t\]* parts of it. I think we actually want + > instead of * to ensure that there's whitespace separating the frame > number from the hex value. > > Kevin > Fixed and pushed. Thanks! I'll also push a fix to gdb.base/backtrace.exp, since it also uses * instead of + for the following tests: # Backtrace with the default options. gdb_test "bt" \ [multi_line \ "#0\[ \t\]*baz \\(\\) at \[^\r\n\]+" \ "#1\[ \t\]*$hex in bar \\(\\) at \[^\r\n\]+" \ "#2\[ \t\]*$hex in foo \\(\\) at \[^\r\n\]+" \ "#3\[ \t\]*$hex in main \\(\\) at \[^\r\n\]+" ] # Backtrace with 'set disassemble-next-line on'. This shouldn't make # any difference to the backtrace. gdb_test "with disassemble-next-line on -- bt" \ [multi_line \ "#0\[ \t\]*baz \\(\\) at \[^\r\n\]+" \ "#1\[ \t\]*$hex in bar \\(\\) at \[^\r\n\]+" \ "#2\[ \t\]*$hex in foo \\(\\) at \[^\r\n\]+" \ "#3\[ \t\]*$hex in main \\(\\) at \[^\r\n\]+" ]
diff --git a/gdb/testsuite/gdb.arch/aarch64-pauth.exp b/gdb/testsuite/gdb.arch/aarch64-pauth.exp index 816e58be44..e6d25c5d97 100644 --- a/gdb/testsuite/gdb.arch/aarch64-pauth.exp +++ b/gdb/testsuite/gdb.arch/aarch64-pauth.exp @@ -40,4 +40,9 @@ gdb_breakpoint [ gdb_get_line_number "break here" ] gdb_continue_to_breakpoint "break here" ".*break here.*" # Ensure we can get a full backtrace, despite the address signing. -gdb_test "bt" "^bt\r\n#0 +bar *\\(b=9\\) +at.*\r\n#1 +0x\[0-9a-f\]* +in +foo \\(a=5\\).*\r\n#2 +0x\[0-9a-f\]* +in +main \\(\\).*" "backtrace" +gdb_test "bt" \ + [multi_line \ + "#0\[ \t\]*bar \\(b=9\\) at \[^\r\n\]+" \ + "#1\[ \t\]*$hex (\\\[PAC\\\] )?in foo \\(a=5\\) at \[^\r\n\]+" \ + "#2\[ \t\]*$hex (\\\[PAC\\\] )?in main \\(\\) at \[^\r\n\]+" ] \ + "backtrace"