gdb: add missing prepare_reinflate call in print_frame_info
authorSimon Marchi <simon.marchi@polymtl.ca>
Fri, 21 Oct 2022 15:49:44 +0000 (11:49 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Thu, 10 Nov 2022 16:33:16 +0000 (11:33 -0500)
print_frame_info calls frame_info_ptr::reinflate, but not
frame_info_ptr::prepare_reinflate, add the call to prepare_reinflate.
It works right now, because all callers of print_frame_info that could
possibly lead to the pretty printers being called, and the frame_info
objects being invalidated, do call prepare_reinflate themselves.  And
since the cached frame id is copied when passing a frame_info_ptr by
value, print_frame_info does have a cached frame id on entry.  So
technically, this change isn't needed.  But I don't think it's good for
a function to rely on its callers to have called prepare_reinflate, if
it intends to call reinflate.

Change-Id: Ie332b2d5479aef46f83fdc1120c7c83f4e84d1b0
Reviewed-By: Bruno Larsen <blarsen@redhat.com>
gdb/stack.c

index 5f29566fcfe93b3975fc46c81e0d642538cea8b4..4ad51c2eb50ec539ca7a3f06ab260e32f6494cae 100644 (file)
@@ -1047,6 +1047,8 @@ print_frame_info (const frame_print_options &fp_opts,
   int location_print;
   struct ui_out *uiout = current_uiout;
 
+  frame.prepare_reinflate ();
+
   if (!current_uiout->is_mi_like_p ()
       && fp_opts.print_frame_info != print_frame_info_auto)
     {