Added KDP resume, suspend, set/remove breakpoint, and kernel version support.
Also we now display a live update of the kexts that we are loading.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@135563 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Commands/CommandObjectExpression.cpp b/source/Commands/CommandObjectExpression.cpp
index 0afb0eb..cab8ed5 100644
--- a/source/Commands/CommandObjectExpression.cpp
+++ b/source/Commands/CommandObjectExpression.cpp
@@ -198,9 +198,12 @@
     case eInputReaderActivate:
         if (!batch_mode)
         {
-            StreamSP out_stream = reader.GetDebugger().GetAsyncOutputStream();
-            out_stream->Printf("%s\n", "Enter expressions, then terminate with an empty line to evaluate:");
-            out_stream->Flush();
+            StreamSP async_strm_sp(reader.GetDebugger().GetAsyncOutputStream());
+            if (async_strm_sp)
+            {
+                async_strm_sp->PutCString("Enter expressions, then terminate with an empty line to evaluate:\n");
+                async_strm_sp->Flush();
+            }
         }
         // Fall through
     case eInputReaderReactivate:
@@ -228,9 +231,12 @@
         reader.SetIsDone (true);
         if (!batch_mode)
         {
-            StreamSP out_stream = reader.GetDebugger().GetAsyncOutputStream();
-            out_stream->Printf("%s\n", "Expression evaluation cancelled.");
-            out_stream->Flush();
+            StreamSP async_strm_sp (reader.GetDebugger().GetAsyncOutputStream());
+            if (async_strm_sp)
+            {
+                async_strm_sp->PutCString("Expression evaluation cancelled.\n");
+                async_strm_sp->Flush();
+            }
         }
         break;