daily update
[deliverable/binutils-gdb.git] / gdb / gdbthread.h
index f336d91f48d4e01b427bfb44dbbed41986ecca23..5f9e98523f97c7f50a16d440c1a298f99c5ca378 100644 (file)
@@ -1,7 +1,6 @@
 /* Multi-process/thread control defs for GDB, the GNU debugger.
-   Copyright 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1997, 1998, 1999,
-   2000
-   Free Software Foundation, Inc.
+   Copyright (C) 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1997, 1998, 1999,
+   2000, 2007, 2008 Free Software Foundation, Inc.
    Contributed by Lynx Real-Time Systems, Inc.  Los Gatos, CA.
    
 
@@ -9,7 +8,7 @@
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -18,9 +17,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef GDBTHREAD_H
 #define GDBTHREAD_H
@@ -35,6 +32,8 @@ struct symtab;
 /* For struct frame_id.  */
 #include "frame.h"
 
+#include "ui-out.h"
+
 struct thread_info
 {
   struct thread_info *next;
@@ -44,18 +43,14 @@ struct thread_info
   int num;                     /* Convenient handle (GDB thread id) */
   /* State from wait_for_inferior */
   CORE_ADDR prev_pc;
-  char *prev_func_name;
   struct breakpoint *step_resume_breakpoint;
-  struct breakpoint *through_sigtramp_breakpoint;
   CORE_ADDR step_range_start;
   CORE_ADDR step_range_end;
   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;
+  int stepping_over_breakpoint;
 
   /* This is set TRUE when a catchpoint of a shared library event
      triggers.  Since we don't wish to leave the inferior in the
@@ -68,10 +63,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;
 };
@@ -79,11 +70,20 @@ struct thread_info
 /* Create an empty thread list, or empty the existing one.  */
 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.  */
+/* Add a thread to the thread list, print a message
+   that a new thread is found, and return the pointer to
+   the new thread.  Caller my use this pointer to 
+   initialize the private thread data.  */
 extern struct thread_info *add_thread (ptid_t ptid);
 
+/* Same as add_thread, but does not print a message
+   about new thread.  */
+extern struct thread_info *add_thread_silent (ptid_t ptid);
+
+/* Same as add_thread, and sets the private info.  */
+extern struct thread_info *add_thread_with_info (ptid_t ptid,
+                                                struct private_thread_info *);
+
 /* Delete an existing thread list entry.  */
 extern void delete_thread (ptid_t);
 
@@ -117,43 +117,46 @@ 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,
-                              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,
                               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,
-                              CORE_ADDR step_sp);
+                              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,
-                              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,
                               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,
-                              CORE_ADDR *step_sp);
+                              struct symtab **current_symtab);
+
+/* Switch from one thread to another.  */
+extern void switch_to_thread (ptid_t ptid);
 
 /* Commands with a prefix of `thread'.  */
 extern struct cmd_list_element *thread_cmd_list;
 
+/* Print notices on thread events (attach, detach, etc.), set with
+   `set print thread-events'.  */
+extern int print_thread_events;
+
+extern void print_thread_info (struct ui_out *uiout, int thread);
+
+extern struct cleanup *make_cleanup_restore_current_thread (ptid_t,
+                                                            struct frame_id);
+
+
 #endif /* GDBTHREAD_H */
This page took 0.024478 seconds and 4 git commands to generate.