Beyond debug information: Improving program reconstruction in LLDB using C++ modules

Loading...
Thumbnail Image

Date

Type

Examensarbete för masterexamen

Programme

Model builders

Journal Title

Journal ISSN

Volume Title

Publisher

Abstract

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.

Description

Keywords

compilers, debuggers, C++ , LLVM, C++ modules, Clang, LLDB

Citation

Architect

Location

Type of building

Build Year

Model type

Scale

Material / technology

Index

Endorsement

Review

Supplemented By

Referenced By