Index: gdb/gdbthread.h |
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h |
index fb8de161e1de3dc1be230e2e3f28336753ea7acb..02505559d6c3c43c4d5fd087ee645da7448462d7 100644 |
--- a/gdb/gdbthread.h |
+++ b/gdb/gdbthread.h |
@@ -123,7 +123,7 @@ struct thread_control_state |
struct thread_suspend_state |
{ |
/* Last signal that the inferior received (why it stopped). */ |
- enum target_signal stop_signal; |
+ enum gdb_signal stop_signal; |
}; |
struct thread_info |
@@ -216,7 +216,9 @@ struct thread_info |
int stop_requested; |
/* The initiating frame of a nexting operation, used for deciding |
- which exceptions to intercept. */ |
+ which exceptions to intercept. If it is null_frame_id no |
+ bp_longjmp or bp_exception but longjmp has been caught just for |
+ bp_longjmp_call_dummy. */ |
struct frame_id initiating_frame; |
/* Private data used by the target vector implementation. */ |
@@ -299,6 +301,11 @@ void thread_change_ptid (ptid_t old_ptid, ptid_t new_ptid); |
typedef int (*thread_callback_func) (struct thread_info *, void *); |
extern struct thread_info *iterate_over_threads (thread_callback_func, void *); |
+/* Traverse all threads. */ |
+ |
+#define ALL_THREADS(T) \ |
+ for (T = thread_list; T; T = T->next) |
+ |
extern int thread_count (void); |
/* Switch from one thread to another. */ |
@@ -389,4 +396,6 @@ extern struct thread_info* inferior_thread (void); |
extern void update_thread_list (void); |
+extern struct thread_info *thread_list; |
+ |
#endif /* GDBTHREAD_H */ |