/* Code dealing with dummy stack frames, for GDB, the GNU debugger.
- Copyright (C) 1986-2020 Free Software Foundation, Inc.
+ Copyright (C) 1986-2021 Free Software Foundation, Inc.
This file is part of GDB.
restore_infcall_suspend_state (dummy->caller_state);
- iterate_over_breakpoints ([dummy] (breakpoint* bp)
- {
- return pop_dummy_frame_bpt (bp, dummy);
- });
+ for (breakpoint *bp : all_breakpoints_safe ())
+ if (pop_dummy_frame_bpt (bp, dummy))
+ break;
/* restore_infcall_control_state frees inf_state,
all that remains is to pop *dummy_ptr. */
them up at least once whenever we start a new inferior. */
static void
-cleanup_dummy_frames ()
+cleanup_dummy_frames (inferior *inf)
{
while (dummy_frame_stack != NULL)
remove_dummy_frame (&dummy_frame_stack);
{
gdb_print_host_address (s, file);
fprintf_unfiltered (file, ":");
- fprintf_unfiltered (file, " id=");
- fprint_frame_id (file, s->id.id);
+ fprintf_unfiltered (file, " id=%s", s->id.id.to_string ().c_str ());
fprintf_unfiltered (file, ", ptid=%s",
target_pid_to_str (s->id.thread->ptid).c_str ());
fprintf_unfiltered (file, "\n");
_("Print the contents of the internal dummy-frame stack."),
&maintenanceprintlist);
- gdb::observers::inferior_created.attach (cleanup_dummy_frames);
+ gdb::observers::inferior_created.attach (cleanup_dummy_frames, "dummy-frame");
}