/* Native debugging support for GNU/Linux (LWP layer).
- Copyright (C) 2000-2020 Free Software Foundation, Inc.
+ Copyright (C) 2000-2021 Free Software Foundation, Inc.
This file is part of GDB.
void resume (ptid_t, int, enum gdb_signal) override;
- ptid_t wait (ptid_t, struct target_waitstatus *, int) override;
+ ptid_t wait (ptid_t, struct target_waitstatus *, target_wait_flags) override;
void pass_signals (gdb::array_view<const unsigned char>) override;
void post_attach (int) override;
- int follow_fork (int, int) override;
+ void follow_fork (bool, bool) override;
std::vector<static_tracepoint_marker>
static_tracepoint_markers_by_strid (const char *id) override;
virtual void low_new_fork (struct lwp_info *parent, pid_t child_pid)
{}
+ /* The method to call, if any, when a new clone event is detected. */
+ virtual void low_new_clone (struct lwp_info *parent, pid_t child_lwp)
+ {}
+
/* The method to call, if any, when a process is no longer
attached. */
virtual void low_forget_process (pid_t pid)
/* When 'stopped' is set, this is where the lwp last stopped, with
decr_pc_after_break already accounted for. If the LWP is
- running, and stepping, this is the address at which the lwp was
+ running and stepping, this is the address at which the lwp was
resumed (that is, it's the previous stop PC). If the LWP is
running and not stepping, this is 0. */
CORE_ADDR stop_pc;
int step;
/* The reason the LWP last stopped, if we need to track it
- (breakpoint, watchpoint, etc.) */
+ (breakpoint, watchpoint, etc.). */
enum target_stop_reason stop_reason;
/* On architectures where it is possible to know the data address of
true on success, false if the process isn't using libpthread. */
extern int thread_db_notice_clone (ptid_t parent, ptid_t child);
-/* Return the set of signals used by the threads library. */
-extern void lin_thread_get_thread_signals (sigset_t *mask);
+/* Return the number of signals used by the threads library. */
+extern unsigned int lin_thread_get_thread_signal_num (void);
+
+/* Return the i-th signal used by the threads library. */
+extern int lin_thread_get_thread_signal (unsigned int i);
/* Find process PID's pending signal set from /proc/pid/status. */
void linux_proc_pending_signals (int pid, sigset_t *pending,