Send a stop event when an expression stops at a breakpoint
in an expression and doesn't ignore the stop.

Patch by Jim Ingham.

<rdar://problem/14583884>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@187434 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Commands/CommandObjectExpression.cpp b/source/Commands/CommandObjectExpression.cpp
index 1d31c67..da472d1 100644
--- a/source/Commands/CommandObjectExpression.cpp
+++ b/source/Commands/CommandObjectExpression.cpp
@@ -345,36 +345,7 @@
                                                   exe_ctx.GetFramePtr(),
                                                   result_valobj_sp,
                                                   options);
-        
-        if ((exe_results == eExecutionInterrupted && !m_command_options.unwind_on_error)
-            ||(exe_results == eExecutionHitBreakpoint && !m_command_options.ignore_breakpoints))
-        {
-            uint32_t start_frame = 0;
-            uint32_t num_frames = 1;
-            uint32_t num_frames_with_source = 0;
-            Thread *thread = exe_ctx.GetThreadPtr();
-            if (thread)
-            {
-                thread->GetStatus (result->GetOutputStream(), 
-                                   start_frame, 
-                                   num_frames, 
-                                   num_frames_with_source);
-            }
-            else 
-            {
-                Process *process = exe_ctx.GetProcessPtr();
-                if (process)
-                {
-                    bool only_threads_with_stop_reason = true;
-                    process->GetThreadStatus (result->GetOutputStream(), 
-                                              only_threads_with_stop_reason, 
-                                              start_frame, 
-                                              num_frames, 
-                                              num_frames_with_source);
-                }
-            }
-        }
-        
+
         if (result_valobj_sp)
         {
             Format format = m_format_options.GetFormat();
diff --git a/source/Target/Process.cpp b/source/Target/Process.cpp
index 4cdcc28..d2aac46 100644
--- a/source/Target/Process.cpp
+++ b/source/Target/Process.cpp
@@ -5030,11 +5030,17 @@
                                                 if (log)
                                                     log->Printf ("Process::RunThreadPlan() stopped for breakpoint: %s.", stop_info_sp->GetDescription());
                                                 return_value = eExecutionHitBreakpoint;
+                                                if (!ignore_breakpoints)
+                                                {
+                                                    event_to_broadcast_sp = event_sp;
+                                                }
                                             }
                                             else
                                             {
                                                 if (log)
                                                     log->PutCString ("Process::RunThreadPlan(): thread plan didn't successfully complete.");
+                                                if (!unwind_on_error)
+                                                    event_to_broadcast_sp = event_sp;
                                                 return_value = eExecutionInterrupted;
                                             }
                                         }