aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2021-11-23 20:35:12 +0000
committerPedro Alves <pedro@palves.net>2023-11-13 14:16:10 +0000
commit25b16bc9e791d53028c3c180125a80f345b97d94 (patch)
tree77e06017a7eacc4d61bf134221ff248ee9269d5b /gdb
parent65c459abebf70bd5a64dcee11d4d7d4a8498465f (diff)
downloadgdb-25b16bc9e791d53028c3c180125a80f345b97d94.zip
gdb-25b16bc9e791d53028c3c180125a80f345b97d94.tar.gz
gdb-25b16bc9e791d53028c3c180125a80f345b97d94.tar.bz2
Thread options & clone events (native Linux)
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 Reviewed-By: Andrew Burgess <aburgess@redhat.com> Change-Id: If90316e2dcd0c61d0fefa0d463c046011698acf9
Diffstat (limited to 'gdb')
-rw-r--r--gdb/linux-nat.c7
-rw-r--r--gdb/linux-nat.h2
2 files changed, 9 insertions, 0 deletions
diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c
index da870e8..5bbdabc 100644
--- a/gdb/linux-nat.c
+++ b/gdb/linux-nat.c
@@ -4503,6 +4503,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
diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h
index 1cdbeaf..cf23616 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;