diff options
author | Pedro Alves <pedro@palves.net> | 2021-11-23 20:35:12 +0000 |
---|---|---|
committer | Pedro Alves <pedro@palves.net> | 2023-11-13 14:16:10 +0000 |
commit | 25b16bc9e791d53028c3c180125a80f345b97d94 (patch) | |
tree | 77e06017a7eacc4d61bf134221ff248ee9269d5b /gdb | |
parent | 65c459abebf70bd5a64dcee11d4d7d4a8498465f (diff) | |
download | gdb-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.c | 7 | ||||
-rw-r--r-- | gdb/linux-nat.h | 2 |
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; |