be the address of a hardware watchpoint. */
struct siginfo siginfo;
+ /* STOPPED_BY_WATCHPOINT is non-zero if this LWP stopped with a data
+ watchpoint trap. */
+ int stopped_by_watchpoint;
+
+ /* On architectures where it is possible to know the data address of
+ a triggered watchpoint, STOPPED_DATA_ADDRESS_P is non-zero, and
+ STOPPED_DATA_ADDRESS contains such data address. Otherwise,
+ STOPPED_DATA_ADDRESS_P is false, and STOPPED_DATA_ADDRESS is
+ undefined. Only valid if STOPPED_BY_WATCHPOINT is true. */
+ int stopped_data_address_p;
+ CORE_ADDR stopped_data_address;
+
/* Non-zero if we expect a duplicated SIGINT. */
int ignore_sigint;
or to a local variable in lin_lwp_wait. */
struct target_waitstatus waitstatus;
+ /* Signal wether we are in a SYSCALL_ENTRY or
+ in a SYSCALL_RETURN event.
+ Values:
+ - TARGET_WAITKIND_SYSCALL_ENTRY
+ - TARGET_WAITKIND_SYSCALL_RETURN */
+ int syscall_state;
+
/* Next LWP in list. */
struct lwp_info *next;
};
/* Find process PID's pending signal set from /proc/pid/status. */
void linux_proc_pending_signals (int pid, sigset_t *pending, sigset_t *blocked, sigset_t *ignored);
+/* Return the TGID of LWPID from /proc/pid/status. Returns -1 if not
+ found. */
+extern int linux_proc_get_tgid (int lwpid);
+
/* linux-nat functions for handling fork events. */
extern void linux_enable_event_reporting (ptid_t ptid);