Moved the code in ClangUserExpression that set up & ran the thread plan with timeouts, and restarting with all threads into a utility function in Process.  This required a bunch of renaming. 

Added a ThreadPlanCallUserExpression that differs from ThreadPlanCallFunction in that it holds onto a shared pointer to its ClangUserExpression so that can't go away before the thread plan is done using it.

Fixed the stop message when you hit a breakpoint while running a user expression so it is more obvious what has happened.

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@120386 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Target/ThreadPlanRunToAddress.cpp b/source/Target/ThreadPlanRunToAddress.cpp
index f8df04e..2dc9daa 100644
--- a/source/Target/ThreadPlanRunToAddress.cpp
+++ b/source/Target/ThreadPlanRunToAddress.cpp
@@ -168,9 +168,12 @@
         if (m_break_ids[i] == LLDB_INVALID_BREAK_ID)
         {
             all_bps_good = false;
-            error->Printf ("Could not set breakpoint for address: ");
-            error->Address (m_addresses[i], sizeof (addr_t));
-            error->Printf ("\n");
+            if (error)
+            {
+                error->Printf ("Could not set breakpoint for address: ");
+                error->Address (m_addresses[i], sizeof (addr_t));
+                error->Printf ("\n");
+            }
         }
     }
     return all_bps_good;