]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Thread options & clone events (native Linux)
authorPedro Alves <pedro@palves.net>
Tue, 23 Nov 2021 20:35:12 +0000 (20:35 +0000)
committerPedro Alves <pedro@palves.net>
Mon, 12 Dec 2022 19:04:15 +0000 (19:04 +0000)
This commit teaches the native Linux target about the
GDB_THREAD_OPTION_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 is to report support for the option,
otherwise GDB falls back to use target_thread_events().

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=19675
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27830
Change-Id: If90316e2dcd0c61d0fefa0d463c046011698acf9

gdb/linux-nat.c
gdb/linux-nat.h

index f3d02b740e883a39461815df21ab7d3688f73200..5fadc82deb03a09e0979ac861482a0e66706a7b0 100644 (file)
@@ -4468,6 +4468,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_THREAD_OPTION_CLONE;
+  return ((options & supported_options) == options);
+}
+
 linux_nat_target::linux_nat_target ()
 {
   /* We don't change the stratum; this target will sit at
index 3ed25cc5ba4aace0dea28f85929ee5d5192f05ac..258041b8271657f50c107739a63d9a3190ddf96b 100644 (file)
@@ -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;