The line number table header was substantially revised in DWARF 5, which is not supported by LLDB's current debug line parser. Given the relatively limited contact surface between the code to parse the debug line section and the rest of LLDB, this seems like a good candidate to replace with LLVM's implementation, which does support the new standard.
In its current state this patch is mostly a proof-of-concept to show that this transition is possible. There are currently 8 failing tests, all related to the file paths from the prologue. (I know because I did the change in two parts, first the line table entries, then the so-called *support files*) I have yet to look at the failures in detail, but they are related to rnglists and split DWARF. Additionally, I'll need to ensure that there's minimal duplicate work when creating an LLVM DWARFContext and CompileUnit. We should only be parsing the UnitDIE, which I think is reasonable.
Seems you don't use iterator anywhere?