[Lldb-commits] [lldb] [lldb] Fix crash missing MSInheritanceAttr on CXXRecordDecl with DWARF on Windows (PR #112928)

Stefan Gränitz via lldb-commits lldb-commits at lists.llvm.org
Tue Oct 22 08:22:37 PDT 2024


================
@@ -0,0 +1,48 @@
+// REQUIRES: lld
+
+// Microsoft ABI:
+// RUN: %clang_cl --target=x86_64-windows-msvc -c -gdwarf %s -o %t_win.obj
+// RUN: lld-link /out:%t_win.exe %t_win.obj /nodefaultlib /entry:main /debug
+// RUN: %lldb -f %t_win.exe -b -o "target variable mp1 mp2 mp3 mp4 mp5 mp6 mp7 mp8 mp9"
+//
+// DWARF has no representation of MSInheritanceAttr, so we cannot determine the size
+// of member-pointers yet. For the moment, make sure we don't crash on such variables.
+
+// Itanium ABI:
+// RUN: %clang --target=x86_64-pc-linux -gdwarf -c -o %t_linux.o %s
+// RUN: ld.lld %t_linux.o -o %t_linux
+// RUN: %lldb -f %t_linux -b -o "target variable mp1 mp2 mp3 mp4 mp5 mp6 mp7 mp8 mp9" | FileCheck %s
----------------
weliveindetail wrote:

Agree, added `CHECK-MSVC: error: Unable to determine byte size.` and dropped link-step for Itanium case. The latter doesn't seem to work for the MS case. It fails early with:
```
error: unable to resolve the module for file address 0x0 for variable 'mp1' in
S:\path\to\build\tools\lldb\test\Shell\SymbolFile\DWARF\x86\Output\member-pointers.cpp.tmp_win.obj
```

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


More information about the lldb-commits mailing list