summaryrefslogtreecommitdiffstats
path: root/lldb/source/Expression/ClangExpressionParser.cpp
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2010-08-27 23:31:21 +0000
committerSean Callanan <scallanan@apple.com>2010-08-27 23:31:21 +0000
commite71d553cd4e95b4cb8c9ffd2f7122a2ca735467c (patch)
tree08847f8f2a280b2b05b8053317b117e042e330d4 /lldb/source/Expression/ClangExpressionParser.cpp
parent38f6b7fe3b576b361a1da1b6381f4ec3f454af65 (diff)
downloadbcm5719-llvm-e71d553cd4e95b4cb8c9ffd2f7122a2ca735467c.tar.gz
bcm5719-llvm-e71d553cd4e95b4cb8c9ffd2f7122a2ca735467c.zip
Added a ClangUtilityFunction class that allows the
debugger to insert self-contained functions for use by expressions (mainly for error-checking). In order to support detecting whether a crash occurred in one of these helpers -- currently our preferred way of reporting that an error-check failed -- added a bit of support for getting the extent of a JITted function in addition to just its base. llvm-svn: 112324
Diffstat (limited to 'lldb/source/Expression/ClangExpressionParser.cpp')
-rw-r--r--lldb/source/Expression/ClangExpressionParser.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/lldb/source/Expression/ClangExpressionParser.cpp b/lldb/source/Expression/ClangExpressionParser.cpp
index 05c237afdb9..7c4cc6a0d52 100644
--- a/lldb/source/Expression/ClangExpressionParser.cpp
+++ b/lldb/source/Expression/ClangExpressionParser.cpp
@@ -369,7 +369,9 @@ ClangExpressionParser::MakeDWARF ()
}
Error
-ClangExpressionParser::MakeJIT (lldb::addr_t &func_addr, ExecutionContext &exe_ctx)
+ClangExpressionParser::MakeJIT (lldb::addr_t &func_addr,
+ lldb::addr_t &func_end,
+ ExecutionContext &exe_ctx)
{
Error err;
@@ -507,7 +509,10 @@ ClangExpressionParser::MakeJIT (lldb::addr_t &func_addr, ExecutionContext &exe_c
(*pos).m_remote_addr = m_jit_mm->GetRemoteAddressForLocal ((*pos).m_local_addr);
if (!(*pos).m_name.compare(m_expr.FunctionName()))
+ {
+ func_end = m_jit_mm->GetRemoteRangeForLocal ((*pos).m_local_addr).second;
func_addr = (*pos).m_remote_addr;
+ }
}
err.Clear();
OpenPOWER on IntegriCloud