More termios fixes. We need to currently make sure to include:

#include "lldb/Host/Config.h"

Or the LLDB_CONFIG_TERMIOS_SUPPORTED defined won't be set. I will fix all
of this Termios stuff later today by moving lldb/Core/TTYState.* into the 
host layer and then we conditionalize all of this inside TTYState.cpp and
then we get rid of LLDB_CONFIG_TERMIOS_SUPPORTED all together.

Typically, when we start to see too many "#if LLDB_CONFIG_XXXX" preprocessor
directives, this is a good indicator that something needs to be moved over to
the host layer. TTYState can be modified to do all of the things that many
areas of the code are currently doing, and it will avoid all of the 
preprocessor noise.

llvm-svn: 125027
This commit is contained in:
Greg Clayton
2011-02-07 19:22:32 +00:00
parent e5ce4c9bcd
commit 6c3e431e9b
5 changed files with 13 additions and 6 deletions

View File

@@ -11,6 +11,8 @@
#define liblldb_TTYState_h_
#if defined(__cplusplus)
#include "lldb/Host/Config.h"
#if LLDB_CONFIG_TERMIOS_SUPPORTED
#include <termios.h>
#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED

View File

@@ -32,4 +32,4 @@
#endif
#endif // #ifndef liblldb_Config_h_
#endif // #ifndef liblldb_Config_h_

View File

@@ -17,7 +17,11 @@
#include <Python.h>
#endif
#include "lldb/Host/Config.h"
#if LLDB_CONFIG_TERMIOS_SUPPORTED
#include <termios.h>
#endif
#include "lldb/lldb-private.h"
#include "lldb/Interpreter/ScriptInterpreter.h"
@@ -113,8 +117,10 @@ private:
FILE *m_dbg_stdout;
PyObject *m_new_sysout;
std::string m_dictionary_name;
#if LLDB_CONFIG_TERMIOS_SUPPORTED
struct termios m_termios;
bool m_termios_valid;
#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED
bool m_session_is_active;
bool m_pty_slave_is_open;
bool m_valid_session;

View File

@@ -14,6 +14,7 @@
#include "lldb/Core/State.h"
#include "lldb/Core/StreamString.h"
#include "lldb/Core/Timer.h"
#include "lldb/Host/Config.h"
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Target/TargetList.h"
#include "lldb/Target/Process.h"
@@ -554,7 +555,7 @@ Debugger::ActivateInputReader (const InputReaderSP &reader_sp)
if (in_fh)
{
struct termios in_fh_termios;
struct termios in_fh_termios;
int in_fd = fileno (in_fh);
if (::tcgetattr(in_fd, &in_fh_termios) == 0)
{

View File

@@ -203,8 +203,8 @@ ScriptInterpreterPython::ScriptInterpreterPython (CommandInterpreter &interprete
m_dictionary_name (interpreter.GetDebugger().GetInstanceName().AsCString()),
#if LLDB_CONFIG_TERMIOS_SUPPORTED
m_termios (),
#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED
m_termios_valid (false),
#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED
m_session_is_active (false),
m_pty_slave_is_open (false),
m_valid_session (true)
@@ -1434,12 +1434,10 @@ ScriptInterpreterPython::RunEmbeddedPythonInterpreter (lldb::thread_arg_t baton)
void
ScriptInterpreterPython::Initialize ()
{
Timer scoped_timer (__PRETTY_FUNCTION__, __PRETTY_FUNCTION__);
int input_fd = STDIN_FILENO;
#if LLDB_CONFIG_TERMIOS_SUPPORTED
int input_fd = STDIN_FILENO;
struct termios stdin_termios;
bool valid_termios = ::tcgetattr (input_fd, &stdin_termios) == 0;
#endif // #if LLDB_CONFIG_TERMIOS_SUPPORTED