[Lldb-commits] [lldb] r169062 - /lldb/trunk/source/Expression/ClangUserExpression.cpp
Sean Callanan
scallanan at apple.com
Fri Nov 30 16:08:33 PST 2012
Author: spyffe
Date: Fri Nov 30 18:08:33 2012
New Revision: 169062
URL: http://llvm.org/viewvc/llvm-project?rev=169062&view=rev
Log:
Added logging to the code that determines
whether the current frame is in a C++/Objective-C
class or instance method.
Modified:
lldb/trunk/source/Expression/ClangUserExpression.cpp
Modified: lldb/trunk/source/Expression/ClangUserExpression.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ClangUserExpression.cpp?rev=169062&r1=169061&r2=169062&view=diff
==============================================================================
--- lldb/trunk/source/Expression/ClangUserExpression.cpp (original)
+++ lldb/trunk/source/Expression/ClangUserExpression.cpp Fri Nov 30 18:08:33 2012
@@ -106,31 +106,56 @@
void
ClangUserExpression::ScanContext(ExecutionContext &exe_ctx, Error &err)
{
+ lldb::LogSP log(lldb_private::GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
+
+ if (log)
+ log->Printf("ClangUserExpression::ScanContext()");
+
m_target = exe_ctx.GetTargetPtr();
if (!(m_allow_cxx || m_allow_objc))
+ {
+ if (log)
+ log->Printf(" [CUE::SC] Settings inhibit C++ and Objective-C");
return;
+ }
StackFrame *frame = exe_ctx.GetFramePtr();
if (frame == NULL)
+ {
+ if (log)
+ log->Printf(" [CUE::SC] Null stack frame");
return;
+ }
SymbolContext sym_ctx = frame->GetSymbolContext(lldb::eSymbolContextFunction | lldb::eSymbolContextBlock);
if (!sym_ctx.function)
+ {
+ if (log)
+ log->Printf(" [CUE::SC] Null function");
return;
+ }
// Find the block that defines the function represented by "sym_ctx"
Block *function_block = sym_ctx.GetFunctionBlock();
if (!function_block)
+ {
+ if (log)
+ log->Printf(" [CUE::SC] Null function block");
return;
+ }
clang::DeclContext *decl_context = function_block->GetClangDeclContext();
if (!decl_context)
+ {
+ if (log)
+ log->Printf(" [CUE::SC] Null decl context");
return;
-
+ }
+
if (clang::CXXMethodDecl *method_decl = llvm::dyn_cast<clang::CXXMethodDecl>(decl_context))
{
if (m_allow_cxx && method_decl->isInstance())
More information about the lldb-commits
mailing list