Index: gdb/gdbthread.h |
diff --git a/gdb/gdbthread.h b/gdb/gdbthread.h |
index 02505559d6c3c43c4d5fd087ee645da7448462d7..81dc7edb6b7e0cc9c3332e14914f12b4768cbb67 100644 |
--- a/gdb/gdbthread.h |
+++ b/gdb/gdbthread.h |
@@ -1,6 +1,5 @@ |
/* Multi-process/thread control defs for GDB, the GNU debugger. |
- Copyright (C) 1987-1993, 1997-2000, 2007-2012 Free Software |
- Foundation, Inc. |
+ Copyright (C) 1987-2013 Free Software Foundation, Inc. |
Contributed by Lynx Real-Time Systems, Inc. Los Gatos, CA. |
@@ -28,6 +27,7 @@ struct symtab; |
#include "frame.h" |
#include "ui-out.h" |
#include "inferior.h" |
+#include "btrace.h" |
/* Frontend view of the thread state. Possible extensions: stepping, |
finishing, until(ling),... */ |
@@ -65,6 +65,14 @@ struct thread_control_state |
CORE_ADDR step_range_start; /* Inclusive */ |
CORE_ADDR step_range_end; /* Exclusive */ |
+ /* If GDB issues a target step request, and this is nonzero, the |
+ target should single-step this thread once, and then continue |
+ single-stepping it without GDB core involvement as long as the |
+ thread stops in the step range above. If this is zero, the |
+ target should ignore the step range, and only issue one single |
+ step. */ |
+ int may_range_step; |
+ |
/* Stack frame address as of when stepping command was issued. |
This is how we know when we step into a subroutine call, and how |
to set the frame for the breakpoint used to step out. */ |
@@ -227,6 +235,9 @@ struct thread_info |
/* Function that is called to free PRIVATE. If this is NULL, then |
xfree will be called on PRIVATE. */ |
void (*private_dtor) (struct private_thread_info *); |
+ |
+ /* Branch trace information for this thread. */ |
+ struct btrace_thread_info btrace; |
}; |
/* Create an empty thread list, or empty the existing one. */ |
@@ -312,7 +323,7 @@ extern int thread_count (void); |
extern void switch_to_thread (ptid_t ptid); |
/* Marks thread PTID is running, or stopped. |
- If PIDGET (PTID) is -1, marks all threads. */ |
+ If ptid_get_pid (PTID) is -1, marks all threads. */ |
extern void set_running (ptid_t ptid, int running); |
/* Marks or clears thread(s) PTID as having been requested to stop. |
@@ -350,7 +361,7 @@ extern int is_stopped (ptid_t ptid); |
/* In the frontend's perpective is there any thread running? */ |
extern int any_running (void); |
-/* Marks thread PTID as executing, or not. If PIDGET (PTID) is -1, |
+/* Marks thread PTID as executing, or not. If ptid_get_pid (PTID) is -1, |
marks all threads. |
Note that this is different from the running state. See the |
@@ -368,7 +379,7 @@ extern int is_executing (ptid_t ptid); |
"executing" -> "running" |
"exited" -> "exited" |
- If PIDGET (PTID) is -1, go over all threads. |
+ If ptid_get_pid (PTID) is -1, go over all threads. |
Notifications are only emitted if the thread state did change. */ |
extern void finish_thread_state (ptid_t ptid); |
@@ -396,6 +407,10 @@ extern struct thread_info* inferior_thread (void); |
extern void update_thread_list (void); |
+/* Return true if PC is in the stepping range of THREAD. */ |
+ |
+int pc_in_thread_step_range (CORE_ADDR pc, struct thread_info *thread); |
+ |
extern struct thread_info *thread_list; |
#endif /* GDBTHREAD_H */ |