public inbox for gdb-cvs@sourceware.org
help / color / mirror / Atom feed
* [binutils-gdb] Avoid crash in language_info
@ 2022-01-06 14:57 Tom Tromey
  0 siblings, 0 replies; only message in thread
From: Tom Tromey @ 2022-01-06 14:57 UTC (permalink / raw)
  To: gdb-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5220f61a22a0c1a84403725532d6359aaeb3d2fa

commit 5220f61a22a0c1a84403725532d6359aaeb3d2fa
Author: Tom Tromey <tromey@adacore.com>
Date:   Wed Jan 5 10:42:25 2022 -0700

    Avoid crash in language_info
    
    language_info calls:
    
      show_language_command (NULL, 1, NULL, NULL);
    
    ... "knowing" that show_language_command does not use its ui_file
    parameter.  However, this was changed in commit 7514a661
    ("Consistently Use ui_file parameter to show callbacks").
    
    This patch changes language_info to pass a ui_file.
    
    It took a while to write the test -- this function is only called when
    'verbose' is on and when switching the "expected" language in auto
    mode.

Diff:
---
 gdb/language.c                   | 2 +-
 gdb/testsuite/gdb.base/langs.exp | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/gdb/language.c b/gdb/language.c
index 0e6a1a4bcdb..0846b3e5eeb 100644
--- a/gdb/language.c
+++ b/gdb/language.c
@@ -384,7 +384,7 @@ language_info ()
 
   expected_language = current_language;
   printf_filtered (_("Current language:  %s\n"), language);
-  show_language_command (NULL, 1, NULL, NULL);
+  show_language_command (gdb_stdout, 1, NULL, NULL);
 }
 \f
 /* This page contains functions for the printing out of
diff --git a/gdb/testsuite/gdb.base/langs.exp b/gdb/testsuite/gdb.base/langs.exp
index 134cde1f6b5..9c78a8a4397 100644
--- a/gdb/testsuite/gdb.base/langs.exp
+++ b/gdb/testsuite/gdb.base/langs.exp
@@ -117,6 +117,15 @@ if [runto csub] then {
     gdb_test "print x" \
 	"expression parsing not implemented for language .Unknown." \
 	"expression parsing does not crash for unknown"
+
+    gdb_test_no_output "set lang auto" \
+	"set lang back to auto for verbose test"
+    gdb_test_no_output "set verbose on"
+    if { !$isfixed } { set lang c\\+\\+; set ext cxx }
+    if {!$gcc_compiled} then { setup_xfail "rs6000-*-*" }
+    gdb_test "up" \
+	".* in (foo|$foo_func).* at .*langs2\\.$ext.*return csub \\(.*Current language:  auto.*" \
+	"up to foo in langs.exp when verbose"
 }
 
 set timeout $oldtimeout


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-01-06 14:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-06 14:57 [binutils-gdb] Avoid crash in language_info Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).