From 101dcfbe4ad4c4b054b2bd6b289fbe579e2503c6 Mon Sep 17 00:00:00 2001 From: Andrew Cagney Date: Mon, 10 Jun 2002 23:25:50 +0000 Subject: * infrun.c (struct inferior_status): Replace fields selected_frame_address and selected_level with field selected_frame_id. (save_inferior_status): Update. Use get_frame_id. (struct restore_selected_frame_args): Delete. (restore_selected_frame): Update. Use frame_find_by_id. (restore_inferior_status): Update. * breakpoint.h (struct breakpoint): Change type of watchpoint_frame to frame_id. * breakpoint.c (insert_breakpoints): Use frame_find_by_id. Remove call to get_current_frame. (do_enable_breakpoint): Use frame_find_by_id. Remove call to get_current_frame. (watchpoint_check): Use frame_find_by_id. * frame.h (record_selected_frame): Delete declaration. * stack.c (record_selected_frame): Delete function. * frame.h (struct frame_id): Define. (get_frame_id): Declare. (frame_find_by_id): Declare. * frame.c (frame_find_by_id): New function. (get_frame_id): New function. --- gdb/frame.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'gdb/frame.h') diff --git a/gdb/frame.h b/gdb/frame.h index cdbcd48..c1df5fc 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -274,7 +274,21 @@ extern void show_stack_frame (struct frame_info *); extern void select_frame (struct frame_info *); -extern void record_selected_frame (CORE_ADDR *, int *); +/* Return an ID that can be used to re-find a frame. */ + +struct frame_id +{ + /* The frame's address. This should be constant through out the + lifetime of a frame. */ + CORE_ADDR base; + /* The frame's current PC. While this changes, the function that + the PC falls into, does not. */ + CORE_ADDR pc; +}; + +extern void get_frame_id (struct frame_info *fi, struct frame_id *id); + +extern struct frame_info *frame_find_by_id (struct frame_id id); extern void print_frame_info (struct frame_info *, int, int, int); -- cgit v1.1