aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tromey@adacore.com>2022-01-05 10:42:25 -0700
committerTom Tromey <tromey@adacore.com>2022-01-06 07:54:30 -0700
commit5220f61a22a0c1a84403725532d6359aaeb3d2fa (patch)
tree160b393a372d1b5860d44742735a1ea117c8304b
parentd8504344d476f90bffca815b33b69fd778677478 (diff)
downloadgdb-5220f61a22a0c1a84403725532d6359aaeb3d2fa.zip
gdb-5220f61a22a0c1a84403725532d6359aaeb3d2fa.tar.gz
gdb-5220f61a22a0c1a84403725532d6359aaeb3d2fa.tar.bz2
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.
-rw-r--r--gdb/language.c2
-rw-r--r--gdb/testsuite/gdb.base/langs.exp9
2 files changed, 10 insertions, 1 deletions
diff --git a/gdb/language.c b/gdb/language.c
index 0e6a1a4..0846b3e 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 134cde1..9c78a8a 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