]> 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, 18 Jul 2022 16:33:31 +0000 (17:33 +0100)
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

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

index 23d42b5fd55d759bdd54c0c4846f4c3603f0c846..4ddc54ff8bcdd405512b6d854edb4b4bd3fc6bba 100644 (file)
@@ -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
index 683173dbd3848afd70342cdaeac4f708169e7467..c449dc77a5e4c8e2013876d6af7469e45091feb5 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;