/* Inline frame unwinder for GDB.
- Copyright (C) 2008-2020 Free Software Foundation, Inc.
+ Copyright (C) 2008-2021 Free Software Foundation, Inc.
This file is part of GDB.
function, there must be previous frames, so this is safe - as
long as we're careful not to create any cycles. See related
comments in get_prev_frame_always_1. */
- *this_id = get_frame_id (get_prev_frame_always (this_frame));
+ frame_info *prev_frame = get_prev_frame_always (this_frame);
+ if (prev_frame == nullptr)
+ error (_("failed to find previous frame when computing inline frame id"));
+ *this_id = get_frame_id (prev_frame);
/* We need a valid frame ID, so we need to be based on a valid
frame. FSF submission NOTE: this would be a good assertion to
}
const struct frame_unwind inline_frame_unwind = {
+ "inline",
INLINE_FRAME,
default_frame_unwind_stop_reason,
inline_frame_this_id,
if (bpt != NULL
&& (user_breakpoint_p (bpt) || bpt->type == bp_until))
{
- bp_location *loc = s->bp_location_at;
+ bp_location *loc = s->bp_location_at.get ();
enum bp_loc_type t = loc->loc_type;
if (t == bp_loc_software_breakpoint