llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-lldb Author: Ely Ronnen (eronnen) <details> <summary>Changes</summary> DisassembleRequestHandler: use a better invalid instruction value that fits VSCode client --- Full diff: https://github.com/llvm/llvm-project/pull/141463.diff 2 Files Affected: - (modified) lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp (+1) - (modified) lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp (+9-2) ``````````diff diff --git a/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp index c9061ef19f17a..1d110eac18126 100644 --- a/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp +++ b/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp @@ -27,6 +27,7 @@ namespace lldb_dap { static protocol::DisassembledInstruction GetInvalidInstruction() { DisassembledInstruction invalid_inst; + invalid_inst.address = LLDB_INVALID_ADDRESS; invalid_inst.presentationHint = DisassembledInstruction::eDisassembledInstructionPresentationHintInvalid; return invalid_inst; diff --git a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp index 8d4fbd18fee7c..2af919265b1c9 100644 --- a/lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp +++ b/lldb/tools/lldb-dap/Protocol/ProtocolTypes.cpp @@ -847,8 +847,15 @@ bool fromJSON(const llvm::json::Value &Params, DisassembledInstruction &DI, } llvm::json::Value toJSON(const DisassembledInstruction &DI) { - llvm::json::Object result{{"address", "0x" + llvm::utohexstr(DI.address)}, - {"instruction", DI.instruction}}; + llvm::json::Object result{{"instruction", DI.instruction}}; + if (DI.address == LLDB_INVALID_ADDRESS) { + // VSCode has explicit comparisons to the string "-1" in order to check for + // invalid instructions. See + // https://github.com/microsoft/vscode/blob/main/src/vs/workbench/contrib/debug/browser/disassemblyView.ts + result.insert({"address", "-1"}); + } else { + result.insert({"address", "0x" + llvm::utohexstr(DI.address)}); + } if (DI.instructionBytes) result.insert({"instructionBytes", *DI.instructionBytes}); `````````` </details> https://github.com/llvm/llvm-project/pull/141463 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits