From: Pedro Alves Date: Tue, 23 Nov 2021 20:35:12 +0000 (+0000) Subject: Thread options & clone events (native Linux) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e5a5c15bdc3a8df561b0f7fff7af51d6725500b6;p=thirdparty%2Fbinutils-gdb.git Thread options & clone events (native Linux) This commit teaches the native Linux target about the GDB_TO_CLONE thread option. It's actually simpler to just continue reporting all clone events unconditionally to the core. There's never any harm in reporting a clone event when the option is disabled. All we need to do report support for the option, otherwise GDB falls back to use target_thread_events(). Change-Id: If271f20320d864f074d8ac0d531cc1a323da847f Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=19675 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27830 --- diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 23d42b5fd55..4ddc54ff8bc 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -4416,6 +4416,13 @@ linux_nat_target::thread_events (int enable) report_thread_events = enable; } +bool +linux_nat_target::supports_set_thread_options (gdb_thread_options options) +{ + constexpr gdb_thread_options supported_options = GDB_TO_CLONE; + return ((options & supported_options) == options); +} + linux_nat_target::linux_nat_target () { /* We don't change the stratum; this target will sit at diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index 683173dbd38..c449dc77a5e 100644 --- a/gdb/linux-nat.h +++ b/gdb/linux-nat.h @@ -82,6 +82,8 @@ public: void thread_events (int) override; + bool supports_set_thread_options (gdb_thread_options options) override; + bool can_async_p () override; bool supports_non_stop () override;