ProcessLinux.h revision 451a54e89fd311bd908fa0d79b1d8c6d30cd96c0
1//===-- ProcessLinux.h ------------------------------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef liblldb_ProcessLinux_H_ 11#define liblldb_ProcessLinux_H_ 12 13// C Includes 14 15// C++ Includes 16#include <queue> 17 18// Other libraries and framework includes 19#include "lldb/Target/Process.h" 20#include "LinuxSignals.h" 21#include "ProcessMessage.h" 22#include "ProcessPOSIX.h" 23 24class ProcessMonitor; 25 26class ProcessLinux : 27 public ProcessPOSIX 28{ 29public: 30 //------------------------------------------------------------------ 31 // Static functions. 32 //------------------------------------------------------------------ 33 static lldb::ProcessSP 34 CreateInstance(lldb_private::Target& target, 35 lldb_private::Listener &listener, 36 const lldb_private::FileSpec *); 37 38 static void 39 Initialize(); 40 41 static void 42 Terminate(); 43 44 static lldb_private::ConstString 45 GetPluginNameStatic(); 46 47 static const char * 48 GetPluginDescriptionStatic(); 49 50 //------------------------------------------------------------------ 51 // Constructors and destructors 52 //------------------------------------------------------------------ 53 ProcessLinux(lldb_private::Target& target, 54 lldb_private::Listener &listener); 55 56 virtual bool 57 UpdateThreadList(lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list); 58 //------------------------------------------------------------------ 59 // PluginInterface protocol 60 //------------------------------------------------------------------ 61 virtual lldb_private::ConstString 62 GetPluginName(); 63 64 virtual uint32_t 65 GetPluginVersion(); 66 67 virtual void 68 GetPluginCommandHelp(const char *command, lldb_private::Stream *strm); 69 70 virtual lldb_private::Error 71 ExecutePluginCommand(lldb_private::Args &command, 72 lldb_private::Stream *strm); 73 74 virtual lldb_private::Log * 75 EnablePluginLogging(lldb_private::Stream *strm, 76 lldb_private::Args &command); 77 78 //------------------------------------------------------------------ 79 // Plug-in process overrides 80 //------------------------------------------------------------------ 81 virtual lldb_private::UnixSignals & 82 GetUnixSignals () 83 { 84 return m_linux_signals; 85 } 86 87private: 88 89 /// Linux-specific signal set. 90 LinuxSignals m_linux_signals; 91 92}; 93 94#endif // liblldb_MacOSXProcess_H_ 95