[Lldb-commits] [lldb] r207944 - Make the Expression Execution result enum available to the SB API layer.

Jim Ingham jingham at apple.com
Sun May 4 19:26:41 PDT 2014


Author: jingham
Date: Sun May  4 21:26:40 2014
New Revision: 207944

URL: http://llvm.org/viewvc/llvm-project?rev=207944&view=rev
Log:
Make the Expression Execution result enum available to the SB API layer.
Add a callback that will allow an expression to be cancelled between the
expression evaluation stages (for the ClangUserExpressions.)

<rdar://problem/16790467>, <rdar://problem/16573440>

Modified:
    lldb/trunk/include/lldb/API/SBExpressionOptions.h
    lldb/trunk/include/lldb/Core/Error.h
    lldb/trunk/include/lldb/Expression/ClangFunction.h
    lldb/trunk/include/lldb/Expression/ClangUserExpression.h
    lldb/trunk/include/lldb/Target/Process.h
    lldb/trunk/include/lldb/Target/Target.h
    lldb/trunk/include/lldb/lldb-enumerations.h
    lldb/trunk/include/lldb/lldb-private-enumerations.h
    lldb/trunk/include/lldb/lldb-types.h
    lldb/trunk/source/API/SBExpressionOptions.cpp
    lldb/trunk/source/API/SBFrame.cpp
    lldb/trunk/source/API/SBTarget.cpp
    lldb/trunk/source/Breakpoint/BreakpointLocation.cpp
    lldb/trunk/source/Commands/CommandObjectThread.cpp
    lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp
    lldb/trunk/source/Core/Error.cpp
    lldb/trunk/source/Expression/ClangFunction.cpp
    lldb/trunk/source/Expression/ClangUserExpression.cpp
    lldb/trunk/source/Interpreter/Args.cpp
    lldb/trunk/source/Interpreter/CommandInterpreter.cpp
    lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
    lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
    lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
    lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp
    lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp
    lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp
    lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp
    lldb/trunk/source/Target/Process.cpp
    lldb/trunk/source/Target/StopInfo.cpp
    lldb/trunk/source/Target/Target.cpp

Modified: lldb/trunk/include/lldb/API/SBExpressionOptions.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/API/SBExpressionOptions.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/API/SBExpressionOptions.h (original)
+++ lldb/trunk/include/lldb/API/SBExpressionOptions.h Sun May  4 21:26:40 2014
@@ -86,6 +86,9 @@ public:
     
     void
     SetTrapExceptions (bool trap_exceptions = true);
+    
+    void
+    SetCancelCallback (lldb::ExpressionCancelCallback callback, void *baton);
 
 protected:
 

Modified: lldb/trunk/include/lldb/Core/Error.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Core/Error.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Core/Error.h (original)
+++ lldb/trunk/include/lldb/Core/Error.h Sun May  4 21:26:40 2014
@@ -209,6 +209,13 @@ public:
     void
     SetMachError (uint32_t err);
 
+
+    void
+    SetExpressionError (lldb::ExpressionResults, const char *mssg);
+    
+    int
+    SetExpressionErrorWithFormat (lldb::ExpressionResults, const char *format, ...) __attribute__ ((format (printf, 3,4)));
+    
     //------------------------------------------------------------------
     /// Set accesssor with an error value and type.
     ///

Modified: lldb/trunk/include/lldb/Expression/ClangFunction.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Expression/ClangFunction.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Expression/ClangFunction.h (original)
+++ lldb/trunk/include/lldb/Expression/ClangFunction.h Sun May  4 21:26:40 2014
@@ -253,9 +253,9 @@ public:
     ///     The result value will be put here after running the function.
     ///
     /// @return
-    ///     Returns one of the ExecutionResults enum indicating function call status.
+    ///     Returns one of the ExpressionResults enum indicating function call status.
     //------------------------------------------------------------------
