Quuxplusone / LLVMBugzillaTest

0 stars 0 forks source link

lldb/jit not working Windows #50799

Open Quuxplusone opened 2 years ago

Quuxplusone commented 2 years ago
Bugzilla Link PR51832
Status CONFIRMED
Importance P normal
Reported by Steve Williams (steve@advance-software.com)
Reported on 2021-09-13 05:57:30 -0700
Last modified on 2021-09-20 05:59:30 -0700
Version unspecified
Hardware PC Windows NT
CC dblaikie@gmail.com, jdevlieghere@apple.com, llvm-bugs@lists.llvm.org, stefan.graenitz@gmail.com, teemperor@gmail.com
Fixed by commit(s)
Attachments
Blocks
Blocked by
See also
Web Assembly (wasmtime) JIT debugging via lldb GDP/JIT interface not working on
Windows (trunk).

Confirmed works Linux (llvm 10 - trunk status currently unknown on Linux).

Tried the following on Windows, using llvm trunk :
https://www.youtube.com/watch?v=PevI_Mn-UUE

On Windows (running Windows 11 pre-release), the breakpoint isn't hit despite
it being the exact same test.

Tried llvm lldb/jit unit test on Windows.

I get the following : https://controlc.com/40a36c4d

... from executing test directly.

Specific test filtered using :

set LIT_FILTER=Breakpoint/jit-loader_rtdyld_elf.test

Unit test fails. Failure appears to be in lli which sets up the test
environment.

It appears we have 2 bugs.

1. JIT breakpoints not getting hit

2. lli failing meaning unit test can't complete to confirm or otherwise whether
JIT debugging is working on Windows.

The following appeared to complete successfully - indicating required plugin
available.

(lldb)  settings set plugin.jit-loader.gdb.enable on

However available & functioning are not the same thing.

To run same test on Linux - to confirm wasmtime is setting up debug environment
correctly, the following can be used - binary or buld from source  :

https://github.com/bytecodealliance/wasmtime/releases/tag/v0.29.0

... in addition to the fizzbuzz.zip attachment which provides reproducible test
files & executibles on Windows.
Quuxplusone commented 2 years ago

Test here as too large to attach : http://advance-software.com/misc/fizzbuzz.zip

Quuxplusone commented 2 years ago

Just copying that error log here:

