diff options
author | Pedro Alves <pedro@palves.net> | 2021-11-23 20:35:12 +0000 |
---|---|---|
committer | Pedro Alves <pedro@palves.net> | 2022-12-12 19:04:15 +0000 |
commit | 72df7c538f5adecbf68630dfc24db7693fbf7e50 (patch) | |
tree | 8b748890e391d067f63ba6bbc676b6bf40fffd89 | |
parent | 883e02207f9cf8fae2d8b4adca5d939d647cefa1 (diff) | |
download | gdb-72df7c538f5adecbf68630dfc24db7693fbf7e50.zip gdb-72df7c538f5adecbf68630dfc24db7693fbf7e50.tar.gz gdb-72df7c538f5adecbf68630dfc24db7693fbf7e50.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
Change-Id: If90316e2dcd0c61d0fefa0d463c046011698acf9
-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 f3d02b7..5fadc82 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -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 diff --git a/gdb/linux-nat.h b/gdb/linux-nat.h index 3ed25cc..258041b 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; |