diff options
Diffstat (limited to 'contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp')
-rw-r--r-- | contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp b/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp index 3d05335..0991c7e 100644 --- a/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp +++ b/contrib/llvm/tools/lldb/source/Commands/CommandObjectGUI.cpp @@ -7,8 +7,6 @@ // //===----------------------------------------------------------------------===// -#include "lldb/lldb-python.h" - #include "CommandObjectGUI.h" // C Includes @@ -42,10 +40,22 @@ CommandObjectGUI::DoExecute (Args& args, CommandReturnObject &result) if (args.GetArgumentCount() == 0) { Debugger &debugger = m_interpreter.GetDebugger(); - IOHandlerSP io_handler_sp (new IOHandlerCursesGUI (debugger)); - if (io_handler_sp) - debugger.PushIOHandler(io_handler_sp); - result.SetStatus (eReturnStatusSuccessFinishResult); + + lldb::StreamFileSP input_sp = debugger.GetInputFile(); + if (input_sp && + input_sp->GetFile().GetIsRealTerminal() && + input_sp->GetFile().GetIsInteractive()) + { + IOHandlerSP io_handler_sp (new IOHandlerCursesGUI (debugger)); + if (io_handler_sp) + debugger.PushIOHandler(io_handler_sp); + result.SetStatus (eReturnStatusSuccessFinishResult); + } + else + { + result.AppendError("the gui command requires an interactive terminal."); + result.SetStatus (eReturnStatusFailed); + } } else { |