F:\dev\llvm-project\build>"f:\dev\llvm-project\build\bin\lldb.exe" "--no-lldbinit" "-S" "F:/dev/llvm-project/build/tools/lldb\test\Shell\lit-lldb-init" "-b" "-o" "settings set plugin.jit-loader.gdb.enable on" "-o" "b jitbp" "-o" "run --jit-kind=mcjit F:\dev\llvm-project\build\tools\lldb\test\Shell\Breakpoint\Output\jit-loader_rtdyld_elf.test.tmp.ll" "f:\dev\llvm-project\build\bin\lli.exe"
(lldb) command source -s 0 'F:/dev/llvm-project/build/tools/lldb\test\Shell\lit-lldb-init'
Executing commands in 'F:\dev\llvm-project\build\tools\lldb\test\Shell\lit-lldb-init'.
(lldb) # LLDB init file for the LIT tests.
(lldb) settings set symbols.enable-external-lookup false
(lldb) settings set plugin.process.gdb-remote.packet-timeout 60
(lldb) settings set interpreter.echo-comment-commands false
(lldb) settings set symbols.clang-modules-cache-path "F:/dev/llvm-project/build/lldb-test-build.noindex/module-cache-lldb"
(lldb) settings set target.auto-apply-fixits false
(lldb) settings set target.inherit-tcc true
(lldb) settings set target.detach-on-error false
(lldb) target create "f:\\dev\\llvm-project\\build\\bin\\lli.exe"
Current executable set to 'f:\dev\llvm-project\build\bin\lli.exe' (x86_64).
(lldb) settings set plugin.jit-loader.gdb.enable on
(lldb) b jitbp
Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.
(lldb) run --jit-kind=mcjit F:\dev\llvm-project\build\tools\lldb\test\Shell\Breakpoint\Output\jit-loader_rtdyld_elf.test.tmp.ll
error: lli.exe :: Class 'const llvm::formatv_object_base' has a member 'Fmt' of type 'llvm::StringRef' which does not have a complete definition.
error: lli.exe :: Class 'llvm::ErrorSuccess' has a base class 'llvm::Error' which does not have a complete definition.
error: lli.exe :: Class 'llvm::IntegerType' has a base class 'llvm::Type' which does not have a complete definition.
error: lli.exe :: Class 'llvm::MetadataAsValue' has a base class 'llvm::Value' which does not have a complete definition.
error: lli.exe :: Class 'llvm::MDTuple' has a base class 'llvm::MDNode' which does not have a complete definition.
error: lli.exe :: Class 'const llvm::Function' has a base class 'llvm::GlobalObject' which does not have a complete definition.
error: lli.exe :: Class 'llvm::Instruction' has a base class 'llvm::User' which does not have a complete definition.
error: lli.exe :: Class 'llvm::StringMapEntryStorage<llvm::MDString>' has a member 'second' of type 'llvm::MDString' which does not have a complete definition.
error: lli.exe :: Class 'llvm::DIFile' has a base class 'llvm::DIScope' which does not have a complete definition.
error: lli.exe :: Class 'llvm::DISubprogram' has a base class 'llvm::DILocalScope' which does not have a complete definition.
error: lli.exe :: Class 'llvm::ConstantData' has a base class 'llvm::Constant' which does not have a complete definition.
error: lli.exe :: Class 'llvm::Function::ProfileCount' has a member 'Invalid' of type 'llvm::Function::ProfileCount' which does not have a complete definition.
Assertion failed: false && "Variant::toAPSInt called on non-numeric type", file F:\dev\llvm-project\llvm\include\llvm/DebugInfo/PDB/PDBTypes.h, line 503
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
  #0 0x00007ff659b0a76c HandleAbort F:\dev\llvm-project\llvm\lib\Support\Windows\Signals.inc:408:0
  #1 0x00007fff60b4bc31 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x6bc31)
  #2 0x00007fff60b4d889 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x6d889)
  #3 0x00007fff60b534b5 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x734b5)
  #4 0x00007fff60b53027 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x73027)
  #5 0x00007fff60b51091 (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x71091)
  #6 0x00007fff60b53a1f (C:\WINDOWS\SYSTEM32\ucrtbased.dll+0x73a1f)
  #7 0x00007fff11a2715c llvm::pdb::Variant::getBitWidth(void) const F:\dev\llvm-project\llvm\include\llvm\DebugInfo\PDB\PDBTypes.h:503:0
  #8 0x00007fff11a12688 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1294:0
  #9 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
 #10 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #11 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #12 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #13 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #14 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
 #15 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #16 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
 #17 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
 #18 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #19 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #20 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #21 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #22 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
 #23 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #24 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
 #25 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
 #26 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #27 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #28 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #29 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #30 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
 #31 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #32 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
 #33 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
 #34 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #35 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #36 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #37 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #38 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
 #39 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #40 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
 #41 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
 #42 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #43 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #44 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #45 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #46 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
 #47 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #48 0x00007fff11a0e629 PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:621:0
 #49 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #50 0x00007fff11a1317b PDBASTParser::AddRecordMethod(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolFunc const &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1410:0
 #51 0x00007fff11a12ffb PDBASTParser::AddRecordMethods(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolFunc> &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1398:0
 #52 0x00007fff11a11fa2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1217:0
 #53 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #54 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #55 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #56 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #57 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
 #58 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #59 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
 #60 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
 #61 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #62 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #63 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #64 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #65 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
 #66 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
 #67 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #68 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #69 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #70 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #71 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
 #72 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #73 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
 #74 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
 #75 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #76 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #77 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #78 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #79 0x00007fff11a0e868 PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:644:0
 #80 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
 #81 0x00007fff11a1317b PDBASTParser::AddRecordMethod(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolFunc const &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1410:0
 #82 0x00007fff11a12ffb PDBASTParser::AddRecordMethods(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolFunc> &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1398:0
 #83 0x00007fff11a11fa2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1217:0
 #84 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #85 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #86 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #87 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
 #88 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
 #89 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
 #90 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #91 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #92 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #93 0x00007fff11087eab lldb_private::Type::GetLayoutCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:653:0
 #94 0x00007fff11a12259 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1247:0
 #95 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
 #96 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
 #97 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
 #98 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
 #99 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#100 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#101 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#102 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#103 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#104 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#105 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#106 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
