diff options
author | Tom de Vries <tdevries@suse.de> | 2024-02-22 11:35:26 +0100 |
---|---|---|
committer | Tom de Vries <tdevries@suse.de> | 2024-02-22 11:35:26 +0100 |
commit | 05bf17f03b890424312163463754de63cee73074 (patch) | |
tree | 3cda5bb491daeeae0bbbee7b5fbd61394d076882 /gdb/testsuite/gdb.dap | |
parent | 67cf0bd885e3862fb77de0039208d39cc89dba91 (diff) | |
download | binutils-05bf17f03b890424312163463754de63cee73074.zip binutils-05bf17f03b890424312163463754de63cee73074.tar.gz binutils-05bf17f03b890424312163463754de63cee73074.tar.bz2 |
[gdb/dap] Fix race between dap startup and dap log file
In dap_gdb_start we do:
...
append GDBFLAGS " -iex \"set debug dap-log-file $logfile\" -q -i=dap"
...
While the dap log file setting comes before the dap interpreter setting,
the order is the other way around:
- first, the dap interpreter is started
- second, the -iex commands are executed and the log file is initialized.
Consequently, there's a race between dap interpreter startup and dap log file
initialization.
This cannot be fixed by using -eiex instead. Before the interpreter is
started, the "set debug dap-log-file" command is not yet registered.
Fix this by postponing the start of the DAP server until GDB has processed all
command files.
Tested on aarch64-linux.
Approved-By: Tom Tromey <tom@tromey.com>
PR dap/31386
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31386
Diffstat (limited to 'gdb/testsuite/gdb.dap')
-rw-r--r-- | gdb/testsuite/gdb.dap/eof.exp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.dap/eof.exp b/gdb/testsuite/gdb.dap/eof.exp index 9c17725..a84b1d2 100644 --- a/gdb/testsuite/gdb.dap/eof.exp +++ b/gdb/testsuite/gdb.dap/eof.exp @@ -35,3 +35,6 @@ catch "wait -i $gdb_spawn_id" unset gdb_spawn_id dap_check_log_file + +# Check that first log message is present. +dap_check_log_file_re [string_to_regexp "starting DAP server"] |