[Lldb-commits] [lldb] [lldb-dap] Fix address comparison in DisassembleRequestHandler (PR #140975)
Ely Ronnen via lldb-commits
lldb-commits at lists.llvm.org
Thu May 22 13:47:54 PDT 2025
https://github.com/eronnen updated https://github.com/llvm/llvm-project/pull/140975
>From 419aa75b4f0d3fe54a3e08c8223906224bad2822 Mon Sep 17 00:00:00 2001
From: Ely Ronnen <elyronnen at gmail.com>
Date: Thu, 22 May 2025 02:44:31 +0200
Subject: [PATCH 1/3] [lldb-dap] attempt to fix test_disassemble
---
lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
index a8b51864d118b..1e2a32cb693fc 100644
--- a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
+++ b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
@@ -20,6 +20,7 @@ def test_disassemble(self):
program = self.getBuildArtifact("a.out")
self.build_and_launch(program)
source = "main.c"
+ self.source_path = os.path.join(os.getcwd(), source)
self.set_source_breakpoints(source, [line_number(source, "// breakpoint 1")])
self.continue_to_next_stop()
>From bb3903c9ee8eef76ffbb6bbe7b1d13961f149353 Mon Sep 17 00:00:00 2001
From: Ely Ronnen <elyronnen at gmail.com>
Date: Thu, 22 May 2025 22:43:43 +0200
Subject: [PATCH 2/3] DisassembleRequestHandler address comparison workaround
---
.../API/tools/lldb-dap/disassemble/TestDAP_disassemble.py | 1 -
lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp | 7 +++++++
2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
index 1e2a32cb693fc..a8b51864d118b 100644
--- a/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
+++ b/lldb/test/API/tools/lldb-dap/disassemble/TestDAP_disassemble.py
@@ -20,7 +20,6 @@ def test_disassemble(self):
program = self.getBuildArtifact("a.out")
self.build_and_launch(program)
source = "main.c"
- self.source_path = os.path.join(os.getcwd(), source)
self.set_source_breakpoints(source, [line_number(source, "// breakpoint 1")])
self.continue_to_next_stop()
diff --git a/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
index 9aa6995e5d668..81129fa23ecf6 100644
--- a/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
@@ -87,6 +87,13 @@ static DisassembledInstruction ConvertSBInstructionToDisassembledInstruction(
auto addr = inst.GetAddress();
const auto inst_addr = addr.GetLoadAddress(target);
+
+ // FIXME: This is a workaround - this address might come from
+ // disassembly that started in a different section, and thus
+ // comparisons between this object and other address objects with the
+ // same load address will return false.
+ addr = lldb::SBAddress(inst_addr, target);
+
const char *m = inst.GetMnemonic(target);
const char *o = inst.GetOperands(target);
const char *c = inst.GetComment(target);
>From 5bba26fc1e6da69826c5795609e629dc30050bf7 Mon Sep 17 00:00:00 2001
From: Ely Ronnen <elyronnen at gmail.com>
Date: Thu, 22 May 2025 22:47:43 +0200
Subject: [PATCH 3/3] format
---
lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp b/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
index 81129fa23ecf6..c9061ef19f17a 100644
--- a/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
+++ b/lldb/tools/lldb-dap/Handler/DisassembleRequestHandler.cpp
@@ -87,7 +87,7 @@ static DisassembledInstruction ConvertSBInstructionToDisassembledInstruction(
auto addr = inst.GetAddress();
const auto inst_addr = addr.GetLoadAddress(target);
-
+
// FIXME: This is a workaround - this address might come from
// disassembly that started in a different section, and thus
// comparisons between this object and other address objects with the
More information about the lldb-commits
mailing list