-    ExecutionResults 
+    lldb::ExpressionResults
     ExecuteFunction(ExecutionContext &exe_ctx, 
                     lldb::addr_t *args_addr_ptr, 
                     const EvaluateExpressionOptions &options,

Modified: lldb/trunk/include/lldb/Expression/ClangUserExpression.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Expression/ClangUserExpression.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Expression/ClangUserExpression.h (original)
+++ lldb/trunk/include/lldb/Expression/ClangUserExpression.h Sun May  4 21:26:40 2014
@@ -144,7 +144,7 @@ public:
     /// @return
     ///     A Process::Execution results value.
     //------------------------------------------------------------------
-    ExecutionResults
+    lldb::ExpressionResults
     Execute (Stream &error_stream,
              ExecutionContext &exe_ctx,
              const EvaluateExpressionOptions& options,
@@ -296,9 +296,9 @@ public:
     ///     fails to parse, run, or evaluated.
     ///
     /// @result
-    ///      A Process::ExecutionResults value.  eExecutionCompleted for success.
+    ///      A Process::ExpressionResults value.  eExecutionCompleted for success.
     //------------------------------------------------------------------
-    static ExecutionResults
+    static lldb::ExpressionResults
     Evaluate (ExecutionContext &exe_ctx,
               const EvaluateExpressionOptions& options,
               const char *expr_cstr,

Modified: lldb/trunk/include/lldb/Target/Process.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Process.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/Process.h (original)
+++ lldb/trunk/include/lldb/Target/Process.h Sun May  4 21:26:40 2014
@@ -2566,14 +2566,14 @@ public:
     lldb::StateType
     GetState ();
     
-    ExecutionResults
+    lldb::ExpressionResults
     RunThreadPlan (ExecutionContext &exe_ctx,    
                     lldb::ThreadPlanSP &thread_plan_sp,
                     const EvaluateExpressionOptions &options,
                     Stream &errors);
 
     static const char *
-    ExecutionResultAsCString (ExecutionResults result);
+    ExecutionResultAsCString (lldb::ExpressionResults result);
 
     void
     GetStatus (Stream &ostrm);

Modified: lldb/trunk/include/lldb/Target/Target.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Target/Target.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Target/Target.h (original)
+++ lldb/trunk/include/lldb/Target/Target.h Sun May  4 21:26:40 2014
@@ -204,7 +204,9 @@ public:
         m_generate_debug_info(false),
         m_use_dynamic(lldb::eNoDynamicValues),
         m_timeout_usec(default_timeout),
-        m_one_thread_timeout_usec(0)
+        m_one_thread_timeout_usec(0),
+        m_cancel_callback (nullptr),
+        m_cancel_callback_baton (nullptr)
     {
     }
     
@@ -377,6 +379,22 @@ public:
     {
         m_trap_exceptions = b;
     }
+    
+    void
+    SetCancelCallback (lldb::ExpressionCancelCallback callback, void *baton)
+    {
+        m_cancel_callback_baton = baton;
+        m_cancel_callback = callback;
+    }
+    
+    bool
+    InvokeCancelCallback (lldb::ExpressionEvaluationPhase phase) const
+    {
+        if (m_cancel_callback == nullptr)
+            return false;
+        else
+            return m_cancel_callback (phase, m_cancel_callback_baton);
+    }
 
 private:
     ExecutionPolicy m_execution_policy;
@@ -393,6 +411,8 @@ private:
     lldb::DynamicValueType m_use_dynamic;
     uint32_t m_timeout_usec;
     uint32_t m_one_thread_timeout_usec;
+    lldb::ExpressionCancelCallback m_cancel_callback;
+    void *m_cancel_callback_baton;
 };
 
 //----------------------------------------------------------------------
@@ -1117,7 +1137,7 @@ public:
     // we provide a way for expressions to be evaluated from the Target itself.
     // If an expression is going to be run, then it should have a frame filled
     // in in th execution context. 
-    ExecutionResults
+    lldb::ExpressionResults
     EvaluateExpression (const char *expression,
                         StackFrame *frame,
                         lldb::ValueObjectSP &result_valobj_sp,

Modified: lldb/trunk/include/lldb/lldb-enumerations.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-enumerations.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/lldb-enumerations.h (original)
+++ lldb/trunk/include/lldb/lldb-enumerations.h Sun May  4 21:26:40 2014
@@ -200,6 +200,22 @@ namespace lldb {
 
 
     //----------------------------------------------------------------------
+    // The results of expression evaluation:
+    //----------------------------------------------------------------------
+    typedef enum ExpressionResults
+    {
+        eExecutionCompleted = 0,
+        eExecutionSetupError,
+        eExecutionParseError,
+        eExecutionDiscarded,
+        eExecutionInterrupted,
+        eExecutionHitBreakpoint,
+        eExecutionTimedOut,
+        eExecutionResultUnavailable,
+        eExecutionStoppedForDebug
+    } ExpressionResults;
+
+    //----------------------------------------------------------------------
     // Connection Status Types
     //----------------------------------------------------------------------
     typedef enum ConnectionStatus
@@ -218,7 +234,8 @@ namespace lldb {
         eErrorTypeInvalid,
         eErrorTypeGeneric,      ///< Generic errors that can be any value.
         eErrorTypeMachKernel,   ///< Mach kernel error codes.
-        eErrorTypePOSIX         ///< POSIX error codes.
+        eErrorTypePOSIX,        ///< POSIX error codes.
+        eErrorTypeExpression    ///< These are from the ExpressionResults enum.
     } ErrorType;
 
 
@@ -753,6 +770,21 @@ namespace lldb {
         eQueueKindSerial,
         eQueueKindConcurrent
     } QueueKind;
+    
+    //----------------------------------------------------------------------
+    // Expression Evaluation Stages
+    // These are the cancellable stages of expression evaluation, passed to the
+    // expression evaluation callback, so that you can interrupt expression
+    // evaluation at the various points in its lifecycle.
+    //----------------------------------------------------------------------
+    typedef enum ExpressionEvaluationPhase
+    {
+        eExpressionEvaluationParse = 0,
+        eExpressionEvaluationIRGen,
+        eExpressionEvaluationExecution,
+        eExpressionEvaluationComplete
+    } ExpressionEvaluationPhase;
+    
 
 } // namespace lldb
 

Modified: lldb/trunk/include/lldb/lldb-private-enumerations.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-private-enumerations.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/lldb-private-enumerations.h (original)
+++ lldb/trunk/include/lldb/lldb-private-enumerations.h Sun May  4 21:26:40 2014
@@ -123,22 +123,6 @@ typedef enum PathType
 } PathType;
 
 
-//----------------------------------------------------------------------
-// We can execute ThreadPlans on one thread with various fall-back modes 
-// (try other threads after timeout, etc.) This enum gives the result of 
-// thread plan executions.
-//----------------------------------------------------------------------
-typedef enum ExecutionResults
-{
-    eExecutionSetupError,
-    eExecutionCompleted,
-    eExecutionDiscarded,
-    eExecutionInterrupted,
-    eExecutionHitBreakpoint,
-    eExecutionTimedOut,
-    eExecutionStoppedForDebug
-} ExecutionResults;
-
 typedef enum ObjCRuntimeVersions {
     eObjC_VersionUnknown = 0,
     eAppleObjC_V1 = 1,

Modified: lldb/trunk/include/lldb/lldb-types.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/lldb-types.h?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/include/lldb/lldb-types.h (original)
+++ lldb/trunk/include/lldb/lldb-types.h Sun May  4 21:26:40 2014
@@ -54,32 +54,36 @@ namespace lldb
     typedef void *              thread_arg_t;               // Host thread argument type
     typedef unsigned            thread_result_t;            // Host thread result type
     typedef thread_result_t     (*thread_func_t)(void *);   // Host thread function type
-    typedef void                (*LogOutputCallback) (const char *, void *baton);
-    typedef bool                (*CommandOverrideCallback)(void *baton, const char **argv);
 }
 
 #else
 
 #include <pthread.h>
 
-namespace lldb {
-        //----------------------------------------------------------------------
-        // MacOSX Types
-        //----------------------------------------------------------------------
-        typedef ::pthread_mutex_t   mutex_t;
-        typedef pthread_cond_t      condition_t;
-        typedef pthread_rwlock_t    rwlock_t;
-        typedef pthread_t           thread_t;                   // Host thread type
-        typedef pthread_key_t       thread_key_t;
-        typedef void *              thread_arg_t;               // Host thread argument type
-        typedef void *              thread_result_t;            // Host thread result type
-        typedef void *              (*thread_func_t)(void *);   // Host thread function type
-        typedef void                (*LogOutputCallback) (const char *, void *baton);
-        typedef bool                (*CommandOverrideCallback)(void *baton, const char **argv);
+namespace lldb
+{
+    //----------------------------------------------------------------------
+    // MacOSX Types
+    //----------------------------------------------------------------------
+    typedef ::pthread_mutex_t   mutex_t;
+    typedef pthread_cond_t      condition_t;
+    typedef pthread_rwlock_t    rwlock_t;
+    typedef pthread_t           thread_t;                   // Host thread type
+    typedef pthread_key_t       thread_key_t;
+    typedef void *              thread_arg_t;               // Host thread argument type
+    typedef void *              thread_result_t;            // Host thread result type
+    typedef void *              (*thread_func_t)(void *);   // Host thread function type
 } // namespace lldb
 
 #endif
 
+namespace lldb
+{
+    typedef void                (*LogOutputCallback) (const char *, void *baton);
+    typedef bool                (*CommandOverrideCallback)(void *baton, const char **argv);
+    typedef bool                (*ExpressionCancelCallback) (ExpressionEvaluationPhase phase, void *baton);
+}
+
 #define LLDB_INVALID_HOST_THREAD         ((lldb::thread_t)NULL)
 #define IS_VALID_LLDB_HOST_THREAD(t)     ((t) != LLDB_INVALID_HOST_THREAD)
 

Modified: lldb/trunk/source/API/SBExpressionOptions.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBExpressionOptions.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/API/SBExpressionOptions.cpp (original)
+++ lldb/trunk/source/API/SBExpressionOptions.cpp Sun May  4 21:26:40 2014
@@ -149,6 +149,12 @@ SBExpressionOptions::SetTrapExceptions (
     m_opaque_ap->SetTrapExceptions (trap_exceptions);
 }
 
+void
+SBExpressionOptions::SetCancelCallback (lldb::ExpressionCancelCallback callback, void *baton)
+{
+    m_opaque_ap->SetCancelCallback (callback, baton);
+}
+
 EvaluateExpressionOptions *
 SBExpressionOptions::get() const
 {

Modified: lldb/trunk/source/API/SBFrame.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBFrame.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/API/SBFrame.cpp (original)
+++ lldb/trunk/source/API/SBFrame.cpp Sun May  4 21:26:40 2014
@@ -1372,7 +1372,7 @@ SBFrame::EvaluateExpression (const char
 
     Log *expr_log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
 
-    ExecutionResults exe_results = eExecutionSetupError;
+    ExpressionResults exe_results = eExecutionSetupError;
     SBValue expr_result;
 
     if (expr == NULL || expr[0] == '\0')

Modified: lldb/trunk/source/API/SBTarget.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/API/SBTarget.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/API/SBTarget.cpp (original)
+++ lldb/trunk/source/API/SBTarget.cpp Sun May  4 21:26:40 2014
@@ -2611,7 +2611,7 @@ SBTarget::EvaluateExpression (const char
     Log *log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_API));
     Log * expr_log(GetLogIfAllCategoriesSet (LIBLLDB_LOG_EXPRESSIONS));
     SBValue expr_result;
-    ExecutionResults exe_results = eExecutionSetupError;
+    ExpressionResults exe_results = eExecutionSetupError;
     ValueObjectSP expr_value_sp;
     TargetSP target_sp(GetSP());
     StackFrame *frame = NULL;

Modified: lldb/trunk/source/Breakpoint/BreakpointLocation.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Breakpoint/BreakpointLocation.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Breakpoint/BreakpointLocation.cpp (original)
+++ lldb/trunk/source/Breakpoint/BreakpointLocation.cpp Sun May  4 21:26:40 2014
@@ -317,7 +317,7 @@ BreakpointLocation::ConditionSaysStop (E
     
     ClangExpressionVariableSP result_variable_sp;
     
-    ExecutionResults result_code =
+    ExpressionResults result_code =
     m_user_expression_sp->Execute(execution_errors,
                                   exe_ctx,
                                   options,

Modified: lldb/trunk/source/Commands/CommandObjectThread.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectThread.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Commands/CommandObjectThread.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectThread.cpp Sun May  4 21:26:40 2014
@@ -1503,7 +1503,7 @@ protected:
             options.SetUnwindOnError(true);
             options.SetUseDynamic(eNoDynamicValues);
             
-            ExecutionResults exe_results = eExecutionSetupError;
+            ExpressionResults exe_results = eExecutionSetupError;
             exe_results = target->EvaluateExpression (command,
                                                       frame_sp.get(),
                                                       return_valobj_sp,

Modified: lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp (original)
+++ lldb/trunk/source/Commands/CommandObjectWatchpoint.cpp Sun May  4 21:26:40 2014
@@ -1256,7 +1256,7 @@ protected:
         options.SetTryAllThreads(true);
         options.SetTimeoutUsec(0);
         
-        ExecutionResults expr_result = target->EvaluateExpression (expr, 
+        ExpressionResults expr_result = target->EvaluateExpression (expr, 
                                                                    frame, 
                                                                    valobj_sp,
                                                                    options);

Modified: lldb/trunk/source/Core/Error.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Core/Error.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Core/Error.cpp (original)
+++ lldb/trunk/source/Core/Error.cpp Sun May  4 21:26:40 2014
@@ -264,6 +264,35 @@ Error::SetMachError (uint32_t err)
     m_string.clear();
 }
 
+void
+Error::SetExpressionError (lldb::ExpressionResults result, const char *mssg)
+{
+    m_code = result;
+    m_type = eErrorTypeExpression;
+    m_string = mssg;
+}
+
+int
+Error::SetExpressionErrorWithFormat (lldb::ExpressionResults result, const char *format, ...)
+{
+    int length = 0;
+    
+    if (format && format[0])
+    {
+        va_list args;
+        va_start (args, format);
+        length = SetErrorStringWithVarArg (format, args);
+        va_end (args);
+    }
+    else
+    {
+        m_string.clear();
+    }
+    m_code = result;
+    m_type = eErrorTypeExpression;
+    return length;
+}
+
 //----------------------------------------------------------------------
 // Set accesssor for the error value and type.
 //----------------------------------------------------------------------

Modified: lldb/trunk/source/Expression/ClangFunction.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ClangFunction.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Expression/ClangFunction.cpp (original)
+++ lldb/trunk/source/Expression/ClangFunction.cpp Sun May  4 21:26:40 2014
@@ -334,7 +334,7 @@ ClangFunction::WriteFunctionArguments (E
         
     Error error;
     using namespace clang;
-    ExecutionResults return_value = eExecutionSetupError;
+    lldb::ExpressionResults return_value = lldb::eExecutionSetupError;
 
     Process *process = exe_ctx.GetProcessPtr();
 
@@ -502,7 +502,7 @@ ClangFunction::DeallocateFunctionResults
     exe_ctx.GetProcessRef().DeallocateMemory(args_addr);
 }
 
-ExecutionResults
+lldb::ExpressionResults
 ClangFunction::ExecuteFunction(
         ExecutionContext &exe_ctx, 
         lldb::addr_t *args_addr_ptr,
@@ -511,7 +511,7 @@ ClangFunction::ExecuteFunction(
         Value &results)
 {
     using namespace clang;
-    ExecutionResults return_value = eExecutionSetupError;
+    lldb::ExpressionResults return_value = lldb::eExecutionSetupError;
     
     // ClangFunction::ExecuteFunction execution is always just to get the result.  Do make sure we ignore
     // breakpoints, unwind on error, and don't try to debug it.
@@ -528,12 +528,12 @@ ClangFunction::ExecuteFunction(
         args_addr = LLDB_INVALID_ADDRESS;
         
     if (CompileFunction(errors) != 0)
-        return eExecutionSetupError;
+        return lldb::eExecutionSetupError;
     
     if (args_addr == LLDB_INVALID_ADDRESS)
     {
         if (!InsertFunction(exe_ctx, args_addr, errors))
-            return eExecutionSetupError;
+            return lldb::eExecutionSetupError;
     }
 
     Log *log(lldb_private::GetLogIfAnyCategoriesSet (LIBLLDB_LOG_EXPRESSIONS | LIBLLDB_LOG_STEP));
@@ -546,7 +546,7 @@ ClangFunction::ExecuteFunction(
                                                                   real_options,
                                                                   errors));
     if (!call_plan_sp)
-        return eExecutionSetupError;
+        return lldb::eExecutionSetupError;
         
     // We need to make sure we record the fact that we are running an expression here
     // otherwise this fact will fail to be recorded when fetching an Objective-C object description
@@ -560,7 +560,7 @@ ClangFunction::ExecuteFunction(
     
     if (log)
     {
-        if (return_value != eExecutionCompleted)
+        if (return_value != lldb::eExecutionCompleted)
         {
             log->Printf("== [ClangFunction::ExecuteFunction] Execution of \"%s\" completed abnormally ==", m_name.c_str());
         }
@@ -576,7 +576,7 @@ ClangFunction::ExecuteFunction(
     if (args_addr_ptr != NULL)
         *args_addr_ptr = args_addr;
     
-    if (return_value != eExecutionCompleted)
+    if (return_value != lldb::eExecutionCompleted)
         return return_value;
 
     FetchFunctionResults(exe_ctx, args_addr, results);
@@ -584,7 +584,7 @@ ClangFunction::ExecuteFunction(
     if (args_addr_ptr == NULL)
         DeallocateFunctionResults(exe_ctx, args_addr);
         
-    return eExecutionCompleted;
+    return lldb::eExecutionCompleted;
 }
 
 clang::ASTConsumer *

Modified: lldb/trunk/source/Expression/ClangUserExpression.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Expression/ClangUserExpression.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Expression/ClangUserExpression.cpp (original)
+++ lldb/trunk/source/Expression/ClangUserExpression.cpp Sun May  4 21:26:40 2014
@@ -798,7 +798,7 @@ ClangUserExpression::FinalizeJITExecutio
     return true;
 }        
 
-ExecutionResults
+lldb::ExpressionResults
 ClangUserExpression::Execute (Stream &error_stream,
                               ExecutionContext &exe_ctx,
                               const EvaluateExpressionOptions& options,
@@ -819,7 +819,7 @@ ClangUserExpression::Execute (Stream &er
         if (!PrepareToExecuteJITExpression (error_stream, exe_ctx, struct_address, object_ptr, cmd_ptr))
         {
             error_stream.Printf("Errored out in %s, couldn't PrepareToExecuteJITExpression", __FUNCTION__);
-            return eExecutionSetupError;
+            return lldb::eExecutionSetupError;
         }
         
         lldb::addr_t function_stack_bottom = LLDB_INVALID_ADDRESS;
@@ -833,7 +833,7 @@ ClangUserExpression::Execute (Stream &er
             if (!module || !function)
             {
                 error_stream.Printf("Supposed to interpret, but nothing is there");
-                return eExecutionSetupError;
+                return lldb::eExecutionSetupError;
             }
 
             Error interpreter_error;
@@ -864,7 +864,7 @@ ClangUserExpression::Execute (Stream &er
             if (!interpreter_error.Success())
             {
                 error_stream.Printf("Supposed to interpret, but failed: %s", interpreter_error.AsCString());
-                return eExecutionDiscarded;
+                return lldb::eExecutionDiscarded;
             }
         }
         else
@@ -872,7 +872,7 @@ ClangUserExpression::Execute (Stream &er
             if (!exe_ctx.HasThreadScope())
             {
                 error_stream.Printf("ClangUserExpression::Execute called with no thread selected.");
-                return eExecutionSetupError;
+                return lldb::eExecutionSetupError;
             }
                 
             Address wrapper_address (m_jit_start_addr);
@@ -894,7 +894,7 @@ ClangUserExpression::Execute (Stream &er
                                                                               shared_ptr_to_me));
             
             if (!call_plan_sp || !call_plan_sp->ValidatePlan (&error_stream))
-                return eExecutionSetupError;
+                return lldb::eExecutionSetupError;
             
             lldb::addr_t function_stack_pointer = static_cast<ThreadPlanCallFunction *>(call_plan_sp.get())->GetFunctionStackPointer();
 
@@ -907,7 +907,7 @@ ClangUserExpression::Execute (Stream &er
             if (exe_ctx.GetProcessPtr())
                 exe_ctx.GetProcessPtr()->SetRunningUserExpression(true);
                 
-            ExecutionResults execution_result = exe_ctx.GetProcessRef().RunThreadPlan (exe_ctx, 
+            lldb::ExpressionResults execution_result = exe_ctx.GetProcessRef().RunThreadPlan (exe_ctx,
                                                                                        call_plan_sp,
                                                                                        options,
                                                                                        error_stream);
@@ -918,7 +918,7 @@ ClangUserExpression::Execute (Stream &er
             if (log)
                 log->Printf("-- [ClangUserExpression::Execute] Execution of expression completed --");
 
-            if (execution_result == eExecutionInterrupted || execution_result == eExecutionHitBreakpoint)
+            if (execution_result == lldb::eExecutionInterrupted || execution_result == lldb::eExecutionHitBreakpoint)
             {
                 const char *error_desc = NULL;
                 
@@ -933,21 +933,23 @@ ClangUserExpression::Execute (Stream &er
                 else
                     error_stream.PutCString ("Execution was interrupted.");
                     
-                if ((execution_result == eExecutionInterrupted && options.DoesUnwindOnError())
-                    || (execution_result == eExecutionHitBreakpoint && options.DoesIgnoreBreakpoints()))
+                if ((execution_result == lldb::eExecutionInterrupted && options.DoesUnwindOnError())
+                    || (execution_result == lldb::eExecutionHitBreakpoint && options.DoesIgnoreBreakpoints()))
                     error_stream.PutCString ("\nThe process has been returned to the state before expression evaluation.");
                 else
-                    error_stream.PutCString ("\nThe process has been left at the point where it was interrupted, use \"thread return -x\" to return to the state before expression evaluation.");
+                    error_stream.PutCString ("\nThe process has been left at the point where it was interrupted, "
+                                             "use \"thread return -x\" to return to the state before expression evaluation.");
 
                 return execution_result;
             }
-            else if (execution_result == eExecutionStoppedForDebug)
+            else if (execution_result == lldb::eExecutionStoppedForDebug)
             {
-                    error_stream.PutCString ("Execution was halted at the first instruction of the expression function because \"debug\" was requested.\n"
+                    error_stream.PutCString ("Execution was halted at the first instruction of the expression "
+                                             "function because \"debug\" was requested.\n"
                                              "Use \"thread return -x\" to return to the state before expression evaluation.");
                     return execution_result;
             }
-            else if (execution_result != eExecutionCompleted)
+            else if (execution_result != lldb::eExecutionCompleted)
             {
                 error_stream.Printf ("Couldn't execute function; result was %s\n", Process::ExecutionResultAsCString (execution_result));
                 return execution_result;
@@ -956,21 +958,21 @@ ClangUserExpression::Execute (Stream &er
         
         if  (FinalizeJITExecution (error_stream, exe_ctx, result, function_stack_bottom, function_stack_top))
         {
-            return eExecutionCompleted;
+            return lldb::eExecutionCompleted;
         }
         else
         {
-            return eExecutionSetupError;
+            return lldb::eExecutionResultUnavailable;
         }
     }
     else
     {
         error_stream.Printf("Expression can't be run, because there is no JIT compiled function");
-        return eExecutionSetupError;
+        return lldb::eExecutionSetupError;
     }
 }
 
-ExecutionResults
+lldb::ExpressionResults
 ClangUserExpression::Evaluate (ExecutionContext &exe_ctx,
                                const EvaluateExpressionOptions& options,
                                const char *expr_cstr,
@@ -983,7 +985,7 @@ ClangUserExpression::Evaluate (Execution
     lldb_private::ExecutionPolicy execution_policy = options.GetExecutionPolicy();
     const lldb::LanguageType language = options.GetLanguage();
     const ResultType desired_type = options.DoesCoerceToId() ? ClangUserExpression::eResultTypeId : ClangUserExpression::eResultTypeAny;
-    ExecutionResults execution_results = eExecutionSetupError;
+    lldb::ExpressionResults execution_results = lldb::eExecutionSetupError;
     
     Process *process = exe_ctx.GetProcessPtr();
 
@@ -1013,6 +1015,13 @@ ClangUserExpression::Evaluate (Execution
     const bool keep_expression_in_memory = true;
     const bool generate_debug_info = options.GetGenerateDebugInfo();
     
+    if (options.InvokeCancelCallback (lldb::eExpressionEvaluationParse))
+    {
+        error.SetErrorString ("expression interrupted by callback before parse");
+        result_valobj_sp = ValueObjectConstResult::Create (exe_ctx.GetBestExecutionContextScope(), error);
+        return lldb::eExecutionInterrupted;
+    }
+    
     if (!user_expression_sp->Parse (error_stream,
                                     exe_ctx,
                                     execution_policy,
@@ -1020,9 +1029,9 @@ ClangUserExpression::Evaluate (Execution
                                     generate_debug_info))
     {
         if (error_stream.GetString().empty())
-            error.SetErrorString ("expression failed to parse, unknown error");
+            error.SetExpressionError (lldb::eExecutionParseError, "expression failed to parse, unknown error");
         else
-            error.SetErrorString (error_stream.GetString().c_str());
+            error.SetExpressionError (lldb::eExecutionParseError, error_stream.GetString().c_str());
     }
     else
     {
@@ -1035,10 +1044,17 @@ ClangUserExpression::Evaluate (Execution
                 log->Printf("== [ClangUserExpression::Evaluate] Expression may not run, but is not constant ==");
             
             if (error_stream.GetString().empty())
-                error.SetErrorString ("expression needed to run but couldn't");
+                error.SetExpressionError (lldb::eExecutionSetupError, "expression needed to run but couldn't");
         }
         else
-        {    
+        {
+            if (options.InvokeCancelCallback (lldb::eExpressionEvaluationExecution))
+            {
+                error.SetExpressionError (lldb::eExecutionInterrupted, "expression interrupted by callback before execution");
+                result_valobj_sp = ValueObjectConstResult::Create (exe_ctx.GetBestExecutionContextScope(), error);
+                return lldb::eExecutionInterrupted;
+            }
+            
             error_stream.GetString().clear();
             
             if (log)
@@ -1050,15 +1066,15 @@ ClangUserExpression::Evaluate (Execution
                                                              user_expression_sp,
                                                              expr_result);
             
-            if (execution_results != eExecutionCompleted)
+            if (execution_results != lldb::eExecutionCompleted)
             {
                 if (log)
                     log->Printf("== [ClangUserExpression::Evaluate] Execution completed abnormally ==");
                 
                 if (error_stream.GetString().empty())
-                    error.SetErrorString ("expression failed to execute, unknown error");
+                    error.SetExpressionError (execution_results, "expression failed to execute, unknown error");
                 else
-                    error.SetErrorString (error_stream.GetString().c_str());
+                    error.SetExpressionError (execution_results, error_stream.GetString().c_str());
             }
             else 
             {
@@ -1067,7 +1083,8 @@ ClangUserExpression::Evaluate (Execution
                     result_valobj_sp = expr_result->GetValueObject();
                     
                     if (log)
-                        log->Printf("== [ClangUserExpression::Evaluate] Execution completed normally with result %s ==", result_valobj_sp->GetValueAsCString());
+                        log->Printf("== [ClangUserExpression::Evaluate] Execution completed normally with result %s ==",
+                                    result_valobj_sp->GetValueAsCString());
                 }
                 else
                 {
@@ -1080,6 +1097,12 @@ ClangUserExpression::Evaluate (Execution
         }
     }
     
+    if (options.InvokeCancelCallback(lldb::eExpressionEvaluationComplete))
+    {
+        error.SetExpressionError (lldb::eExecutionInterrupted, "expression interrupted by callback after complete");
+        return lldb::eExecutionInterrupted;
+    }
+    
     if (result_valobj_sp.get() == NULL)
     {
         result_valobj_sp = ValueObjectConstResult::Create (exe_ctx.GetBestExecutionContextScope(), error);

Modified: lldb/trunk/source/Interpreter/Args.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/Args.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/Args.cpp (original)
+++ lldb/trunk/source/Interpreter/Args.cpp Sun May  4 21:26:40 2014
@@ -817,7 +817,7 @@ Args::StringToAddress (const ExecutionCo
                 options.SetKeepInMemory(false);
                 options.SetTryAllThreads(true);
                 
-                ExecutionResults expr_result = target->EvaluateExpression(s,
+                ExpressionResults expr_result = target->EvaluateExpression(s,
                                                                           exe_ctx->GetFramePtr(),
                                                                           valobj_sp,
                                                                           options);

Modified: lldb/trunk/source/Interpreter/CommandInterpreter.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Interpreter/CommandInterpreter.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Interpreter/CommandInterpreter.cpp (original)
+++ lldb/trunk/source/Interpreter/CommandInterpreter.cpp Sun May  4 21:26:40 2014
@@ -1456,7 +1456,7 @@ CommandInterpreter::PreprocessCommand (s
                     options.SetTryAllThreads(true);
                     options.SetTimeoutUsec(0);
                     
-                    ExecutionResults expr_result = target->EvaluateExpression (expr_str.c_str(), 
+                    ExpressionResults expr_result = target->EvaluateExpression (expr_str.c_str(), 
                                                                                exe_ctx.GetFramePtr(),
                                                                                expr_result_valobj_sp,
                                                                                options);
@@ -1499,6 +1499,11 @@ CommandInterpreter::PreprocessCommand (s
                                 case eExecutionSetupError: 
                                     error.SetErrorStringWithFormat("expression setup error for the expression '%s'", expr_str.c_str());
                                     break;
+                                case eExecutionParseError:
+                                    error.SetErrorStringWithFormat ("expression parse error for the expression '%s'", expr_str.c_str());
+                                    break;
+                                case eExecutionResultUnavailable:
+                                    error.SetErrorStringWithFormat ("expression error fetching result for the expression '%s'", expr_str.c_str());
                                 case eExecutionCompleted:
                                     break;
                                 case eExecutionDiscarded:

Modified: lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp (original)
+++ lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.cpp Sun May  4 21:26:40 2014
@@ -144,7 +144,7 @@ AppleObjCRuntime::GetObjectDescription (
     options.SetIgnoreBreakpoints(true);
     options.SetTimeoutUsec(PO_FUNCTION_TIMEOUT_USEC);
     
-    ExecutionResults results = func.ExecuteFunction (exe_ctx, 
+    ExpressionResults results = func.ExecuteFunction (exe_ctx, 
                                                      &wrapper_struct_addr,
                                                      options,
                                                      error_stream, 

Modified: lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp (original)
+++ lldb/trunk/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp Sun May  4 21:26:40 2014
@@ -1846,7 +1846,7 @@ AppleObjCRuntimeV2::UpdateISAToDescripto
         errors.Clear();
         
         // Run the function
-        ExecutionResults results = m_get_class_info_function->ExecuteFunction (exe_ctx,
+        ExpressionResults results = m_get_class_info_function->ExecuteFunction (exe_ctx,
                                                                                &m_get_class_info_args,
                                                                                options,
                                                                                errors,
@@ -2096,7 +2096,7 @@ AppleObjCRuntimeV2::UpdateISAToDescripto
         errors.Clear();
         
         // Run the function
-        ExecutionResults results = m_get_shared_cache_class_info_function->ExecuteFunction (exe_ctx,
+        ExpressionResults results = m_get_shared_cache_class_info_function->ExecuteFunction (exe_ctx,
                                                                                             &m_get_shared_cache_class_info_args,
                                                                                             options,
                                                                                             errors,

Modified: lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp (original)
+++ lldb/trunk/source/Plugins/Process/Utility/InferiorCallPOSIX.cpp Sun May  4 21:26:40 2014
@@ -117,7 +117,7 @@ lldb_private::InferiorCallMmap (Process
                     {
                         ExecutionContext exe_ctx;
                         frame->CalculateExecutionContext (exe_ctx);
-                        ExecutionResults result = process->RunThreadPlan (exe_ctx,
+                        ExpressionResults result = process->RunThreadPlan (exe_ctx,
                                                                           call_plan_sp,
                                                                           options,
                                                                           error_strm);
@@ -202,7 +202,7 @@ lldb_private::InferiorCallMunmap (Proces
                     {
                         ExecutionContext exe_ctx;
                         frame->CalculateExecutionContext (exe_ctx);
-                        ExecutionResults result = process->RunThreadPlan (exe_ctx,
+                        ExpressionResults result = process->RunThreadPlan (exe_ctx,
                                                                           call_plan_sp,
                                                                           options,
                                                                           error_strm);
@@ -260,7 +260,7 @@ lldb_private::InferiorCall (Process *pro
         {
             ExecutionContext exe_ctx;
             frame->CalculateExecutionContext (exe_ctx);
-            ExecutionResults result = process->RunThreadPlan (exe_ctx,
+            ExpressionResults result = process->RunThreadPlan (exe_ctx,
                                                               call_plan_sp,
                                                               options,
                                                               error_strm);

Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp (original)
+++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp Sun May  4 21:26:40 2014
@@ -363,13 +363,13 @@ AppleGetItemInfoHandler::GetItemInfo (Th
     }
 
 
-    ExecutionResults func_call_ret;
+    ExpressionResults func_call_ret;
     Value results;
     func_call_ret =  m_get_item_info_function->ExecuteFunction (exe_ctx, &args_addr, options, errors, results);
     if (func_call_ret != eExecutionCompleted || !error.Success())
     {
         if (log)
-            log->Printf ("Unable to call __introspection_dispatch_queue_item_get_info(), got ExecutionResults %d, error contains %s", func_call_ret, error.AsCString(""));
+            log->Printf ("Unable to call __introspection_dispatch_queue_item_get_info(), got ExpressionResults %d, error contains %s", func_call_ret, error.AsCString(""));
         error.SetErrorString ("Unable to call __introspection_dispatch_queue_get_item_info() for list of queues");
         return return_value;
     }

Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp (original)
+++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp Sun May  4 21:26:40 2014
@@ -368,13 +368,13 @@ AppleGetPendingItemsHandler::GetPendingI
     }
 
 
-    ExecutionResults func_call_ret;
+    ExpressionResults func_call_ret;
     Value results;
     func_call_ret =  m_get_pending_items_function->ExecuteFunction (exe_ctx, &args_addr, options, errors, results);
     if (func_call_ret != eExecutionCompleted || !error.Success())
     {
         if (log)
-            log->Printf ("Unable to call __introspection_dispatch_queue_get_pending_items(), got ExecutionResults %d, error contains %s", func_call_ret, error.AsCString(""));
+            log->Printf ("Unable to call __introspection_dispatch_queue_get_pending_items(), got ExpressionResults %d, error contains %s", func_call_ret, error.AsCString(""));
         error.SetErrorString ("Unable to call __introspection_dispatch_queue_get_pending_items() for list of queues");
         return return_value;
     }

Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp (original)
+++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp Sun May  4 21:26:40 2014
@@ -367,13 +367,13 @@ AppleGetQueuesHandler::GetCurrentQueues
     options.SetTryAllThreads (false);
     thread.CalculateExecutionContext (exe_ctx);
 
-    ExecutionResults func_call_ret;
+    ExpressionResults func_call_ret;
     Value results;
     func_call_ret =  m_get_queues_function->ExecuteFunction (exe_ctx, &args_addr, options, errors, results);
     if (func_call_ret != eExecutionCompleted || !error.Success())
     {
         if (log)
-            log->Printf ("Unable to call introspection_get_dispatch_queues(), got ExecutionResults %d, error contains %s", func_call_ret, error.AsCString(""));
+            log->Printf ("Unable to call introspection_get_dispatch_queues(), got ExpressionResults %d, error contains %s", func_call_ret, error.AsCString(""));
         error.SetErrorString ("Unable to call introspection_get_dispatch_queues() for list of queues");
         return return_value;
     }

Modified: lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp (original)
+++ lldb/trunk/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp Sun May  4 21:26:40 2014
@@ -366,13 +366,13 @@ AppleGetThreadItemInfoHandler::GetThread
     }
 
 
-    ExecutionResults func_call_ret;
+    ExpressionResults func_call_ret;
     Value results;
     func_call_ret =  m_get_thread_item_info_function->ExecuteFunction (exe_ctx, &args_addr, options, errors, results);
     if (func_call_ret != eExecutionCompleted || !error.Success())
     {
         if (log)
-            log->Printf ("Unable to call __introspection_dispatch_thread_get_item_info(), got ExecutionResults %d, error contains %s", func_call_ret, error.AsCString(""));
+            log->Printf ("Unable to call __introspection_dispatch_thread_get_item_info(), got ExpressionResults %d, error contains %s", func_call_ret, error.AsCString(""));
         error.SetErrorString ("Unable to call __introspection_dispatch_thread_get_item_info() for list of queues");
         return return_value;
     }

Modified: lldb/trunk/source/Target/Process.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Process.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Target/Process.cpp (original)
+++ lldb/trunk/source/Target/Process.cpp Sun May  4 21:26:40 2014
@@ -5037,13 +5037,13 @@ Process::SettingsTerminate ()
     Thread::SettingsTerminate ();
 }
 
-ExecutionResults
+ExpressionResults
 Process::RunThreadPlan (ExecutionContext &exe_ctx,
                         lldb::ThreadPlanSP &thread_plan_sp,
                         const EvaluateExpressionOptions &options,
                         Stream &errors)
 {
-    ExecutionResults return_value = eExecutionSetupError;
+    ExpressionResults return_value = eExecutionSetupError;
 
     if (thread_plan_sp.get() == NULL)
     {
@@ -5939,7 +5939,7 @@ Process::RunThreadPlan (ExecutionContext
 }
 
 const char *
-Process::ExecutionResultAsCString (ExecutionResults result)
+Process::ExecutionResultAsCString (ExpressionResults result)
 {
     const char *result_name;
     
@@ -5960,6 +5960,12 @@ Process::ExecutionResultAsCString (Execu
         case eExecutionSetupError:
             result_name = "eExecutionSetupError";
             break;
+        case eExecutionParseError:
+            result_name = "eExecutionParseError";
+            break;
+        case eExecutionResultUnavailable:
+            result_name = "eExecutionResultUnavailable";
+            break;
         case eExecutionTimedOut:
             result_name = "eExecutionTimedOut";
             break;

Modified: lldb/trunk/source/Target/StopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/StopInfo.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Target/StopInfo.cpp (original)
+++ lldb/trunk/source/Target/StopInfo.cpp Sun May  4 21:26:40 2014
@@ -708,7 +708,7 @@ protected:
                 {
                     // We need to make sure the user sees any parse errors in their condition, so we'll hook the
                     // constructor errors up to the debugger's Async I/O.
-                    ExecutionResults result_code;
+                    ExpressionResults result_code;
                     EvaluateExpressionOptions expr_options;
                     expr_options.SetUnwindOnError(true);
                     expr_options.SetIgnoreBreakpoints(true);

Modified: lldb/trunk/source/Target/Target.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/Target.cpp?rev=207944&r1=207943&r2=207944&view=diff
==============================================================================
--- lldb/trunk/source/Target/Target.cpp (original)
+++ lldb/trunk/source/Target/Target.cpp Sun May  4 21:26:40 2014
@@ -1855,7 +1855,7 @@ Target::GetTargetFromContexts (const Exe
     return target;
 }
 
-ExecutionResults
+ExpressionResults
 Target::EvaluateExpression
 (
     const char *expr_cstr,
@@ -1866,7 +1866,7 @@ Target::EvaluateExpression
 {
     result_valobj_sp.reset();
     
-    ExecutionResults execution_results = eExecutionSetupError;
+    ExpressionResults execution_results = eExecutionSetupError;
 
     if (expr_cstr == NULL || expr_cstr[0] == '\0')
         return execution_results;





More information about the lldb-commits mailing list