[Lldb-commits] [lldb] r137077 - in /lldb/trunk: include/lldb/Expression/ClangUserExpression.h source/Expression/ClangUserExpression.cpp

Jim Ingham jingham at apple.com
Mon Aug 8 17:00:49 PDT 2011


Author: jingham
Date: Mon Aug  8 19:00:49 2011
New Revision: 137077

URL: http://llvm.org/viewvc/llvm-project?rev=137077&view=rev
Log:
Add EvaluateWithError static method.  Fix a bug in handling constant expressions - we weren't setting the result even though the expression evaluation succeeded...

Modified:
    lldb/trunk/include/lldb/Expression/ClangUserExpression.h
    lldb/trunk/source/Expression/ClangUserExpression.cpp

Modified: lldb/trunk/include/lldb/Expression/ClangUserExpression.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Expression/ClangUserExpression.h?rev=137077&r1=137076&r2=137077&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Expression/ClangUserExpression.h (original)
+++ lldb/trunk/include/lldb/Expression/ClangUserExpression.h Mon Aug  8 19:00:49 2011
@@ -282,6 +282,14 @@
               const char *expr_cstr,
               const char *expr_prefix,
               lldb::ValueObjectSP &result_valobj_sp);
+              
+    static ExecutionResults
+    EvaluateWithError (ExecutionContext &exe_ctx, 
+              bool discard_on_error,
+              const char *expr_cstr,
+              const char *expr_prefix,
+              lldb::ValueObjectSP &result_valobj_sp,
+              Error &error);
 
 private:
     //------------------------------------------------------------------

Modified: lldb/trunk/source/Expression/ClangUserExpression.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ClangUserExpression.cpp?rev=137077&r1=137076&r2=137077&view=diff
==============================================================================
--- lldb/trunk/source/Expression/ClangUserExpression.cpp (original)
+++ lldb/trunk/source/Expression/ClangUserExpression.cpp Mon Aug  8 19:00:49 2011
@@ -605,9 +605,20 @@
                                const char *expr_prefix,
                                lldb::ValueObjectSP &result_valobj_sp)
 {
+    Error error;
+    return EvaluateWithError (exe_ctx, discard_on_error, expr_cstr, expr_prefix, result_valobj_sp, error);
+}
+
+ExecutionResults
+ClangUserExpression::EvaluateWithError (ExecutionContext &exe_ctx, 
+                               bool discard_on_error,
+                               const char *expr_cstr,
+                               const char *expr_prefix,
+                               lldb::ValueObjectSP &result_valobj_sp,
+                               Error &error)
+{
     lldb::LogSP log(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_EXPRESSIONS | LIBLLDB_LOG_STEP));
 
-    Error error;
     ExecutionResults execution_results = eExecutionSetupError;
     
     if (exe_ctx.process == NULL || exe_ctx.process->GetState() != lldb::eStateStopped)
@@ -668,6 +679,7 @@
                 log->Printf("== [ClangUserExpression::Evaluate] Expression evaluated as a constant ==");
             
             result_valobj_sp = user_expression_sp->m_const_result->GetValueObject();
+            execution_results = eExecutionCompleted;
         }
         else
         {    





More information about the lldb-commits mailing list