Author: Ebuka Ezike Date: 2025-12-03T08:30:35Z New Revision: c5ecdec9fb84e6865fe44f69e380afa1291c2adf
URL: https://github.com/llvm/llvm-project/commit/c5ecdec9fb84e6865fe44f69e380afa1291c2adf DIFF: https://github.com/llvm/llvm-project/commit/c5ecdec9fb84e6865fe44f69e380afa1291c2adf.diff LOG: [lldb-dap] start all sent protocol message from number one. (#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. Added: Modified: lldb/packages/Python/lldbsuite/test/tools/lldb-dap/dap_server.py lldb/tools/lldb-dap/DAP.cpp lldb/tools/lldb-dap/Protocol/ProtocolBase.h Removed: ################################################################################ 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
