This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA/commit/doco] move handing of "set interactive-mode" to gdb_has_a_terminal
- From: Joel Brobecker <brobecker at adacore dot com>
- To: Pierre Muller <pierre dot muller at ics-cnrs dot unistra dot fr>
- Cc: gdb-patches at sourceware dot org
- Date: Mon, 31 Jan 2011 07:14:08 +0400
- Subject: Re: [RFA/commit/doco] move handing of "set interactive-mode" to gdb_has_a_terminal
- References: <1295394141-14863-1-git-send-email-brobecker@adacore.com> <20110121185746.GD2440@adacore.com> <000001cbbd47$1d831a50$58894ef0$@muller@ics-cnrs.unistra.fr>
> I suppose that the correct code should be:
> + if (interactive_mode != AUTO_BOOLEAN_AUTO)
> + return (interactive_mode == AUTO_BOOLEAN_TRUE);
This is absolutely correct - horrible typo.
I just checked in the following patch to correct the problem, together
with added tests that demonstrate the effect of this bug. In the
future, don't hesitate to fix the problem yourself too.
--
Joel
commit 9610bd83ed7d0c5bfd28fbc46c4f8828ab10c473
Author: Joel Brobecker <brobecker@adacore.com>
Date: Mon Jan 31 06:28:48 2011 +0400
fix typo during interactive_mode check in gdb_has_a_terminal
Discovered by Pierre Muller.
gdb/ChangeLog:
* inflow.c (gdb_has_a_terminal): Fix typo in interactive_mode
value test.
gdb/testsuite/ChangeLog:
* gdb.base/interact.exp: Add extra tests that verify that
the value of the interactive-mode setting does not change
after the script is sourced.
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 373ccfc..9c18a83 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2011-01-31 Joel Brobecker <brobecker@adacore.com>
+
+ * inflow.c (gdb_has_a_terminal): Fix typo in interactive_mode
+ value test.
+
2011-01-31 Yao Qi <yao@codesourcery.com>
* arm-linux-nat.c: Update calls to regcache_register_status
diff --git a/gdb/inflow.c b/gdb/inflow.c
index 859c74e..9975904 100644
--- a/gdb/inflow.c
+++ b/gdb/inflow.c
@@ -165,7 +165,7 @@ int
gdb_has_a_terminal (void)
{
if (interactive_mode != AUTO_BOOLEAN_AUTO)
- return interactive_mode = AUTO_BOOLEAN_TRUE;
+ return interactive_mode == AUTO_BOOLEAN_TRUE;
switch (gdb_has_a_terminal_flag)
{
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index 1b63bff..d05b6e6 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2011-01-31 Joel Brobecker <brobecker@adacore.com>
+
+ * gdb.base/interact.exp: Add extra tests that verify that
+ the value of the interactive-mode setting does not change
+ after the script is sourced.
+
2011-01-29 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.cp/noparam.exp: New file.
diff --git a/gdb/testsuite/gdb.base/interact.exp b/gdb/testsuite/gdb.base/interact.exp
index 1f15fd8..59caf1b 100644
--- a/gdb/testsuite/gdb.base/interact.exp
+++ b/gdb/testsuite/gdb.base/interact.exp
@@ -28,21 +28,36 @@ set script_output "\\$\[0-9\]+ = 1\[\r\n\]+\\$\[0-9\]+ = 2.*"
gdb_exit
gdb_start
-# Test sourcing of the script with interactive mode `auto'
+# Test sourcing of the script with interactive mode `auto'.
+# Verify that evaluating the script does not cause an unexpected
+# change of the interactive-mode setting.
gdb_test_no_output "set interactive-mode auto"
gdb_test "source zzz-gdbscript" "$script_output" \
"source script with interactive-mode auto"
gdb_test "print 3" "= 3" "sanity check with interactive-mode auto"
+gdb_test "show interactive-mode" \
+ "Debugger's interactive mode is auto \\(currently .*\\)\\." \
+ "show interactive-mode (auto)"
-# Test sourcing of the script with interactive mode `on'
+# Test sourcing of the script with interactive mode `on'.
+# Verify that evaluating the script does not cause an unexpected
+# change of the interactive-mode setting.
gdb_test_no_output "set interactive-mode on"
gdb_test "source zzz-gdbscript" "$script_output" \
"source script with interactive-mode on"
gdb_test "print 4" "= 4" "sanity check with interactive-mode on"
+gdb_test "show interactive-mode" \
+ "Debugger's interactive mode is on\\." \
+ "show interactive-mode (on)"
-# Test sourcing of the script with interactive mode `of'
+# Test sourcing of the script with interactive mode `off'.
+# Verify that evaluating the script does not cause an unexpected
+# change of the interactive-mode setting.
gdb_test_no_output "set interactive-mode off"
gdb_test "source zzz-gdbscript" "$script_output" \
"source script with interactive-mode off"
gdb_test "print 5" "= 5" "sanity check with interactive-mode off"
+gdb_test "show interactive-mode" \
+ "Debugger's interactive mode is off\\." \
+ "show interactive-mode (off)"