Files
clang-p2996/lldb/source/Plugins/Platform/Linux/PlatformLinux.h
Greg Clayton ea5e0cc320 Enabled the PlatformLinux and PlatforFreeBSD on MacOSX so they can be used
and also so we don't break them with our code changes.

The _only_ plug-ins that should be #ifdef'ed out and not compiled in LLDB
are those that only work when running natively on the host system.

This fixed bot the PlatformLinux and PlatformFreeBSD build breakages that
were due to ModuleSpec changes.

llvm-svn: 151539
2012-02-27 19:12:12 +00:00

124 lines
3.3 KiB
C++

//===-- PlatformLinux.h -----------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_PlatformLinux_h_
#define liblldb_PlatformLinux_h_
// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
#include "lldb/Target/Platform.h"
namespace lldb_private {
class PlatformLinux : public Platform
{
public:
static void
Initialize ();
static void
Terminate ();
PlatformLinux (bool is_host);
virtual
~PlatformLinux();
//------------------------------------------------------------
// lldb_private::PluginInterface functions
//------------------------------------------------------------
static Platform *
CreateInstance ();
static const char *
GetPluginNameStatic();
static const char *
GetShortPluginNameStatic(bool is_host);
static const char *
GetPluginDescriptionStatic(bool is_host);
virtual const char *
GetPluginName()
{
return GetPluginNameStatic();
}
virtual const char *
GetShortPluginName()
{
return "PlatformLinux";
}
virtual uint32_t
GetPluginVersion()
{
return 1;
}
//------------------------------------------------------------
// lldb_private::Platform functions
//------------------------------------------------------------
virtual Error
ResolveExecutable (const FileSpec &exe_file,
const ArchSpec &arch,
lldb::ModuleSP &module_sp,
const FileSpecList *module_search_paths_ptr);
virtual const char *
GetDescription ()
{
return GetPluginDescriptionStatic(IsHost());
}
virtual void
GetStatus (Stream &strm);
virtual Error
GetFile (const FileSpec &platform_file,
const UUID* uuid, FileSpec &local_file);
virtual bool
GetProcessInfo (lldb::pid_t pid, ProcessInstanceInfo &proc_info);
virtual bool
GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch);
virtual size_t
GetSoftwareBreakpointTrapOpcode (Target &target,
BreakpointSite *bp_site);
virtual lldb_private::Error
LaunchProcess (lldb_private::ProcessLaunchInfo &launch_info);
virtual lldb::ProcessSP
Attach(ProcessAttachInfo &attach_info, Debugger &debugger,
Target *target, Listener &listener, Error &error);
// Linux processes can not be launched by spawning and attaching.
virtual bool
CanDebugProcess ()
{
return false;
}
protected:
lldb::PlatformSP m_remote_platform_sp; // Allow multiple ways to connect to a remote darwin OS
private:
DISALLOW_COPY_AND_ASSIGN (PlatformLinux);
};
} // namespace lldb_private
#endif // liblldb_PlatformLinux_h_