[NativePDB] Add basic support for tag types to the native pdb plugin.
authorZachary Turner <zturner@google.com>
Tue, 23 Oct 2018 16:37:53 +0000 (16:37 +0000)
committerZachary Turner <zturner@google.com>
Tue, 23 Oct 2018 16:37:53 +0000 (16:37 +0000)
commit2f7efbc9ce62d84a215529133f1c384c25a7858e
tree01cb027df97241b1fb6c35164787ee6a40818a16
parent2fed6ac186b505a68a30e9e3851b942e74687d6e
[NativePDB] Add basic support for tag types to the native pdb plugin.

This adds support to LLDB for named types (class, struct, union, and
enum).  This is true cross platform support, and hits the PDB file
directly without a dependency on Windows.  Tests are added which
compile a program with certain interesting types and then use
load the target in LLDB and use "type lookup -- <TypeName>" to
dump the layout of the type in LLDB without a running process.

Currently only fields are parsed -- we do not parse methods.  Also
we don't deal with bitfields or virtual bases correctly.  Those
will make good followups.

Differential Revision: https://reviews.llvm.org/D53511

llvm-svn: 345047
lldb/lit/SymbolFile/NativePDB/Inputs/tag-types.lldbinit [new file with mode: 0644]
lldb/lit/SymbolFile/NativePDB/tag-types.cpp [new file with mode: 0644]
lldb/source/Plugins/SymbolFile/NativePDB/CMakeLists.txt
lldb/source/Plugins/SymbolFile/NativePDB/PdbIndex.cpp
lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.cpp
lldb/source/Plugins/SymbolFile/NativePDB/SymbolFileNativePDB.h
lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.cpp [new file with mode: 0644]
lldb/source/Plugins/SymbolFile/NativePDB/UdtRecordCompleter.h [new file with mode: 0644]