mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-01 05:55:23 +08:00
target_is_non_stop_p and sync targets
gdb.base/maint-target-async-off.exp fails if you test against gdbserver with "maint set target-non-stop on" forced. (gdb) run Starting program: build/gdb/testsuite/outputs/gdb.base/maint-target-async-off/maint-target-async-off Breakpoint 1, main () at src/gdb/testsuite/gdb.base/maint-target-async-off.c:21 21 return 0; (gdb) FAIL: gdb.base/maint-target-async-off.exp: continue until exit (timeout) Above, GDB just stopped listening to stdin. Basically, GDB assumes that a target working in non-stop mode operation also supports async mode; it's a requirement. GDB misbehaves badly otherwise, and even hits failed assertions. Fix this by making target_is_non_stop_p return false if async is off. gdb/ChangeLog: * target.c (target_always_non_stop_p): Also check whether the target can async. Change-Id: I7e52e1061396a5b9b02ada462f68a14b76d68974
This commit is contained in:
parent
bab287cdcf
commit
e5b9b39f88
@ -1,3 +1,8 @@
|
||||
2021-03-26 Pedro Alves <pedro@palves.net>
|
||||
|
||||
* target.c (target_always_non_stop_p): Also check whether the
|
||||
target can async.
|
||||
|
||||
2021-03-26 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* dwarf2/read.c (dwarf2_read_debug_names)
|
||||
|
@ -4370,10 +4370,11 @@ target_always_non_stop_p (void)
|
||||
bool
|
||||
target_is_non_stop_p ()
|
||||
{
|
||||
return (non_stop
|
||||
|| target_non_stop_enabled == AUTO_BOOLEAN_TRUE
|
||||
|| (target_non_stop_enabled == AUTO_BOOLEAN_AUTO
|
||||
&& target_always_non_stop_p ()));
|
||||
return ((non_stop
|
||||
|| target_non_stop_enabled == AUTO_BOOLEAN_TRUE
|
||||
|| (target_non_stop_enabled == AUTO_BOOLEAN_AUTO
|
||||
&& target_always_non_stop_p ()))
|
||||
&& target_can_async_p ());
|
||||
}
|
||||
|
||||
/* See target.h. */
|
||||
|
Loading…
Reference in New Issue
Block a user