X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fgdbthread.h;h=e3df58bbcf54692580d31dd81400664e6a0bcdcb;hb=818dd999829879775f22b319e1fe2c8c3a7f77b9;hp=b6dbb0b7f72b75a2e91ca30e730639db4f1b3d08;hpb=abd8680d6efd97e7ba848a6392ee3ad72be18cd0;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h index b6dbb0b7f7..e3df58bbcf 100644 --- a/gdb/gdbthread.h +++ b/gdb/gdbthread.h @@ -1,8 +1,9 @@ /* Multi-process/thread control defs for GDB, the GNU debugger. - Copyright 1987, 88, 89, 90, 91, 92, 1993, 1998, 1999, 2000 - - Contributed by Lynx Real-Time Systems, Inc. Los Gatos, CA. + Copyright 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1997, 1998, 1999, + 2000 Free Software Foundation, Inc. + Contributed by Lynx Real-Time Systems, Inc. Los Gatos, CA. + This file is part of GDB. @@ -27,10 +28,13 @@ /* For bpstat */ #include "breakpoint.h" +/* For struct frame_id. */ +#include "frame.h" + struct thread_info { struct thread_info *next; - int pid; /* "Actual process id"; + ptid_t ptid; /* "Actual process id"; In fact, this may be overloaded with kernel thread id, etc. */ int num; /* Convenient handle (GDB thread id) */ @@ -42,7 +46,10 @@ struct thread_info 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; + CORE_ADDR step_sp; + int current_line; + struct symtab *current_symtab; int trap_expected; int handling_longjmp; int another_trap; @@ -72,29 +79,32 @@ extern void init_thread_list (void); /* Add a thread to the thread list. Note that add_thread now returns the handle of the new thread, so that the caller may initialize the private thread data. */ -extern struct thread_info *add_thread (int pid); +extern struct thread_info *add_thread (ptid_t ptid); /* Delete an existing thread list entry. */ -extern void delete_thread (int); +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 int thread_id_to_pid (int); +extern ptid_t thread_id_to_pid (int); /* Translate a 'pid' (which may be overloaded with extra thread information) into the integer thread id (GDB's homegrown id, not the system's). */ -extern int pid_to_thread_id (int pid); +extern int pid_to_thread_id (ptid_t ptid); /* Boolean test for an already-known pid (which may be overloaded with extra thread information). */ -extern int in_thread_list (int pid); +extern int in_thread_list (ptid_t ptid); /* Boolean test for an already-known thread id (GDB's homegrown id, not the system's). */ extern int valid_thread_id (int thread); /* Search function to lookup a thread by 'pid'. */ -extern struct thread_info *find_thread_pid (int pid); +extern struct thread_info *find_thread_pid (ptid_t ptid); /* Iterator function to call a user-provided callback function once for each known thread. */ @@ -102,7 +112,7 @@ typedef int (*thread_callback_func) (struct thread_info *, void *); 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 (int pid, +extern void save_infrun_state (ptid_t ptid, CORE_ADDR prev_pc, CORE_ADDR prev_func_start, char *prev_func_name, @@ -111,16 +121,19 @@ extern void save_infrun_state (int pid, 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 stepping_through_sigtramp, + int current_line, + struct symtab *current_symtab, + CORE_ADDR step_sp); /* infrun context switch: load the debugger state previously saved for the given thread. */ -extern void load_infrun_state (int pid, +extern void load_infrun_state (ptid_t ptid, CORE_ADDR *prev_pc, CORE_ADDR *prev_func_start, char **prev_func_name, @@ -129,12 +142,15 @@ extern void load_infrun_state (int pid, 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 *stepping_through_sigtramp, + int *current_line, + struct symtab **current_symtab, + CORE_ADDR *step_sp); /* Commands with a prefix of `thread'. */ extern struct cmd_list_element *thread_cmd_list;