#107 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#108 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
#109 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
#110 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#111 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#112 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#113 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#114 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
#115 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#116 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
#117 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
#118 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#119 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#120 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#121 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#122 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
#123 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#124 0x00007fff11a0e629 PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:621:0
#125 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#126 0x00007fff11a1317b PDBASTParser::AddRecordMethod(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolFunc const &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1410:0
#127 0x00007fff11a12ffb PDBASTParser::AddRecordMethods(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolFunc> &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1398:0
#128 0x00007fff11a11fa2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1217:0
#129 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#130 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#131 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#132 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#133 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#134 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#135 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#136 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#137 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#138 0x00007fff11087eab lldb_private::Type::GetLayoutCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:653:0
#139 0x00007fff11a12259 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1247:0
#140 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
#141 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#142 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#143 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#144 0x00007fff11087eab lldb_private::Type::GetLayoutCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:653:0
#145 0x00007fff11a12259 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1247:0
#146 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
#147 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#148 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#149 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#150 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#151 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
#152 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#153 0x00007fff11a0e629 PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:621:0
#154 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#155 0x00007fff11a1317b PDBASTParser::AddRecordMethod(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolFunc const &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1410:0
#156 0x00007fff11a12ffb PDBASTParser::AddRecordMethods(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolFunc> &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1398:0
#157 0x00007fff11a11fa2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1217:0
#158 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#159 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#160 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#161 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#162 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
#163 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#164 0x00007fff11a12218 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1242:0
#165 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
#166 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#167 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#168 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#169 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#170 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
#171 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#172 0x00007fff11a0e629 PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:621:0
#173 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#174 0x00007fff11a1317b PDBASTParser::AddRecordMethod(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolFunc const &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1410:0
#175 0x00007fff11a12ffb PDBASTParser::AddRecordMethods(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolFunc> &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1398:0
#176 0x00007fff11a11fa2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1217:0
#177 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#178 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#179 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#180 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#181 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#182 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#183 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#184 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#185 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#186 0x00007fff11087eab lldb_private::Type::GetLayoutCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:653:0
#187 0x00007fff11a12259 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1247:0
#188 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
#189 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#190 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#191 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#192 0x00007fff11087eab lldb_private::Type::GetLayoutCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:653:0
#193 0x00007fff11a12259 PDBASTParser::AddRecordMembers(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolData> &, struct lldb_private::ClangASTImporter::LayoutInfo &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1247:0
#194 0x00007fff11a11f2f PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1213:0
#195 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#196 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#197 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#198 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#199 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
#200 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#201 0x00007fff11a0e629 PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:621:0
#202 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#203 0x00007fff11a1317b PDBASTParser::AddRecordMethod(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolFunc const &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1410:0
#204 0x00007fff11a12ffb PDBASTParser::AddRecordMethods(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolFunc> &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1398:0
#205 0x00007fff11a11fa2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1217:0
#206 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#207 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#208 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#209 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#210 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#211 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#212 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#213 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#214 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#215 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#216 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#217 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#218 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#219 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#220 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#221 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#222 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#223 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#224 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#225 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#226 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#227 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#228 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#229 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#230 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#231 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#232 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#233 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#234 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#235 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#236 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#237 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#238 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#239 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#240 0x00007fff11a0f43f PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:760:0
#241 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#242 0x00007fff11a0e629 PDBASTParser::CreateLLDBTypeFromPDBType(class llvm::pdb::PDBSymbol const &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:621:0
#243 0x00007fff119e2e7e SymbolFilePDB::ResolveTypeUID(unsigned __int64) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:578:0
#244 0x00007fff11a1317b PDBASTParser::AddRecordMethod(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolFunc const &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1410:0
#245 0x00007fff11a12ffb PDBASTParser::AddRecordMethods(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolFunc> &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1398:0
#246 0x00007fff11a11fa2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1217:0
#247 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#248 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#249 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
#250 0x00007fff11087e5b lldb_private::Type::GetFullCompilerType(void) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:648:0
#251 0x00007fff11a12bea PDBASTParser::AddRecordBases(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, int, class llvm::pdb::ConcreteSymbolEnumerator<class llvm::pdb::PDBSymbolTypeBaseClass> &, struct lldb_private::ClangASTImporter::LayoutInfo &) const F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1357:0
#252 0x00007fff11a11eb2 PDBASTParser::CompleteTypeFromUDT(class lldb_private::SymbolFile &, class lldb_private::CompilerType &, class llvm::pdb::PDBSymbolTypeUDT &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:1209:0
#253 0x00007fff11a0f9cb PDBASTParser::CompleteTypeFromPDB(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\PDBASTParser.cpp:822:0
#254 0x00007fff119e3309 SymbolFilePDB::CompleteType(class lldb_private::CompilerType &) F:\dev\llvm-project\lldb\source\Plugins\SymbolFile\PDB\SymbolFilePDB.cpp:612:0
#255 0x00007fff11088eee lldb_private::Type::ResolveCompilerType(enum lldb_private::Type::ResolveState) F:\dev\llvm-project\lldb\source\Symbol\Type.cpp:614:0
Quuxplusone commented 2 years ago

