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
This commit is contained in:
Pedro Alves 2021-11-23 20:35:12 +00:00
parent 65c459abeb
commit 25b16bc9e7
2 changed files with 9 additions and 0 deletions

View File

@ -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

View 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;