[Lldb-commits] [lldb] r170146 - /lldb/trunk/tools/driver/Driver.cpp

Enrico Granata egranata at apple.com
Thu Dec 13 12:20:11 PST 2012


Author: enrico
Date: Thu Dec 13 14:20:11 2012
New Revision: 170146

URL: http://llvm.org/viewvc/llvm-project?rev=170146&view=rev
Log:
<rdar://problem/12700464>

Fixing an issue where errors in command files sourced as arguments to command-line lldb (e.g. ./lldb -s foo.cmd) would not be shown to the user


Modified:
    lldb/trunk/tools/driver/Driver.cpp

Modified: lldb/trunk/tools/driver/Driver.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/driver/Driver.cpp?rev=170146&r1=170145&r2=170146&view=diff
==============================================================================
--- lldb/trunk/tools/driver/Driver.cpp (original)
+++ lldb/trunk/tools/driver/Driver.cpp Thu Dec 13 14:20:11 2012
@@ -1334,6 +1334,7 @@
             // Now we handle options we got from the command line
             char command_string[PATH_MAX * 2];
             const size_t num_source_command_files = GetNumSourceCommandFiles();
+            const bool dump_stream_only_if_no_immediate = true;
             if (num_source_command_files > 0)
             {
                 for (size_t i=0; i < num_source_command_files; ++i)
@@ -1346,6 +1347,18 @@
                         result.PutError (m_debugger.GetErrorFileHandle());
                         result.PutOutput (m_debugger.GetOutputFileHandle());
                     }
+                    
+                    // if the command sourcing generated an error - dump the result object
+                    const size_t error_size = result.GetErrorSize();
+                    if (error_size > 0)
+                    {
+                        const size_t output_size = result.GetOutputSize();
+                        if (output_size > 0)
+                            m_io_channel_ap->OutWrite (result.GetOutput(dump_stream_only_if_no_immediate), output_size, NO_ASYNC);
+                        m_io_channel_ap->OutWrite (result.GetError(dump_stream_only_if_no_immediate), error_size, NO_ASYNC);
+                    }
+                    
+                    result.Clear();
                 }
             }
 





More information about the lldb-commits mailing list