From: Tom Tromey Date: Wed, 5 Jan 2022 17:42:25 +0000 (-0700) Subject: Avoid crash in language_info X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5220f61a22a0c1a84403725532d6359aaeb3d2fa;p=binutils-gdb.git 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 --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); } /* 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