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
21 lines
349 B
C++
21 lines
349 B
C++
namespace N0 {
|
|
namespace N1 {
|
|
|
|
char *buf0 = nullptr;
|
|
char buf1[] = {0, 1, 2, 3, 4, 5, 6, 7};
|
|
|
|
char sum(char *buf, int size) {
|
|
char result = 0;
|
|
for (int i = 0; i < size; i++)
|
|
result += buf[i];
|
|
return result;
|
|
}
|
|
|
|
} // namespace N1
|
|
} // namespace N0
|
|
|
|
int main() {
|
|
char result = N0::N1::sum(N0::N1::buf1, sizeof(N0::N1::buf1));
|
|
return 0;
|
|
}
|