From patchwork Wed Apr 17 16:58:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 88591 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A7BAA385842D for ; Wed, 17 Apr 2024 16:58:19 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id F26E33858D39 for ; Wed, 17 Apr 2024 16:57:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F26E33858D39 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org F26E33858D39 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713373066; cv=none; b=ml2SeVBzKMW1WMCSOAXNCqIzHjq8pYL/6U0p585QG+s+/fUJ/P0QAv0qshgpXNgZj0209DttHbdP6NTJz+XDPjL7jYZwYUvA2o5ncAUvMQ2JZrIvapR+ywrqHf9eKo5Xoan0asZo2c+9ZMhTCd24OBJvYVKScZTXJdGWvqdw1TU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713373066; c=relaxed/simple; bh=1x5Roc4cNW7P5LK/pYDG5BaqjyL9P4BaQBOfpI7Knuo=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=b7n7I+wHHsaaEDJrE4xbToPwcSYBFspMV1hyNFZYcpmzMKNLx5v7kCfQNioe2XHVzcKJqkWhoQr5iJpbr+/JOM8p/NmfPr+eO+47/BgzZewdUz7LhV5sFzxiZE3Djk69dBzkbC64TJhs3z99qym/8YqjfcsnBg93swKc1CcA5+k= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 03F0E20C83 for ; Wed, 17 Apr 2024 16:57:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1713373062; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hFx6zRwglM1340YpC/upxJ0eEh/5sTLr9l4n2zId5pM=; b=XaHUPzZaspxRtfoIy3jVLmIKleDOJ1ucVxKNxgFt033jvsextW0wa/bPtmNMu1y/n+CnvK IFgnR72TNtE59jJZP4a6C6rUI7QcMjVYLwbO7CObeIZqm9vl6L92pJ5VB40iHpbwNKqE8+ kqcypU9m8yDBNvogQMkEXiwipTnkTjc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1713373062; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hFx6zRwglM1340YpC/upxJ0eEh/5sTLr9l4n2zId5pM=; b=x3wgJto8mo7KyLYzw7cM18BVVC23QXsjyszAiM6p6f+JG7Tq/yyx/1s9wP/FSX+2/7hOF1 KhUhQ8+zk1xKdTAw== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=XaHUPzZa; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=x3wgJto8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1713373062; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hFx6zRwglM1340YpC/upxJ0eEh/5sTLr9l4n2zId5pM=; b=XaHUPzZaspxRtfoIy3jVLmIKleDOJ1ucVxKNxgFt033jvsextW0wa/bPtmNMu1y/n+CnvK IFgnR72TNtE59jJZP4a6C6rUI7QcMjVYLwbO7CObeIZqm9vl6L92pJ5VB40iHpbwNKqE8+ kqcypU9m8yDBNvogQMkEXiwipTnkTjc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1713373062; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=hFx6zRwglM1340YpC/upxJ0eEh/5sTLr9l4n2zId5pM=; b=x3wgJto8mo7KyLYzw7cM18BVVC23QXsjyszAiM6p6f+JG7Tq/yyx/1s9wP/FSX+2/7hOF1 KhUhQ8+zk1xKdTAw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id DA7F91384C for ; Wed, 17 Apr 2024 16:57:41 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id UPb4M4X/H2bjAwAAD6G6ig (envelope-from ) for ; Wed, 17 Apr 2024 16:57:41 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 3/3] [gdb/testsuite] Use save_vars to restore GDBFLAGS Date: Wed, 17 Apr 2024 18:58:00 +0200 Message-Id: <20240417165800.23467-3-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240417165800.23467-1-tdevries@suse.de> References: <20240417165800.23467-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -3.01 X-Rspamd-Action: no action X-Rspamd-Queue-Id: 03F0E20C83 X-Spam-Level: X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCPT_COUNT_ONE(0.00)[1]; RBL_SPAMHAUS_BLOCKED_OPENRESOLVER(0.00)[2a07:de40:b281:104:10:150:64:97:from]; DBL_BLOCKED_OPENRESOLVER(0.00)[imap1.dmz-prg2.suse.org:helo,imap1.dmz-prg2.suse.org:rdns]; DWL_DNSWL_BLOCKED(0.00)[suse.de:dkim]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; RCVD_TLS_ALL(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; DKIM_TRACE(0.00)[suse.de:+] X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org There's a pattern of using: ... set saved_gdbflags $GDBFLAGS set GDBFLAGS "$GDBFLAGS ..." set GDBFLAGS $saved_gdbflags ... Simplify this by using save_vars: ... save_vars { GDBFLAGS } { set GDBFLAGS "$GDBFLAGS ..." } ... Tested on x86_64-linux. --- .../gdb.base/batch-preserve-term-settings.exp | 4 -- .../gdb.base/bp-cmds-execution-x-script.exp | 20 +++----- .../gdb.base/break-main-file-remove-fail.exp | 30 +++++------ .../gdb.base/break-on-linker-gcd-function.exp | 8 +-- gdb/testsuite/gdb.base/break-unload-file.exp | 32 ++++++------ gdb/testsuite/gdb.base/code_elim.exp | 9 ++-- .../gdb.base/paginate-execution-startup.exp | 50 +++++++++---------- gdb/testsuite/gdb.base/remotetimeout.exp | 14 +++--- gdb/testsuite/gdb.base/write_mem.exp | 24 +++++---- gdb/testsuite/gdb.cp/readnow-language.exp | 8 +-- gdb/testsuite/gdb.dwarf2/count.exp | 9 ++-- gdb/testsuite/gdb.dwarf2/dw2-icycle.exp | 8 +-- .../gdb.dwarf2/dw2-var-zero-addr.exp | 8 +-- .../gdb.dwarf2/dw4-sig-type-unused.exp | 8 +-- gdb/testsuite/gdb.dwarf2/implptrconst.exp | 8 +-- gdb/testsuite/gdb.dwarf2/implptrpiece.exp | 8 +-- gdb/testsuite/gdb.dwarf2/nostaticblock.exp | 8 +-- gdb/testsuite/gdb.dwarf2/symtab-producer.exp | 14 +++--- gdb/testsuite/gdb.fortran/info-main.exp | 17 ++++--- gdb/testsuite/gdb.mi/mi-async.exp | 15 +++--- gdb/testsuite/gdb.python/py-prompt.exp | 6 +-- .../gdb.threads/fork-plus-threads.exp | 14 +++--- .../forking-threads-plus-breakpoint.exp | 8 +-- .../process-dies-while-handling-bp.exp | 8 +-- gdb/testsuite/lib/gdb.exp | 14 +++--- 25 files changed, 165 insertions(+), 187 deletions(-) diff --git a/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp b/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp index dc2b1ce617e..d4ceba68c95 100644 --- a/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp +++ b/gdb/testsuite/gdb.base/batch-preserve-term-settings.exp @@ -228,8 +228,6 @@ proc test_terminal_settings_preserved_after_cli_exit { cmds } { return } - set saved_gdbflags $GDBFLAGS - set stty_supported [run_stty "stty before" stty_before] set test "start gdb" @@ -296,8 +294,6 @@ proc test_terminal_settings_preserved_after_sigterm { } { return } - set saved_gdbflags $GDBFLAGS - set stty_supported [run_stty "stty before" stty_before] set test "start gdb" diff --git a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp index 25adf015b7f..1d91958e3c5 100644 --- a/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp +++ b/gdb/testsuite/gdb.base/bp-cmds-execution-x-script.exp @@ -25,30 +25,24 @@ if {[build_executable "failed to prepare" $testfile $srcfile debug]} { set x_file ${srcdir}/${subdir}/$testfile.gdb -global GDBFLAGS -set saved_gdbflags $GDBFLAGS - # Run the test proper. proc test {} { global inferior_exited_re global binfile global gdb_prompt - global saved_gdbflags GDBFLAGS + global GDBFLAGS global x_file gdb_exit - set GDBFLAGS "$GDBFLAGS -x $x_file $binfile" - - set GDBFLAGS $saved_gdbflags - append GDBFLAGS " -x \"$x_file\"" - append GDBFLAGS " --args \"$binfile\"" - set test "run to end" - gdb_exit - set res [gdb_spawn] + save_vars { GDBFLAGS } { + append GDBFLAGS " -x \"$x_file\"" + append GDBFLAGS " --args \"$binfile\"" + set res [gdb_spawn] + } if { $res != 0} { fail $test return -1 @@ -65,5 +59,3 @@ proc test {} { } test - -set GDBFLAGS $saved_gdbflags diff --git a/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp b/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp index 8a8c508b340..97b662c7871 100644 --- a/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp +++ b/gdb/testsuite/gdb.base/break-main-file-remove-fail.exp @@ -35,25 +35,25 @@ proc test_remove_bp { initial_load } { gdb_exit - set saved_gdbflags $GDBFLAGS + save_vars { GDBFLAGS } { - # See "used to behave differently" further below. - if { $initial_load == "file" } { - gdb_start - gdb_file_cmd $binfile - } else { - global last_loaded_file + # See "used to behave differently" further below. + if { $initial_load == "file" } { + gdb_start + gdb_file_cmd $binfile + } else { + global last_loaded_file - # gdb_file_cmd sets this. This is what gdb_reload - # implementations use as binary. - set last_loaded_file $binfile + # gdb_file_cmd sets this. This is what gdb_reload + # implementations use as binary. + set last_loaded_file $binfile - set GDBFLAGS "$GDBFLAGS $binfile" - gdb_start + set GDBFLAGS "$GDBFLAGS $binfile" + gdb_start + } + gdb_reinitialize_dir $srcdir/$subdir + gdb_reload } - gdb_reinitialize_dir $srcdir/$subdir - gdb_reload - set GDBFLAGS $saved_gdbflags if ![runto start] { return diff --git a/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp index 613c9dc47e8..67afe4c9fa5 100644 --- a/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp +++ b/gdb/testsuite/gdb.base/break-on-linker-gcd-function.exp @@ -48,10 +48,10 @@ proc set_breakpoint_on_gcd_function {} { set_breakpoint_on_gcd_function -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS --readnow" -clean_restart ${testfile} -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS --readnow" + clean_restart ${testfile} +} with_test_prefix "readnow" { set_breakpoint_on_gcd_function diff --git a/gdb/testsuite/gdb.base/break-unload-file.exp b/gdb/testsuite/gdb.base/break-unload-file.exp index 2d62cc51cec..fb9874b4297 100644 --- a/gdb/testsuite/gdb.base/break-unload-file.exp +++ b/gdb/testsuite/gdb.base/break-unload-file.exp @@ -38,26 +38,26 @@ proc test_break { initial_load always_inserted break_command } { with_test_prefix "$prefix" { gdb_exit - set saved_gdbflags $GDBFLAGS + save_vars { GDBFLAGS } { - # See "used to behave differently" further below. - if { $initial_load == "file" } { - gdb_start - gdb_file_cmd $binfile - } else { - global last_loaded_file + # See "used to behave differently" further below. + if { $initial_load == "file" } { + gdb_start + gdb_file_cmd $binfile + } else { + global last_loaded_file - # gdb_file_cmd sets this. This is what gdb_reload - # implementations use as binary. - set last_loaded_file $binfile + # gdb_file_cmd sets this. This is what gdb_reload + # implementations use as binary. + set last_loaded_file $binfile - set GDBFLAGS "$GDBFLAGS $binfile" - gdb_start - } + set GDBFLAGS "$GDBFLAGS $binfile" + gdb_start + } - gdb_reinitialize_dir $srcdir/$subdir - gdb_reload - set GDBFLAGS $saved_gdbflags + gdb_reinitialize_dir $srcdir/$subdir + gdb_reload + } if {![runto_main]} { return diff --git a/gdb/testsuite/gdb.base/code_elim.exp b/gdb/testsuite/gdb.base/code_elim.exp index e66382fdbd9..8ead31dc8e8 100644 --- a/gdb/testsuite/gdb.base/code_elim.exp +++ b/gdb/testsuite/gdb.base/code_elim.exp @@ -93,11 +93,10 @@ with_test_prefix "single psymtabs" { # Same thing for symtabs gdb_exit -global GDBFLAGS -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS --readnow $binfile1" -gdb_start -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS --readnow $binfile1" + gdb_start +} with_test_prefix "single symtabs" { test_eliminated_var my_global_symbol diff --git a/gdb/testsuite/gdb.base/paginate-execution-startup.exp b/gdb/testsuite/gdb.base/paginate-execution-startup.exp index f0f7db5932c..134cf64ac8e 100644 --- a/gdb/testsuite/gdb.base/paginate-execution-startup.exp +++ b/gdb/testsuite/gdb.base/paginate-execution-startup.exp @@ -27,25 +27,22 @@ if [is_remote host] { set file_arg [remote_download host $file_arg] } -global GDBFLAGS -set saved_gdbflags $GDBFLAGS - # Returns true if the board can 'gdb -ex "start"', false otherwise. proc probe_can_run_cmdline {} { global srcfile file_arg - global saved_gdbflags GDBFLAGS + global GDBFLAGS global gdb_prompt - set GDBFLAGS $saved_gdbflags - append GDBFLAGS " -ex \"start\"" - append GDBFLAGS " --args \"$file_arg\"" - with_test_prefix "probe support" { set test "run to main" gdb_exit - set res [gdb_spawn] + save_vars { GDBFLAGS } { + append GDBFLAGS " -ex \"start\"" + append GDBFLAGS " --args \"$file_arg\"" + set res [gdb_spawn] + } if { $res != 0} { fail $test return -1 @@ -74,23 +71,25 @@ proc probe_can_run_cmdline {} { proc test_fg_execution_pagination_return {} { global file_arg - global saved_gdbflags GDBFLAGS + global GDBFLAGS global gdb_prompt pagination_prompt - set GDBFLAGS $saved_gdbflags - append GDBFLAGS " -ex \"set height 2\"" - append GDBFLAGS " -ex \"start\"" - append GDBFLAGS " --args \"$file_arg\"" - with_test_prefix "return" { set test "run to pagination" gdb_exit - set res [gdb_spawn] + + save_vars { GDBFLAGS } { + append GDBFLAGS " -ex \"set height 2\"" + append GDBFLAGS " -ex \"start\"" + append GDBFLAGS " --args \"$file_arg\"" + set res [gdb_spawn] + } if { $res != 0} { fail $test return $res } + gdb_test_multiple "" $test { -re "$pagination_prompt$" { pass $test @@ -127,24 +126,25 @@ proc test_fg_execution_pagination_return {} { proc test_fg_execution_pagination_cancel { how } { global file_arg - global saved_gdbflags GDBFLAGS + global GDBFLAGS global gdb_prompt pagination_prompt - set GDBFLAGS $saved_gdbflags - - append GDBFLAGS " -ex \"set height 2\"" - append GDBFLAGS " -ex \"start\"" - append GDBFLAGS " --args \"$file_arg\"" - with_test_prefix "cancel with $how" { set test "run to pagination" gdb_exit - set res [gdb_spawn] + + save_vars { GDBFLAGS } { + append GDBFLAGS " -ex \"set height 2\"" + append GDBFLAGS " -ex \"start\"" + append GDBFLAGS " --args \"$file_arg\"" + set res [gdb_spawn] + } if { $res != 0} { fail $test return $res } + gdb_test_multiple "" $test { -re "$pagination_prompt$" { pass $test @@ -182,5 +182,3 @@ save_vars { INTERNAL_GDBFLAGS } { test_fg_execution_pagination_cancel "quit" } } - -set GDBFLAGS $saved_gdbflags diff --git a/gdb/testsuite/gdb.base/remotetimeout.exp b/gdb/testsuite/gdb.base/remotetimeout.exp index 27f02956202..b7d8c90ca01 100644 --- a/gdb/testsuite/gdb.base/remotetimeout.exp +++ b/gdb/testsuite/gdb.base/remotetimeout.exp @@ -19,18 +19,16 @@ # This is a test for the gdb invocation option -l. -global GDBFLAGS +gdb_exit # # Test that -l is processed correctly. # -set old_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS -l 42" -gdb_exit -gdb_start +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS -l 42" + gdb_start +} + gdb_test "show remotetimeout" \ "Timeout limit to wait for target to respond is 42\." \ "correct remotetimeout printed" - -set GDBFLAGS $old_gdbflags - diff --git a/gdb/testsuite/gdb.base/write_mem.exp b/gdb/testsuite/gdb.base/write_mem.exp index 89c064795c6..3f2380c64a4 100644 --- a/gdb/testsuite/gdb.base/write_mem.exp +++ b/gdb/testsuite/gdb.base/write_mem.exp @@ -27,21 +27,27 @@ if {[build_executable $testfile.exp $testfile \ return -1 } -set old_gdbflags $GDBFLAGS +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS $binfile" + clean_restart +} # Expect a failure before --write has been added to the command line -set GDBFLAGS "$old_gdbflags $binfile" -clean_restart test_print_reject "set {int}main = 0x4242" "Cannot access memory at address" +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS --write $binfile" + clean_restart +} + # Setting memory should now work correctly after adding --write -set GDBFLAGS "$old_gdbflags --write $binfile" -clean_restart gdb_test_no_output "set {int}main = 0x4242" -# Check that memory write persists after quitting GDB gdb_exit -gdb_start -gdb_test "x /x main" "
:.*4242" +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS --write $binfile" + gdb_start +} -set GDBFLAGS $old_gdbflags +# Check that memory write persists after quitting GDB +gdb_test "x /x main" "
:.*4242" diff --git a/gdb/testsuite/gdb.cp/readnow-language.exp b/gdb/testsuite/gdb.cp/readnow-language.exp index 05193ec9f36..a9cd6451686 100644 --- a/gdb/testsuite/gdb.cp/readnow-language.exp +++ b/gdb/testsuite/gdb.cp/readnow-language.exp @@ -19,9 +19,9 @@ if {[build_executable ${testfile}.exp $testfile ${testfile}.cc {c++ debug}] == - return -1 } -set old_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS -readnow" -clean_restart $testfile -set GDBFLAGS $old_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS -readnow" + clean_restart $testfile +} gdb_test "show language" {The current source language is "auto; currently c\+\+"\.} diff --git a/gdb/testsuite/gdb.dwarf2/count.exp b/gdb/testsuite/gdb.dwarf2/count.exp index 99c52d231ae..52deb19146b 100644 --- a/gdb/testsuite/gdb.dwarf2/count.exp +++ b/gdb/testsuite/gdb.dwarf2/count.exp @@ -138,11 +138,10 @@ if { [gdb_compile [list ${binfile}1.o ${binfile}2.o] \ return -1 } -global GDBFLAGS -set saved_gdbflags $GDBFLAGS -set GDBFLAGS [concat $GDBFLAGS " -readnow"] -clean_restart ${testfile} -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS [concat $GDBFLAGS " -readnow"] + clean_restart ${testfile} +} if ![runto_main] { return -1 diff --git a/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp b/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp index 9c004562d69..2675f70df14 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-icycle.exp @@ -33,10 +33,10 @@ if { [build_executable "failed to prepare" ${testfile} \ # start the debugger with -readnow. This force expansion as soon as # the objfile is loaded. -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS -readnow" -clean_restart ${testfile} -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS -readnow" + clean_restart ${testfile} +} # And just to be sure that the debugger did not crash after having # expanded our symbols, do a life-check. diff --git a/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp b/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp index 2a5aa3ee0c1..9b89b8ce6fa 100644 --- a/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp +++ b/gdb/testsuite/gdb.dwarf2/dw2-var-zero-addr.exp @@ -32,10 +32,10 @@ proc test { } { test -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS --readnow" -clean_restart ${binfile} -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS --readnow" + clean_restart ${binfile} +} with_test_prefix "readnow" { test diff --git a/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp b/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp index 63c834b8846..24dc132aa82 100644 --- a/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp +++ b/gdb/testsuite/gdb.dwarf2/dw4-sig-type-unused.exp @@ -24,9 +24,9 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {}] != "" return -1 } -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS --readnow" -clean_restart $executable -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS --readnow" + clean_restart $executable +} gdb_test "p 1" " = 1" "alive" diff --git a/gdb/testsuite/gdb.dwarf2/implptrconst.exp b/gdb/testsuite/gdb.dwarf2/implptrconst.exp index 796b8b70307..8e6dbf0d213 100644 --- a/gdb/testsuite/gdb.dwarf2/implptrconst.exp +++ b/gdb/testsuite/gdb.dwarf2/implptrconst.exp @@ -90,10 +90,10 @@ if { [build_executable ${testfile}.exp ${testfile} \ # We need --readnow because otherwise we never read in the CU we # created above. -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS -readnow" -clean_restart ${testfile} -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS -readnow" + clean_restart ${testfile} +} if ![runto_main] { return -1 diff --git a/gdb/testsuite/gdb.dwarf2/implptrpiece.exp b/gdb/testsuite/gdb.dwarf2/implptrpiece.exp index 83bdf991135..585cd7497b6 100644 --- a/gdb/testsuite/gdb.dwarf2/implptrpiece.exp +++ b/gdb/testsuite/gdb.dwarf2/implptrpiece.exp @@ -108,10 +108,10 @@ if { [build_executable ${testfile}.exp ${testfile} \ # We need --readnow because otherwise we never read in the CU we # created above. -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS -readnow" -clean_restart ${testfile} -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS -readnow" + clean_restart ${testfile} +} if ![runto_main] { return -1 diff --git a/gdb/testsuite/gdb.dwarf2/nostaticblock.exp b/gdb/testsuite/gdb.dwarf2/nostaticblock.exp index 46e2b4c4ca8..e8d41f04efc 100644 --- a/gdb/testsuite/gdb.dwarf2/nostaticblock.exp +++ b/gdb/testsuite/gdb.dwarf2/nostaticblock.exp @@ -38,9 +38,9 @@ if { [build_executable ${testfile}.exp ${testfile} \ return -1 } -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS --readnow" -clean_restart $testfile -set GDBFLAGS $saved_gdbflags +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS --readnow" + clean_restart $testfile +} gdb_test "p 1" " = 1" "alive" diff --git a/gdb/testsuite/gdb.dwarf2/symtab-producer.exp b/gdb/testsuite/gdb.dwarf2/symtab-producer.exp index 756b1d60bf2..ac16c95d8a3 100644 --- a/gdb/testsuite/gdb.dwarf2/symtab-producer.exp +++ b/gdb/testsuite/gdb.dwarf2/symtab-producer.exp @@ -73,17 +73,15 @@ Dwarf::assemble $asm_file { # We need --readnow because otherwise we never read in the CUs we # created above. -set saved_gdbflags $GDBFLAGS -set GDBFLAGS "$GDBFLAGS -readnow" +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS -readnow" -if { [prepare_for_testing "failed to prepare" ${testfile} \ - [list $srcfile $asm_file] {nodebug}] } { - set GDBFLAGS $saved_gdbflags - return -1 + if { [prepare_for_testing "failed to prepare" ${testfile} \ + [list $srcfile $asm_file] {nodebug}] } { + return -1 + } } -set GDBFLAGS $saved_gdbflags - gdb_py_test_silent_cmd "python with_producer = gdb.lookup_global_symbol(\"with_producer\")" \ "get with_producer symbol" 0 diff --git a/gdb/testsuite/gdb.fortran/info-main.exp b/gdb/testsuite/gdb.fortran/info-main.exp index e8583f3bf9f..7d11235b12f 100644 --- a/gdb/testsuite/gdb.fortran/info-main.exp +++ b/gdb/testsuite/gdb.fortran/info-main.exp @@ -19,11 +19,12 @@ load_lib fortran.exp standard_testfile .f90 -set old_gdbflags $GDBFLAGS -set GDBFLAGS [string map {"-readnow" ""} "$GDBFLAGS"] +save_vars { GDBFLAGS } { + set GDBFLAGS [string map {"-readnow" ""} "$GDBFLAGS"] -if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}]} { - return -1 + if {[prepare_for_testing ${testfile}.exp ${testfile} ${srcfile} {debug f90}]} { + return -1 + } } gdb_test "info main" "simple" "info main prior to start" @@ -35,8 +36,8 @@ if ![fortran_runto_main] { gdb_test "info main" "simple" "info main post start" -set GDBFLAGS "$GDBFLAGS -readnow" -clean_restart $testfile +save_vars { GDBFLAGS } { + set GDBFLAGS "$GDBFLAGS -readnow" + clean_restart $testfile +} gdb_test "info main" "simple" "info main with readnow" - -set GDBFLAGS $old_gdbflags diff --git a/gdb/testsuite/gdb.mi/mi-async.exp b/gdb/testsuite/gdb.mi/mi-async.exp index fc138a6e9ea..74aff568a34 100644 --- a/gdb/testsuite/gdb.mi/mi-async.exp +++ b/gdb/testsuite/gdb.mi/mi-async.exp @@ -29,10 +29,6 @@ if {![istarget *-linux*]} { # Check if start command is supported. require !use_gdb_stub -# The plan is for async mode to become the default but toggle for now. -set saved_gdbflags $GDBFLAGS -set GDBFLAGS [concat $GDBFLAGS " -ex \"set mi-async on\""] - load_lib mi-support.exp standard_testfile basics.c @@ -42,8 +38,13 @@ if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {deb return -1 } -if {[mi_clean_restart $binfile]} { - return +# The plan is for async mode to become the default but toggle for now. +save_vars { GDBFLAGS } { + set GDBFLAGS [concat $GDBFLAGS " -ex \"set mi-async on\""] + + if {[mi_clean_restart $binfile]} { + return + } } # mi_gdb_test cannot be used for asynchronous commands because there are @@ -75,5 +76,3 @@ proc linux_async_tests {} { linux_async_tests mi_gdb_exit - -set GDBFLAGS $saved_gdbflags diff --git a/gdb/testsuite/gdb.python/py-prompt.exp b/gdb/testsuite/gdb.python/py-prompt.exp index f1f93bff572..614fe9d82ea 100644 --- a/gdb/testsuite/gdb.python/py-prompt.exp +++ b/gdb/testsuite/gdb.python/py-prompt.exp @@ -27,11 +27,9 @@ if {[build_executable $testfile.exp $testfile $srcfile debug] == -1} { return -1 } -save_vars { INTERNAL_GDBFLAGS } { +save_vars { INTERNAL_GDBFLAGS GDBFLAGS } { set INTERNAL_GDBFLAGS [string map {"-q" ""} $INTERNAL_GDBFLAGS] - global GDBFLAGS - set saved_gdbflags $GDBFLAGS set GDBFLAGS [concat $GDBFLAGS " -ex \"python p = list()\""] set prompt_func "python def foo(x): global p; p.append(x); return \'(Foo) \'" set GDBFLAGS [concat $GDBFLAGS " -ex \"$prompt_func\""] @@ -72,7 +70,6 @@ save_vars { INTERNAL_GDBFLAGS } { } if {![can_spawn_for_attach]} { - set GDBFLAGS $saved_gdbflags return 0 } @@ -115,6 +112,5 @@ save_vars { INTERNAL_GDBFLAGS } { gdb_exit } - set GDBFLAGS $saved_gdbflags kill_wait_spawned_process $test_spawn_id } diff --git a/gdb/testsuite/gdb.threads/fork-plus-threads.exp b/gdb/testsuite/gdb.threads/fork-plus-threads.exp index 431ad4a8b7f..c08b4c1579a 100644 --- a/gdb/testsuite/gdb.threads/fork-plus-threads.exp +++ b/gdb/testsuite/gdb.threads/fork-plus-threads.exp @@ -34,17 +34,15 @@ proc do_test { detach-on-fork } { global srcfile testfile global gdb_prompt - set saved_gdbflags $GDBFLAGS - set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""] + save_vars { GDBFLAGS } { + set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""] - if {[prepare_for_testing "failed to prepare" \ - $testfile $srcfile {debug pthreads}] == -1} { - set GDBFLAGS $saved_gdbflags - return -1 + if {[prepare_for_testing "failed to prepare" \ + $testfile $srcfile {debug pthreads}] == -1} { + return -1 + } } - set GDBFLAGS $saved_gdbflags - if {![runto_main]} { return 0 } diff --git a/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp b/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp index 7f010045e29..66311fe3831 100644 --- a/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp +++ b/gdb/testsuite/gdb.threads/forking-threads-plus-breakpoint.exp @@ -72,10 +72,10 @@ proc do_test { cond_bp_target detach_on_fork displaced } { global linenum global is_remote_target - set saved_gdbflags $GDBFLAGS - set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""] - clean_restart $binfile - set GDBFLAGS $saved_gdbflags + save_vars { GDBFLAGS } { + set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop on\""] + clean_restart $binfile + } if {![runto_main]} { return 0 diff --git a/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp b/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp index a4c50d1c1f1..2771ef742fb 100644 --- a/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp +++ b/gdb/testsuite/gdb.threads/process-dies-while-handling-bp.exp @@ -40,10 +40,10 @@ proc do_test { non_stop cond_bp_target } { global binfile global linenum - set saved_gdbflags $GDBFLAGS - set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop $non_stop\""] - clean_restart $binfile - set GDBFLAGS $saved_gdbflags + save_vars { GDBFLAGS } { + set GDBFLAGS [concat $GDBFLAGS " -ex \"set non-stop $non_stop\""] + clean_restart $binfile + } if {![runto_main]} { return 0 diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp index d48ea37c0cc..44319ed4368 100644 --- a/gdb/testsuite/lib/gdb.exp +++ b/gdb/testsuite/lib/gdb.exp @@ -6104,16 +6104,14 @@ proc gdb_spawn { } { proc gdb_spawn_with_cmdline_opts { cmdline_flags } { global GDBFLAGS - set saved_gdbflags $GDBFLAGS + save_vars { GDBFLAGS } { + if {$GDBFLAGS != ""} { + append GDBFLAGS " " + } + append GDBFLAGS $cmdline_flags - if {$GDBFLAGS != ""} { - append GDBFLAGS " " + set res [gdb_spawn] } - append GDBFLAGS $cmdline_flags - - set res [gdb_spawn] - - set GDBFLAGS $saved_gdbflags return $res }