//===-- ScriptInterpreter.cpp -----------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// #include "lldb/Interpreter/ScriptInterpreter.h" #include #include #include #include "lldb/Core/Error.h" #include "lldb/Core/Stream.h" #include "lldb/Core/StringList.h" #include "lldb/Interpreter/CommandReturnObject.h" #include "PseudoTerminal.h" using namespace lldb; using namespace lldb_private; ScriptInterpreter::ScriptInterpreter (ScriptLanguage script_lang) : m_script_lang (script_lang), m_interpreter_pty () { if (m_interpreter_pty.OpenFirstAvailableMaster (O_RDWR|O_NOCTTY, NULL, 0)) { const char *slave_name = m_interpreter_pty.GetSlaveName(NULL, 0); if (slave_name) m_pty_slave_name.assign(slave_name); } } ScriptInterpreter::~ScriptInterpreter () { m_interpreter_pty.CloseMasterFileDescriptor(); } const char * ScriptInterpreter::GetScriptInterpreterPtyName () { return m_pty_slave_name.c_str(); } int ScriptInterpreter::GetMasterFileDescriptor () { return m_interpreter_pty.GetMasterFileDescriptor(); } void ScriptInterpreter::CollectDataForBreakpointCommandCallback ( BreakpointOptions *bp_options, CommandReturnObject &result ) { result.SetStatus (eReturnStatusFailed); result.AppendError ("ScriptInterpreter::GetScriptCommands(StringList &) is not implemented."); }