]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
[gdb/dap] Fix race between dap startup and dap log file
authorTom de Vries <tdevries@suse.de>
Thu, 22 Feb 2024 10:35:26 +0000 (11:35 +0100)
committerTom de Vries <tdevries@suse.de>
Thu, 22 Feb 2024 10:35:26 +0000 (11:35 +0100)
commit05bf17f03b890424312163463754de63cee73074
tree3cda5bb491daeeae0bbbee7b5fbd61394d076882
parent67cf0bd885e3862fb77de0039208d39cc89dba91
[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
gdb/python/lib/gdb/dap/__init__.py
gdb/python/py-dap.c
gdb/testsuite/gdb.dap/eof.exp
gdb/testsuite/lib/dap-support.exp