Beyond debug information: Improving program reconstruction in LLDB using C++ modules
Ladda ner
Typ
Examensarbete för masterexamen
Program
Publicerad
2019
Författare
Isemann, Raphael
Modellbyggare
Tidskriftstitel
ISSN
Volymtitel
Utgivare
Sammanfattning
Expression evaluation is a core feature of every modern C++ debugger. Still, no
C++ debugger currently features an expression evaluator that consistently supports
advanced language features such as meta-programming with templates. The underlying
problem is that the debugger can often only partially reconstruct the debugged
program from the debug information. This thesis presents a solution to this problem
by using C++ modules as an additional source of program information. We developed
a prototype based on the LLDB debugger that is loading missing program
components from the C++ modules used by the program. With this approach, our
prototype is able to reliably reconstruct more components than other widely used
C++ debuggers such as GDB, Microsoft Visual Studio Debugger and LLDB itself.
However, our prototype was slower than LLDB and could only improve program
reconstruction for components which are defined in a C++ module.
Beskrivning
Ämne/nyckelord
compilers, debuggers, C++ , LLVM, C++ modules, Clang, LLDB