Tracking modules down when you have a UUID and a path has been improved. DynamicLoaderDarwinKernel no longer parses mach-o load commands and it now uses the memory based modules now that we can load modules from memory. Added a target setting named "target.exec-search-paths" which can be used to supply a list of directories to use when trying to look for executables. This allows one or more directories to be used when searching for modules that may not exist in the SDK/PDK. The target automatically adds the directory for the main executable to this list so this should help us in tracking down shared libraries and other binaries. llvm-svn: 150426
137 lines
3.9 KiB
C++
137 lines
3.9 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::FileSpec &platform_file,
|
|
const lldb_private::ArchSpec &arch,
|
|
const lldb_private::UUID *uuid_ptr,
|
|
const lldb_private::ConstString *object_name_ptr,
|
|
off_t object_offset,
|
|
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;
|
|
std::string m_device_support_directory_for_os_version;
|
|
std::string m_build_update;
|
|
//std::vector<FileSpec> m_device_support_os_dirs;
|
|
|
|
const char *
|
|
GetDeviceSupportDirectory();
|
|
|
|
const char *
|
|
GetDeviceSupportDirectoryForOSVersion();
|
|
|
|
private:
|
|
DISALLOW_COPY_AND_ASSIGN (PlatformRemoteiOS);
|
|
|
|
};
|
|
|
|
#endif // liblldb_PlatformRemoteiOS_h_
|