https://github.com/da-viper created https://github.com/llvm/llvm-project/pull/170378
This aligns with the DAP [specification](https://microsoft.github.io/debug-adapter-protocol//specification.html#Base_Protocol_ProtocolMessage) Force it to be an error in test cases. >From c15081b6e2f78c4255b9850eb0b757ea8d129acc Mon Sep 17 00:00:00 2001 From: Ebuka Ezike <[email protected]> Date: Tue, 2 Dec 2025 21:55:30 +0000 Subject: [PATCH] [lldb-dap] start all sent protocol message from one. This aligns with the DAP [specification](https://microsoft.github.io/debug-adapter-protocol//specification.html#Base_Protocol_ProtocolMessage) --- .../Python/lldbsuite/test/tools/lldb-dap/dap_server.py | 2 +- lldb/tools/lldb-dap/DAP.cpp | 7 +++++-- lldb/tools/lldb-dap/Protocol/ProtocolBase.h | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py b/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py index 4a7ba78b63993..7a9d5a82983d7 100644 --- a/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py +++ b/lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py @@ -391,7 +391,7 @@ def _process_recv_packets(self) -> None: with self._recv_condition: for packet in self._recv_packets: if packet and ("seq" not in packet or packet["seq"] == 0): - warnings.warn( + raise ValueError( f"received a malformed packet, expected 'seq != 0' for {packet!r}" ) # Handle events that may modify any stateful properties of diff --git a/lldb/tools/lldb-dap/DAP.cpp b/lldb/tools/lldb-dap/DAP.cpp index 465d85a07bd34..6971bfea5c128 100644 --- a/lldb/tools/lldb-dap/DAP.cpp +++ b/lldb/tools/lldb-dap/DAP.cpp @@ -274,8 +274,11 @@ Id DAP::Send(const Message &message) { std::lock_guard<std::mutex> guard(call_mutex); Message msg = std::visit( [this](auto &&msg) -> Message { - if (msg.seq == kCalculateSeq) - msg.seq = seq++; + if (msg.seq == kCalculateSeq) { + seq++; + msg.seq = seq; + } + assert(msg.seq > 0 && "message sequence must be greater than zero."); return msg; }, Message(message)); diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolBase.h b/lldb/tools/lldb-dap/Protocol/ProtocolBase.h index 42c6c8890af24..09ce6802b17c0 100644 --- a/lldb/tools/lldb-dap/Protocol/ProtocolBase.h +++ b/lldb/tools/lldb-dap/Protocol/ProtocolBase.h @@ -31,11 +31,11 @@ namespace lldb_dap::protocol { // MARK: Base Protocol /// Message unique identifier type. -using Id = int64_t; +using Id = uint64_t; /// A unique identifier that indicates the `seq` field should be calculated by /// the current session. -static constexpr Id kCalculateSeq = INT64_MAX; +static constexpr Id kCalculateSeq = UINT64_MAX; /// A client or debug adapter initiated request. struct Request { _______________________________________________ lldb-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
