/* For struct frame_id. */
#include "frame.h"
+#include "ui-out.h"
+
struct thread_info
{
struct thread_info *next;
int current_line;
struct symtab *current_symtab;
int trap_expected;
- int handling_longjmp;
int stepping_over_breakpoint;
/* This is set TRUE when a catchpoint of a shared library event
/* 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);
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,
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,
/* 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 */