[PATCH] GDB: Fix test case gdb.base/valgrind-bt.exp.

Carl Love cel@us.ibm.com
Mon Apr 19 21:22:58 GMT 2021


Keith:

I changed the patch to use the gdb_breakpoint command as you suggested.

I was not aware of the vgdb man page comments on the wait times.  The
man page also talks about setting the set remotetimeout and max-invoke-
ms value.  I updated the patch to set these values.  I also found that
the wait time of 5 was higher than necessary and was able to reduce it
to 2.

The patch was retested and no new regression errors were found. 

Please let me know if the patch with these changes is accptable. 
Thanks.

                      Carl Love
 
------------------------------------------------------------------

Fix test case gdb.base/valgrind-bt.exp.

gdb/testsuite/ChangeLog:

	* gdb.base/valgrind-bt.exp: Add gdb_test "break main".
	Update expected string for gdb_test "bt".

	* lib/valgrind.exp: Add set remotetimeout 3.
	Increase vgdb wait from 1 to 2.
	Add max-invoke-ms option to vgdb command line.
---
 gdb/testsuite/gdb.base/valgrind-bt.exp | 4 +++-
 gdb/testsuite/lib/valgrind.exp         | 5 ++++-
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/gdb/testsuite/gdb.base/valgrind-bt.exp b/gdb/testsuite/gdb.base/valgrind-bt.exp
index bc6b0a384dd..b559e433d72 100644
--- a/gdb/testsuite/gdb.base/valgrind-bt.exp
+++ b/gdb/testsuite/gdb.base/valgrind-bt.exp
@@ -31,6 +31,8 @@ if { [vgdb_start] == -1 } {
 
 set double_free [gdb_get_line_number "double-free"]
 
+gdb_breakpoint "main"
+
 set test "continue"
 gdb_test_multiple "continue" $test {
     -re "Invalid free\\(\\).*: main \\(${srcfile}:$double_free\\)\r\n.*$gdb_prompt $" {
@@ -57,7 +59,7 @@ gdb_test_multiple "continue" $test {
 gdb_test_no_output "set height 0"
 gdb_test_no_output "set width 0"
 
-gdb_test "bt" "in main \\(.*\\) at .*${srcfile}:$double_free"
+gdb_test "bt" "#\[0-9 ]+main \\(.*\\) at .*${srcfile}.*"
 
 # Explicitly kill the program so it doesn't dump core when we quit->detach.
 gdb_test "kill" "" "kill program" "Kill the program being debugged.*y or n. $" "y"
diff --git a/gdb/testsuite/lib/valgrind.exp b/gdb/testsuite/lib/valgrind.exp
index c214491f7b8..caabeda9730 100644
--- a/gdb/testsuite/lib/valgrind.exp
+++ b/gdb/testsuite/lib/valgrind.exp
@@ -82,12 +82,15 @@ proc vgdb_start { {active_at_startup 1} } {
 
     clean_restart $testfile
 
+    set vgdbcmd "set remotetimeout 3"
+
     # Make sure we're disconnected, in case we're testing with the
     # native-extended-gdbserver board, where gdb_start/gdb_load spawn
     # gdbserver and connect to it.
     gdb_test "disconnect" ".*"
 
-    set vgdbcmd "target remote | vgdb --wait=1 --pid=$vgdbpid"
+    set vgdbcmd "target remote | vgdb --wait=2 --max-invoke-ms=2500 --pid=$vgdbpid"
+
     if { $active_at_startup } {
 	gdb_test "$vgdbcmd" " in \\.?_start .*" "target remote for vgdb"
     } else {
-- 
2.27.0




More information about the Gdb-patches mailing list