when we finally do stop stepping. */
bpstat stepping_through_solib_catchpoints;
- /* The below are only per-thread in non-stop mode. */
/* Per-thread command support. */
+
+ /* Pointer to what is left to do for an execution command after the
+ target stops. Used only in asynchronous mode, by targets that
+ support async execution. Several execution commands use it. */
struct continuation *continuations;
+
+ /* Similar to the above, but used when a single execution command
+ requires several resume/stop iterations. Used by the step
+ command. */
struct continuation *intermediate_continuations;
/* Nonzero if the thread is being proceeded for a "finish" command
int proceed_to_finish;
enum step_over_calls_kind step_over_calls;
+
+ /* Nonzero if stopped due to a step command. */
int stop_step;
+
+ /* If stepping, nonzero means step count is > 1 so don't print frame
+ next time inferior stops if it stops due to stepping. */
int step_multi;
+ /* Last signal that the inferior received (why it stopped). */
enum target_signal stop_signal;
/* Chain containing status of breakpoint(s) the thread stopped
at. */
bpstat stop_bpstat;
+ /* True if this thread has been explicitly requested to stop. */
+ int stop_requested;
+
/* Private data used by the target vector implementation. */
struct private_thread_info *private;
};
extern int thread_count (void);
-/* infrun context switch: save the debugger state for the given thread. */
-extern void save_infrun_state (ptid_t ptid,
- struct continuation *continuations,
- struct continuation *intermediate_continuations,
- int stop_step,
- int step_multi,
- enum target_signal stop_signal);
-
-/* infrun context switch: load the debugger state previously saved
- for the given thread. */
-extern void load_infrun_state (ptid_t ptid,
- struct continuation **continuations,
- struct continuation **intermediate_continuations,
- int *stop_step,
- int *step_multi,
- enum target_signal *stop_signal);
-
/* Switch from one thread to another. */
extern void switch_to_thread (ptid_t ptid);
If PIDGET (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.
+ If PTID is MINUS_ONE_PTID, applies to all threads. If
+ ptid_is_pid(PTID) is true, applies to all threads of the process
+ pointed at by PTID. If STOP, then the THREAD_STOP_REQUESTED
+ observer is called with PTID as argument. */
+extern void set_stop_requested (ptid_t ptid, int stop);
+
/* NOTE: Since the thread state is not a boolean, most times, you do
not want to check it with negation. If you really want to check if
the thread is stopped,