aboutsummaryrefslogtreecommitdiff
path: root/gdb/NEWS
diff options
context:
space:
mode:
authorPedro Alves <pedro@palves.net>2021-11-30 19:52:11 +0000
committerPedro Alves <pedro@palves.net>2023-11-13 14:16:11 +0000
commit7ac958f267898ba87ae67ea04f94a3fda24567dc (patch)
treed085d38a04a17dbd2e4f14d18b6f62a5cb2b6647 /gdb/NEWS
parentef980d654ba22aad6b5b301179dd105f522b56a1 (diff)
downloadbinutils-7ac958f267898ba87ae67ea04f94a3fda24567dc.zip
binutils-7ac958f267898ba87ae67ea04f94a3fda24567dc.tar.gz
binutils-7ac958f267898ba87ae67ea04f94a3fda24567dc.tar.bz2
Don't resume new threads if scheduler-locking is in effect
If scheduler-locking is in effect, e.g., with "set scheduler-locking on", and you step over a function that spawns a new thread, the new thread is allowed to run free, at least until some event is hit, at which point, whether the new thread is re-resumed depends on a number of seemingly random factors. E.g., if the target is all-stop, and the parent thread hits a breakpoint, and GDB decides the breakpoint isn't interesting to report to the user, then the parent thread is resumed, but the new thread is left stopped. I think that letting the new threads run with scheduler-locking enabled is a defect. This commit fixes that, making use of the new clone events on Linux, and of target_thread_events() on targets where new threads have no connection to the thread that spawned them. Testcase and documentation changes included. Approved-By: Eli Zaretskii <eliz@gnu.org> Reviewed-By: Andrew Burgess <aburgess@redhat.com> Change-Id: Ie12140138b37534b7fc1d904da34f0f174aa11ce
Diffstat (limited to 'gdb/NEWS')
-rw-r--r--gdb/NEWS7
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/NEWS b/gdb/NEWS
index d85a13b..f2861b1 100644
--- a/gdb/NEWS
+++ b/gdb/NEWS
@@ -392,6 +392,13 @@ show tui mouse-events
from the current process state. GDB will show this additional information
automatically, or through one of the memory-tag subcommands.
+* Scheduler-locking and new threads
+
+ When scheduler-locking is in effect, only the current thread may run
+ when the inferior is resumed. However, previously, new threads
+ created by the resumed thread would still be able to run free. Now,
+ they are held stopped.
+
* "info breakpoints" now displays enabled breakpoint locations of
disabled breakpoints as in the "y-" state. For example: