Files
clang-p2996/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.h
Greg Clayton b9a01b3990 Made a ModuleSpec class in Module.h which can specify a module using one or
more of the local path, platform path, associated symbol file, UUID, arch,
object name and object offset. This allows many of the calls that were
GetSharedModule to reduce the number of arguments that were used in a call
to these functions. It also allows a module to be created with a ModuleSpec
which allows many things to be specified prior to any accessors being called
on the Module class itself. 

I was running into problems when adding support for "target symbol add"
where you can specify a stand alone debug info file after debugging has started
where I needed to specify the associated symbol file path and if I waited until
after construction, the wrong  symbol file had already been located. By using
the ModuleSpec it allows us to construct a module with as little or as much
information as needed and not have to change the parameter list.

llvm-svn: 151476
2012-02-26 05:51:37 +00:00

129 lines
3.6 KiB
C++

//===-- PlatformRemoteiOS.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_PlatformRemoteiOS_h_
#define liblldb_PlatformRemoteiOS_h_
// C Includes
// C++ Includes
// Other libraries and framework includes
// Project includes
#include "PlatformDarwin.h"
class PlatformRemoteiOS : public PlatformDarwin
{
public:
//------------------------------------------------------------
// Class Functions
//------------------------------------------------------------
static lldb_private::Platform*
CreateInstance ();
static void
Initialize ();
static void
Terminate ();
static const char *
GetPluginNameStatic ();
static const char *
GetShortPluginNameStatic();
static const char *
GetDescriptionStatic();
//------------------------------------------------------------
// Class Methods
//------------------------------------------------------------
PlatformRemoteiOS ();
virtual
~PlatformRemoteiOS();
//------------------------------------------------------------
// lldb_private::PluginInterface functions
//------------------------------------------------------------
virtual const char *
GetPluginName()
{
return GetPluginNameStatic();
}
virtual const char *
GetShortPluginName()
{
return GetShortPluginNameStatic();
}
virtual uint32_t
GetPluginVersion()
{
return 1;
}
//------------------------------------------------------------
// lldb_private::Platform functions
//------------------------------------------------------------
virtual lldb_private::Error
ResolveExecutable (const lldb_private::FileSpec &exe_file,
const lldb_private::ArchSpec &arch,
lldb::ModuleSP &module_sp,
const lldb_private::FileSpecList *module_search_paths_ptr);
virtual const char *
GetDescription ()
{
return GetDescriptionStatic();
}
virtual void
GetStatus (lldb_private::Stream &strm);
virtual lldb_private::Error
GetFile (const lldb_private::FileSpec &platform_file,
const lldb_private::UUID *uuid_ptr,
lldb_private::FileSpec &local_file);
virtual lldb_private::Error
GetSharedModule (const lldb_private::ModuleSpec &module_spec,
lldb::ModuleSP &module_sp,
const lldb_private::FileSpecList *module_search_paths_ptr,
lldb::ModuleSP *old_module_sp_ptr,
bool *did_create_ptr);
virtual uint32_t
FindProcesses (const lldb_private::ProcessInstanceInfoMatch &match_info,
lldb_private::ProcessInstanceInfoList &process_infos);
virtual bool
GetProcessInfo (lldb::pid_t pid,
lldb_private::ProcessInstanceInfo &proc_info);
virtual bool
GetSupportedArchitectureAtIndex (uint32_t idx,
lldb_private::ArchSpec &arch);
protected:
std::string m_device_support_directory_for_os_version;
std::string m_build_update;
//std::vector<FileSpec> m_device_support_os_dirs;
const char *
GetDeviceSupportDirectoryForOSVersion();
private:
DISALLOW_COPY_AND_ASSIGN (PlatformRemoteiOS);
};
#endif // liblldb_PlatformRemoteiOS_h_