From the error messages that seems like (several) bugs in the PDB parser? The PDB parser in LLDB isn't that actively maintained, so it's entirely possible that this doesn't work.

Quuxplusone commented 2 years ago

There looks to be several issues.

The only one I care about is JIT debugging working on Windows.

If it works Linux, I'm not seeing why this is a cross platform issue.

I'll build linux trunk tonight then can figure out if its a general regression or a platform specific issue.

Quuxplusone commented 2 years ago

Do I need to work on the PDB parser to get this resolved.

If so, can you estimate # engineer hours for someone new to the code, but who does ok sometimes to fix this. I don't understand the code or anything beyond basic concepts in pdb files. Nor do I understand why you're using them. They're a Windows debug info format, right ? We're compiling using clang. Can't the debug info be in same format as you're generating in Linux, then same code path & this redundant.

Happy to accept correction & steering to help get this resolved.

Quuxplusone commented 2 years ago

Engineer days or weeks even - don't know scope of the problem at this point.

Quuxplusone commented 2 years ago

Might we suggest ELF format for test debug databases. This will work across all major platforms & is what's being emitted by wasmtime.

Quuxplusone commented 2 years ago
I'm confused. This is an ELF test.

First command of the test as follows :

f:\dev\llvm-project\build\bin\clang.exe --target=specify-a-target-or-use-a-
_host-substitution -g -S -emit-llvm --target=x86_64-unknown-unknown-elf
-o F:\dev\llvm-project\build\tools\lldb\test\Shell\Breakpoint\Output\jit-
loader_rtdyld_elf.test.tmp.ll F:\dev\llvm-
project\lldb\test\Shell\Breakpoint/Inputs/jitbp.cpp

So why is anything PDB invoked ?
Quuxplusone commented 2 years ago
Hi Steve, the title reads like you want to debug native JITed code on Windows.
I think that's pretty much out of reach right now for both, LLDB because PDB
parsing appears incomplete and the LLVM JIT implementation, because its
capabilities for loading PE/COFF objects are very limited.

Reading through your comments indicates, that you actually want to debug Web
Assembly in ELF object files. Is that right? I think it's more realistic, but
requires some thought as well. IMHO this is a feature request and not a bug.

