Skip to content

Commit

Permalink
gdb: add frame_id::user_created_p
Browse files Browse the repository at this point in the history
Later in this series, we'll need to differentiate frame ids for regular
frames (obtained from the target state and unwinding from it) vs frame
ids for user-created frames (created with create_new_frame).  Add the
frame_id::user_created_p field to indicate a frame is user-created, and
set it in create_new_frame.

The field is otherwise not used yet, so not changes in behavior are
expected.

Change-Id: I60de3ce581ed01bf0fddb30dff9bd932840120c3
Reviewed-By: Bruno Larsen <[email protected]>
  • Loading branch information
simark committed Jan 20, 2023
1 parent 43e8c9c commit 848ab2a
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 0 deletions.
4 changes: 4 additions & 0 deletions gdb/frame-id.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@ struct frame_id
unsigned int code_addr_p : 1;
unsigned int special_addr_p : 1;

/* True if this frame was created from addresses given by the user (see
create_new_frame) rather than through unwinding. */
unsigned int user_created_p : 1;

/* It is non-zero for a frame made up by GDB without stack data
representation in inferior, such as INLINE_FRAME or TAILCALL_FRAME.
Caller of inlined function will have it zero, each more inner called frame
Expand Down
1 change: 1 addition & 0 deletions gdb/frame.c
Original file line number Diff line number Diff line change
Expand Up @@ -1953,6 +1953,7 @@ create_new_frame (CORE_ADDR addr, CORE_ADDR pc)

fi->this_id.p = frame_id_status::COMPUTED;
fi->this_id.value = frame_id_build (addr, pc);
fi->this_id.value.user_created_p = 1;

frame_debug_printf (" -> %s", fi->to_string ().c_str ());

Expand Down

0 comments on commit 848ab2a

Please sign in to comment.