summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/IRExecutionUnit.cpp
diff options
context:
space:
mode:
authorAleksandr Urakov <aleksandr.urakov@jetbrains.com>2018-11-30 07:12:22 +0000
committerAleksandr Urakov <aleksandr.urakov@jetbrains.com>2018-11-30 07:12:22 +0000
commite0366d1db51d3f8cc5caf13db12532d0a721b027 (patch)
tree20b85f4998928f6900472cd77949bc42e61a979e /lldb/source/Expression/IRExecutionUnit.cpp
parentb1d014883ccd66659ccf4b8099bf33cbb4853de6 (diff)
downloadbcm5719-llvm-e0366d1db51d3f8cc5caf13db12532d0a721b027.tar.gz
bcm5719-llvm-e0366d1db51d3f8cc5caf13db12532d0a721b027.zip
[PDB] Support PDB-backed expressions evaluation
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; - 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: 347962
Diffstat (limited to 'lldb/source/Expression/IRExecutionUnit.cpp')
-rw-r--r--lldb/source/Expression/IRExecutionUnit.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/lldb/source/Expression/IRExecutionUnit.cpp b/lldb/source/Expression/IRExecutionUnit.cpp
index efa149737ee..68f9add1181 100644
--- a/lldb/source/Expression/IRExecutionUnit.cpp
+++ b/lldb/source/Expression/IRExecutionUnit.cpp
@@ -1013,7 +1013,7 @@ IRExecutionUnit::MemoryManager::getSymbolAddress(const std::string &Name) {
Name.c_str());
m_parent.ReportSymbolLookupError(name_cs);
- return 0xbad0bad0;
+ return 0;
} else {
if (log)
log->Printf("IRExecutionUnit::getSymbolAddress(Name=\"%s\") = %" PRIx64,
OpenPOWER on IntegriCloud