X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fgdbthread.h;h=c58a38eab674436130ded86f845fb161b08922ce;hb=61aff869b912a1b28b9c058b62cc90791ba5497d;hp=7483a53eb4b4e50a20a216f240730a0030ca940e;hpb=39f770628a4eaf018fec8d55684bf2ec16ada9cc;p=binutils-gdb.git diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h index 7483a53eb4b..c58a38eab67 100644 --- a/gdb/gdbthread.h +++ b/gdb/gdbthread.h @@ -25,9 +25,16 @@ #ifndef GDBTHREAD_H #define GDBTHREAD_H +struct breakpoint; +struct frame_id; +struct symtab; + /* For bpstat */ #include "breakpoint.h" +/* For struct frame_id. */ +#include "frame.h" + struct thread_info { struct thread_info *next; @@ -37,13 +44,12 @@ struct thread_info int num; /* Convenient handle (GDB thread id) */ /* State from wait_for_inferior */ CORE_ADDR prev_pc; - CORE_ADDR prev_func_start; - char *prev_func_name; struct breakpoint *step_resume_breakpoint; - struct breakpoint *through_sigtramp_breakpoint; CORE_ADDR step_range_start; CORE_ADDR step_range_end; - CORE_ADDR step_frame_address; + struct frame_id step_frame_id; + int current_line; + struct symtab *current_symtab; int trap_expected; int handling_longjmp; int another_trap; @@ -59,10 +65,6 @@ struct thread_info when we finally do stop stepping. */ bpstat stepping_through_solib_catchpoints; - /* This is set to TRUE when this thread is in a signal handler - trampoline and we're single-stepping through it. */ - int stepping_through_sigtramp; - /* Private data used by the target vector implementation. */ struct private_thread_info *private; }; @@ -78,6 +80,9 @@ extern struct thread_info *add_thread (ptid_t ptid); /* Delete an existing thread list entry. */ extern void delete_thread (ptid_t); +/* Delete a step_resume_breakpoint from the thread database. */ +extern void delete_step_resume_breakpoint (void *); + /* Translate the integer thread id (GDB's homegrown id, not the system's) into a "pid" (which may be overloaded with extra thread information). */ extern ptid_t thread_id_to_pid (int); @@ -105,37 +110,33 @@ extern struct thread_info *iterate_over_threads (thread_callback_func, void *); /* infrun context switch: save the debugger state for the given thread. */ extern void save_infrun_state (ptid_t ptid, CORE_ADDR prev_pc, - CORE_ADDR prev_func_start, - char *prev_func_name, int trap_expected, struct breakpoint *step_resume_breakpoint, - struct breakpoint *through_sigtramp_breakpoint, CORE_ADDR step_range_start, CORE_ADDR step_range_end, - CORE_ADDR step_frame_address, + const struct frame_id *step_frame_id, int handling_longjmp, int another_trap, int stepping_through_solib_after_catch, bpstat stepping_through_solib_catchpoints, - int stepping_through_sigtramp); + int current_line, + struct symtab *current_symtab); /* infrun context switch: load the debugger state previously saved for the given thread. */ extern void load_infrun_state (ptid_t ptid, CORE_ADDR *prev_pc, - CORE_ADDR *prev_func_start, - char **prev_func_name, int *trap_expected, struct breakpoint **step_resume_breakpoint, - struct breakpoint **through_sigtramp_breakpoint, CORE_ADDR *step_range_start, CORE_ADDR *step_range_end, - CORE_ADDR *step_frame_address, + struct frame_id *step_frame_id, int *handling_longjmp, int *another_trap, int *stepping_through_solib_affter_catch, bpstat *stepping_through_solib_catchpoints, - int *stepping_through_sigtramp); + int *current_line, + struct symtab **current_symtab); /* Commands with a prefix of `thread'. */ extern struct cmd_list_element *thread_cmd_list;