Now, for your specific issue.

(In reply to Steve Williams from comment #8)
> I'm confused. This is an ELF test.
>
> First command of the test as follows :
>
> f:\dev\llvm-project\build\bin\clang.exe
> --target=specify-a-target-or-use-a-_host-substitution -g -S -emit-llvm
> --target=x86_64-unknown-unknown-elf         -o
> F:\dev\llvm-project\build\tools\lldb\test\Shell\Breakpoint\Output\jit-
> loader_rtdyld_elf.test.tmp.ll
> F:\dev\llvm-project\lldb\test\Shell\Breakpoint/Inputs/jitbp.cpp
>
>
> So why is anything PDB invoked ?

I assume Clang emits native PE/COFF here (with PDB debug info format), because
you pass a bogus --target value and so Clang ignores the one you actually want:
x86_64-unknown-unknown-elf. It looks like the test suite want's to point you to
a misconfiguration. You may try investigating from here:
https://github.com/llvm/llvm-project/blob/4c1023b4b7900db3ddeec16e16018c1413ecc3db/lldb/test/Shell/helper/toolchain.py#L151
Quuxplusone commented 2 years ago

your comments indicates, that you actually want to debug Web Assembly in ELF object files. Is that right? I think it's more realistic, but requires some thought as well. IMHO this is a feature request and not a bug

Debugging web assembly (ELF) is our sole requirement at this point.

Youtube example at top of bug report shows feature working on linux & its apparently worked at some point on Windows too (& also apparently works Mac), so with respect, its a bug/regression, not a feature request.

That said - looking for a pragmatic outcome. Whatever I can do to shut this towards feature resolution, I'm happy to do.

To be clear - don't personally need pdb for anything at this point.

If the test can resolve without it, that's a chunk of work we can sideline for the time being by deprecating (temporary) pdb.

Quuxplusone commented 2 years ago

Fix test suite to emit debug info in some format other than pdb is wrongly what I was getting at too - we can work around that problem. pdb is not essential at this point. I'll look at that, thanks.

However, we also know that wasmtime emits elf debug info & works linux but not windows, so there's an actual JIT debugging issue too.

I tried to test trunk Linux to determine status, but was unable to build.

ld complained about something or other. Probably some version of something wrong.

Gave up on that as I can fix Windows issue from Windows, regardless of status of Linux version. Should however be tested to determine whether its regressed so I'd like to be able to build linux - that's out of scope of this bug however.

Quuxplusone commented 2 years ago
* roughly, not wrongly.
Quuxplusone commented 2 years ago
fixed :)

Were 2 issues :

1. Repro had a Windows specific error in that it wasn't exporting the GDB/JIT
symbols required for binding to LLDB - fixed in wasmtime. Will be in next
release.

2. File: llvm-project\lldb\source\Plugins\JITLoader\GDB\JITLoaderGDB.cpp

LLDB loading of GDB/JIT symbols has strict Data requirement on
__jit_debug_descriptor. It appears this qualification is not available on
Windows. Or at least not with current LLDB Windows symbol lookup.

Fixed as follows :

  m_jit_descriptor_addr = GetSymbolAddress(
      module_list, ConstString("__jit_debug_descriptor"),
#ifdef _MSC_VER
      // Windows implementation not indicating symbol is Data so we use Any as workaround for the time being.
      eSymbolTypeAny);
#else
     eSymbolTypeData);
#endif

Happy to submit patch formally if someone can guide me through the process.
Quuxplusone commented 2 years ago

https://llvm.org/docs/Contributing.html has guidelines how to contribute a patch. The short version is to make an account on reviews.llvm.org, Click on "Differential" on that website (left side) and then "Create Diff" on the top right to upload the diff. That's all to get a code review started.

Quuxplusone commented 2 years ago

Thanks, Raphael - will get that done tomorrow.

Quuxplusone commented 2 years ago

https://reviews.llvm.org/D110066

Put you down as reviewer - unsure if that's what's wanted so please amend if desired.