[Lldb-commits] [lldb] [llvm] [lldb] Add initial MicrosoftABIRuntime (PR #235090)

via lldb-commits lldb-commits at lists.llvm.org
Sat Oct 31 14:44:15 PDT 2026


================
@@ -260,37 +270,41 @@ def examine_value_object_of_this_ptr(
             contained_b_static = contained_auto_ptr.GetChildMemberWithName(
                 "__ptr_", no_dynamic
             )
+        if not contained_b_static:
+            contained_b_static = contained_auto_ptr.GetChildMemberWithName(
+                "_Myptr", no_dynamic
+            )
         self.assertTrue(contained_b_static)
 
         contained_b_addr = int(contained_b.GetValue(), 16)
         contained_b_static_addr = int(contained_b_static.GetValue(), 16)
 
         self.assertLess(contained_b_addr, contained_b_static_addr)
 
-    @no_debug_info_test
-    @expectedFailureAll(oslist=["windows"], bugnumber="llvm.org/pr24663")
     def test_from_forward_decl(self):
         """Test fetching C++ dynamic values forward-declared types. It's
         imperative that this is a separate test so that we don't end up parsing
         a definition of A from somewhere else."""
         self.build()
-        lldbutil.run_to_name_breakpoint(self, "take_A")
+        lldbutil.run_to_line_breakpoint(
----------------
Nerixyz wrote:

Looks like this wasn't needed, but the change in `forward_a.cpp` was. If you have 
```cpp
A *take_A(A *a) { return a; }
```
and try to print `a`, there won't be a location for it (with PDB). I haven't investigated further where exactly we stop. I'm guessing we might stop at the first instruction whereas with DWARF, we'd stop after the stack is set-up?

https://github.com/llvm/llvm-project/pull/235090


More information about the lldb-commits mailing list