From 12bb802fab16b5bf8edc027c247741bd75db1257 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 15 Sep 2022 12:06:02 -0600 Subject: [PATCH] Don't let property evaluation affect the current language On PPC, we saw that calling an inferior function could sometimes change the current language, because gdb would select the call dummy frame -- associated with _start. This patch changes gdb so that the current language is never affected by DWARF property evaluation. --- gdb/dwarf2/loc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gdb/dwarf2/loc.c b/gdb/dwarf2/loc.c index 0acc63805e7..fe91d609f19 100644 --- a/gdb/dwarf2/loc.c +++ b/gdb/dwarf2/loc.c @@ -1641,6 +1641,11 @@ dwarf2_evaluate_property (const struct dynamic_prop *prop, if (prop == NULL) return false; + /* Evaluating a property should not change the current language. + Without this here this could happen if the code below selects a + frame. */ + scoped_restore_current_language save_language; + if (frame == NULL && has_stack_frames ()) frame = get_selected_frame (NULL); -- 2.30.2