diff options
Diffstat (limited to 'gdb/gnu-nat.h')
-rw-r--r-- | gdb/gnu-nat.h | 95 |
1 files changed, 50 insertions, 45 deletions
diff --git a/gdb/gnu-nat.h b/gdb/gnu-nat.h index 42393cd..bb85fa3 100644 --- a/gdb/gnu-nat.h +++ b/gdb/gnu-nat.h @@ -55,41 +55,41 @@ int inf_update_procs (struct inf *inf); /* A proc is either a thread, or the task (there can only be one task proc because it always has the same TID, PROC_TID_TASK). */ struct proc - { - thread_t port; /* The task or thread port. */ - int tid; /* The GDB pid (actually a thread id). */ - int num; /* An id number for threads, to print. */ - - mach_port_t saved_exc_port; /* The task/thread's real exception port. */ - mach_port_t exc_port; /* Our replacement, which for. */ - - int sc; /* Desired suspend count. */ - int cur_sc; /* Implemented suspend count. */ - int run_sc; /* Default sc when the program is running. */ - int pause_sc; /* Default sc when gdb has control. */ - int resume_sc; /* Sc resulting from the last resume. */ - int detach_sc; /* SC to leave around when detaching +{ + thread_t port; /* The task or thread port. */ + int tid; /* The GDB pid (actually a thread id). */ + int num; /* An id number for threads, to print. */ + + mach_port_t saved_exc_port; /* The task/thread's real exception port. */ + mach_port_t exc_port; /* Our replacement, which for. */ + + int sc; /* Desired suspend count. */ + int cur_sc; /* Implemented suspend count. */ + int run_sc; /* Default sc when the program is running. */ + int pause_sc; /* Default sc when gdb has control. */ + int resume_sc; /* Sc resulting from the last resume. */ + int detach_sc; /* SC to leave around when detaching from program. */ - thread_state_data_t state; /* Registers, &c. */ - int state_valid:1; /* True if STATE is up to date. */ - int state_changed:1; + thread_state_data_t state; /* Registers, &c. */ + int state_valid : 1; /* True if STATE is up to date. */ + int state_changed : 1; - int aborted:1; /* True if thread_abort has been called. */ - int dead:1; /* We happen to know it's actually dead. */ + int aborted : 1; /* True if thread_abort has been called. */ + int dead : 1; /* We happen to know it's actually dead. */ - /* Bit mask of registers fetched by gdb. This is used when we re-fetch + /* Bit mask of registers fetched by gdb. This is used when we re-fetch STATE after aborting the thread, to detect that gdb may have out-of-date information. */ - unsigned long fetched_regs; + unsigned long fetched_regs; - struct inf *inf; /* Where we come from. */ + struct inf *inf; /* Where we come from. */ - struct proc *next; - }; + struct proc *next; +}; /* The task has a thread entry with this TID. */ -#define PROC_TID_TASK (-1) +#define PROC_TID_TASK (-1) #define proc_is_task(proc) ((proc)->tid == PROC_TID_TASK) #define proc_is_thread(proc) ((proc)->tid != PROC_TID_TASK) @@ -99,18 +99,25 @@ extern int __proc_pid (struct proc *proc); /* Return printable description of proc. */ extern char *proc_string (struct proc *proc); -#define proc_debug(_proc, msg, args...) \ - do { struct proc *__proc = (_proc); \ - debug ("{proc %d/%d %s}: " msg, \ - __proc_pid (__proc), __proc->tid, \ - host_address_to_string (__proc) , ##args); } while (0) +#define proc_debug(_proc, msg, args...) \ + do \ + { \ + struct proc *__proc = (_proc); \ + debug ("{proc %d/%d %s}: " msg, __proc_pid (__proc), __proc->tid, \ + host_address_to_string (__proc), ##args); \ + } \ + while (0) extern bool gnu_debug_flag; -#define debug(msg, args...) \ - do { if (gnu_debug_flag) \ - gdb_printf (gdb_stdlog, "%s:%d: " msg "\r\n", \ - __FILE__ , __LINE__ , ##args); } while (0) +#define debug(msg, args...) \ + do \ + { \ + if (gnu_debug_flag) \ + gdb_printf (gdb_stdlog, "%s:%d: " msg "\r\n", __FILE__, __LINE__, \ + ##args); \ + } \ + while (0) /* A prototype generic GNU/Hurd target. The client can override it with local methods. */ @@ -118,26 +125,24 @@ extern bool gnu_debug_flag; struct gnu_nat_target : public inf_child_target { void attach (const char *, int) override; - bool attach_no_wait () override - { return true; } + + bool attach_no_wait () override { return true; } void detach (inferior *, int) override; void resume (ptid_t, int, enum gdb_signal) override; ptid_t wait (ptid_t, struct target_waitstatus *, target_wait_flags) override; enum target_xfer_status xfer_partial (enum target_object object, - const char *annex, - gdb_byte *readbuf, + const char *annex, gdb_byte *readbuf, const gdb_byte *writebuf, ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) override; - int find_memory_regions (find_memory_region_ftype func, void *data) - override; + int find_memory_regions (find_memory_region_ftype func, void *data) override; void kill () override; - void create_inferior (const char *, const std::string &, - char **, int) override; + void create_inferior (const char *, const std::string &, char **, + int) override; void mourn_inferior () override; bool thread_alive (ptid_t ptid) override; std::string pid_to_str (ptid_t) override; @@ -155,6 +160,7 @@ struct gnu_nat_target : public inf_child_target thread_state_t proc_get_state (struct proc *proc, int will_modify); private: + void inf_clear_wait (struct inf *inf); void inf_cleanup (struct inf *inf); void inf_startup (struct inf *inf, int pid); @@ -164,8 +170,7 @@ private: void inf_validate_procinfo (struct inf *inf); void inf_validate_task_sc (struct inf *inf); void inf_restore_exc_ports (struct inf *inf); - void inf_set_threads_resume_sc (struct inf *inf, - struct proc *run_thread, + void inf_set_threads_resume_sc (struct inf *inf, struct proc *run_thread, int run_others); int inf_set_threads_resume_sc_for_signal_thread (struct inf *inf); void inf_resume (struct inf *inf); @@ -179,7 +184,7 @@ private: void proc_abort (struct proc *proc, int force); struct proc *_proc_free (struct proc *proc); int proc_update_sc (struct proc *proc); - kern_return_t proc_get_exception_port (struct proc *proc, mach_port_t * port); + kern_return_t proc_get_exception_port (struct proc *proc, mach_port_t *port); kern_return_t proc_set_exception_port (struct proc *proc, mach_port_t port); mach_port_t _proc_get_exc_port (struct proc *proc); void proc_steal_exc_port (struct proc *proc, mach_port_t exc_port); |