summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h
diff options
context:
space:
mode:
authorAleksandr Urakov <aleksandr.urakov@jetbrains.com>2018-12-03 13:31:13 +0000
committerAleksandr Urakov <aleksandr.urakov@jetbrains.com>2018-12-03 13:31:13 +0000
commita5235af980e55774882d6567fa1ca94caaf24ce6 (patch)
tree8b6b7b45455d5f32d67748fabdd1b16f5c7827af /lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h
parentf1822ec431cded5e50b69152346794d79976a8b2 (diff)
downloadbcm5719-llvm-a5235af980e55774882d6567fa1ca94caaf24ce6.tar.gz
bcm5719-llvm-a5235af980e55774882d6567fa1ca94caaf24ce6.zip
[PDB] Support PDB-backed expressions evaluation (+ fix stuck test)
Summary: This patch contains several small fixes, which makes it possible to evaluate expressions on Windows using information from PDB. The changes are: - several sanitize checks; - make IRExecutionUnit::MemoryManager::getSymbolAddress to not return a magic value on a failure, because callers wait 0 in this case; - entry point required to be a file address, not RVA, in the ObjectFilePECOFF; - do not crash on a debuggee second chance exception - it may be an expression evaluation crash. Also fix detection of "crushed" threads in tests; - create parameter declarations for functions in AST to make it possible to call debugee functions from expressions; - relax name searching rules for variables, functions, namespaces and types. Now it works just like in the DWARF plugin; - fix endless recursion in SymbolFilePDB::ParseCompileUnitFunctionForPDBFunc. Reviewers: zturner, asmith, stella.stamenova Reviewed By: stella.stamenova, asmith Tags: #lldb Differential Revision: https://reviews.llvm.org/D53759 llvm-svn: 348136
Diffstat (limited to 'lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h')
-rw-r--r--lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h b/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h
index 28de07fd8cd..02353870ab6 100644
--- a/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h
+++ b/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.h
@@ -69,7 +69,8 @@ private:
typedef llvm::DenseMap<clang::CXXRecordDecl *, lldb::user_id_t>
CXXRecordDeclToUidMap;
typedef llvm::DenseMap<lldb::user_id_t, clang::Decl *> UidToDeclMap;
- typedef llvm::DenseMap<clang::DeclContext *, std::set<clang::NamespaceDecl *>>
+ typedef std::set<clang::NamespaceDecl *> NamespacesSet;
+ typedef llvm::DenseMap<clang::DeclContext *, NamespacesSet>
ParentToNamespacesMap;
typedef llvm::DenseMap<clang::DeclContext *, lldb::user_id_t>
DeclContextToUidMap;
@@ -109,6 +110,7 @@ private:
CXXRecordDeclToUidMap m_forward_decl_to_uid;
UidToDeclMap m_uid_to_decl;
ParentToNamespacesMap m_parent_to_namespaces;
+ NamespacesSet m_namespaces;
DeclContextToUidMap m_decl_context_to_uid;
};
OpenPOWER on IntegriCloud