$ go run scripts/make.go test -v -r TestCheckpoints -s terminal -b undo
=== RUN TestCheckpoints
live-record: Maximum event log size is 1G
Hello, World!
live-record: Saving to '/tmp/undo927159640'...
live-record: Termination recording written to /tmp/undo927159640
live-record: Detaching...
6.6.0-dev.03f01cf48c99-dirty udbserver
using inferred keyfile: /home/grees/core/release-x64/key
Listening on port 40507
Connection established
**************************************************************
Assertion failure (ignored): m_pass_signals.has_value()
Additional information:
Location: src/apps/udbserver/server.cpp:4225:handle_undodb_command [21973:21973]
**************************************************************
--- PASS: TestCheckpoints (1.97s)
This doesn't cause any test failures but indicates that something's wrong with Delve's use of the GDB serial protocol or udbserver's implementation of it.
udbserver is expecting a QPassSignals command to occur before any reverse-execution or time-travel operation: the assertion failure indicates that this didn't happen, and so udbserver uses a default set of passed signals. By contrast, gdbserver does not expect a QPassSignals command, and does not use a default set of passed signals (all signals stop the debuggee). So I think this is a bug in udbserver.
Here's a typical case:
This doesn't cause any test failures but indicates that something's wrong with Delve's use of the GDB serial protocol or udbserver's implementation of it.
udbserver is expecting a
QPassSignals
command to occur before any reverse-execution or time-travel operation: the assertion failure indicates that this didn't happen, and so udbserver uses a default set of passed signals. By contrast, gdbserver does not expect aQPassSignals
command, and does not use a default set of passed signals (all signals stop the debuggee). So I think this is a bug in udbserver.