Re: [PATCH] gdb: use gdb_test_multiple in gdb_breakpoint

Simon Marchi via Gdb-patches
2023-01-05T16:29:41Z

On 1/5/23 04:04, Tom de Vries wrote:
> On 1/3/23 20:22, Simon Marchi via Gdb-patches wrote:
>> - -re "$gdb_prompt $" {
>> - if { $print_fail } {
>> - fail $test_name
>> - }
>> - return 0
>> - }
>
> This caused:
> ...
> FAIL: gdb.dwarf2/dw2-main-no-line-number.exp: gdb_breakpoint: set breakpoint at 1
> FAIL: gdb.dwarf2/dw2-main-no-line-number.exp: !$breakpoint_at_missing_lineno_set
> FAIL: gdb.go/methods.exp: going to first breakpoint (the program exited)
> FAIL: gdb.go/methods.exp: going to second breakpoint (the program is no longer running)
> ...
>
> Re-inserting this piece of code fixes it.

Ah, sorry for this, and thanks for reporting. The CI test job I usually
use is a bit broken right now, so I don't test as well as I should.
Does the patch below look good?

From db4ea2e9710bfe460d5f99ebf8d3fd670a81dfa2 Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi@polymtl.ca>
Date: Thu, 5 Jan 2023 11:23:45 -0500
Subject: [PATCH] gdb/testsuite: add back needed -re clause in gdb_breakpoint

Commit 4b9728be ("gdb: use gdb_test_multiple in gdb_breakpoint") caused,
amongst others:

(gdb) break 1^M
No line 1 in the current file.^M
Make breakpoint pending on future shared library load? (y or [n]) n^M
(gdb) FAIL: gdb.dwarf2/dw2-main-no-line-number.exp: gdb_breakpoint: set breakpoint at 1
FAIL: gdb.dwarf2/dw2-main-no-line-number.exp: !$breakpoint_at_missing_lineno_set

This is because it removed one empty -re clause (matching just the
prompt) that is necessary after replying "n" to the pending breakpoint
question. Add this clause back.

Change-Id: Ibfaa059d58bbea660bc29f0547e2f75c323fcbc6
---
gdb/testsuite/lib/gdb.exp | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index e17eace4cb13..af538e5c8fbd 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -657,6 +657,12 @@ proc gdb_breakpoint { linespec args } {
send_gdb "$pending_response\n"
exp_continue
}
+ -re "$gdb_prompt $" {
+ if { $print_fail } {
+ fail $test_name
+ }
+ return 0
+ }
}
if { $print_pass } {
pass $test_name

base-commit: d66641b604182246b648f662d3c32200ac921365
--
2.39.0