[Lldb-commits] [lldb] [lldb-dap] DisassembleRequestHandler: use a better invalid instruction (PR #141463)
via lldb-commits
lldb-commits at lists.llvm.org
Mon May 26 01:14:52 PDT 2025
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
More information about the lldb-commits
mailing list