diff options
3 files changed, 164 insertions, 158 deletions
diff --git a/lldb/source/Initialization/SystemInitializerCommon.cpp b/lldb/source/Initialization/SystemInitializerCommon.cpp index 716b3fff4f4..35189c103f7 100644 --- a/lldb/source/Initialization/SystemInitializerCommon.cpp +++ b/lldb/source/Initialization/SystemInitializerCommon.cpp @@ -106,7 +106,7 @@ SystemInitializerCommon::Initialize() ObjectFileELF::Initialize(); ObjectFilePECOFF::Initialize(); DynamicLoaderPOSIXDYLD::Initialize(); - PlatformFreeBSD::Initialize(); + platform_freebsd::PlatformFreeBSD::Initialize(); platform_linux::PlatformLinux::Initialize(); PlatformWindows::Initialize(); PlatformKalimba::Initialize(); @@ -152,7 +152,7 @@ SystemInitializerCommon::Terminate() ObjectFileELF::Terminate(); ObjectFilePECOFF::Terminate(); DynamicLoaderPOSIXDYLD::Terminate(); - PlatformFreeBSD::Terminate(); + platform_freebsd::PlatformFreeBSD::Terminate(); platform_linux::PlatformLinux::Terminate(); PlatformWindows::Terminate(); PlatformKalimba::Terminate(); diff --git a/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp b/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp index 5c7752679b6..9b3c5750111 100644 --- a/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp +++ b/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.cpp @@ -32,9 +32,10 @@ using namespace lldb; using namespace lldb_private; +using namespace lldb_private::platform_freebsd; PlatformSP -PlatformFreeBSD::CreateInstance (bool force, const lldb_private::ArchSpec *arch) +PlatformFreeBSD::CreateInstance(bool force, const ArchSpec *arch) { // The only time we create an instance is when we are creating a remote // freebsd platform @@ -68,8 +69,8 @@ PlatformFreeBSD::CreateInstance (bool force, const lldb_private::ArchSpec *arch) } -lldb_private::ConstString -PlatformFreeBSD::GetPluginNameStatic (bool is_host) +ConstString +PlatformFreeBSD::GetPluginNameStatic(bool is_host) { if (is_host) { @@ -133,7 +134,7 @@ PlatformFreeBSD::GetModuleSpec (const FileSpec& module_file_spec, return Platform::GetModuleSpec (module_file_spec, arch, module_spec); } -lldb_private::Error +Error PlatformFreeBSD::RunShellCommand(const char *command, const FileSpec &working_dir, int *status_ptr, diff --git a/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h b/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h index 119d0fd2982..67156e6ae37 100644 --- a/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h +++ b/lldb/source/Plugins/Platform/FreeBSD/PlatformFreeBSD.h @@ -16,162 +16,167 @@ // Project includes #include "lldb/Target/Platform.h" -class PlatformFreeBSD : public lldb_private::Platform -{ -public: - // Mostly taken from PlatformDarwin and PlatformMacOSX - - //------------------------------------------------------------ - // Class functions - //------------------------------------------------------------ - static lldb::PlatformSP - CreateInstance (bool force, const lldb_private::ArchSpec *arch); - - static void - Initialize (); - - static void - Terminate (); - - static lldb_private::ConstString - GetPluginNameStatic (bool is_host); - - static const char * - GetDescriptionStatic (bool is_host); - - //------------------------------------------------------------ - // Class Methods - //------------------------------------------------------------ - PlatformFreeBSD (bool is_host); - - virtual - ~PlatformFreeBSD(); - - //------------------------------------------------------------ - // lldb_private::PluginInterface functions - //------------------------------------------------------------ - lldb_private::ConstString - GetPluginName() override - { - return GetPluginNameStatic (IsHost()); - } +namespace lldb_private { +namespace platform_freebsd { - uint32_t - GetPluginVersion() override + class PlatformFreeBSD : public Platform { - return 1; - } + public: + + //------------------------------------------------------------ + // Class functions + //------------------------------------------------------------ + static lldb::PlatformSP + CreateInstance(bool force, const ArchSpec *arch); + + static void + Initialize (); + + static void + Terminate (); + + static ConstString + GetPluginNameStatic (bool is_host); + + static const char * + GetDescriptionStatic (bool is_host); + + //------------------------------------------------------------ + // Class Methods + //------------------------------------------------------------ + PlatformFreeBSD (bool is_host); + + virtual + ~PlatformFreeBSD(); + + //------------------------------------------------------------ + // lldb_private::PluginInterface functions + //------------------------------------------------------------ + ConstString + GetPluginName() override + { + return GetPluginNameStatic (IsHost()); + } + + uint32_t + GetPluginVersion() override + { + return 1; + } + + const char * + GetDescription () override + { + return GetDescriptionStatic(IsHost()); + } + + //------------------------------------------------------------ + // lldb_private::Platform functions + //------------------------------------------------------------ + bool + GetModuleSpec(const FileSpec& module_file_spec, + const ArchSpec& arch, + ModuleSpec &module_spec) override; + + Error + RunShellCommand(const char *command, + const FileSpec &working_dir, + int *status_ptr, + int *signo_ptr, + std::string *command_output, + uint32_t timeout_sec) override; + + Error + ResolveExecutable(const ModuleSpec &module_spec, + lldb::ModuleSP &module_sp, + const FileSpecList *module_search_paths_ptr) override; + + size_t + GetSoftwareBreakpointTrapOpcode(Target &target, + BreakpointSite *bp_site) override; + + bool + GetRemoteOSVersion () override; + + bool + GetRemoteOSBuildString (std::string &s) override; + + bool + GetRemoteOSKernelDescription (std::string &s) override; + + // Remote Platform subclasses need to override this function + ArchSpec + GetRemoteSystemArchitecture() override; + + bool + IsConnected () const override; + + Error + ConnectRemote(Args& args) override; + + Error + DisconnectRemote() override; + + const char * + GetHostname () override; + + const char * + GetUserName (uint32_t uid) override; + + const char * + GetGroupName (uint32_t gid) override; + + bool + GetProcessInfo(lldb::pid_t pid, + ProcessInstanceInfo &proc_info) override; + + uint32_t + FindProcesses(const ProcessInstanceInfoMatch &match_info, + ProcessInstanceInfoList &process_infos) override; + + Error + LaunchProcess(ProcessLaunchInfo &launch_info) override; + + lldb::ProcessSP + Attach(ProcessAttachInfo &attach_info, + Debugger &debugger, + Target *target, + Error &error) override; + + // FreeBSD processes can not be launched by spawning and attaching. + bool + CanDebugProcess () override { return false; } + + // Only on PlatformMacOSX: + Error + GetFileWithUUID(const FileSpec &platform_file, + const UUID* uuid, FileSpec &local_file) override; + + Error + GetSharedModule(const ModuleSpec &module_spec, + Process* process, + lldb::ModuleSP &module_sp, + const FileSpecList *module_search_paths_ptr, + lldb::ModuleSP *old_module_sp_ptr, + bool *did_create_ptr) override; + + bool + GetSupportedArchitectureAtIndex(uint32_t idx, ArchSpec &arch) override; + + void + GetStatus(Stream &strm) override; + + void + CalculateTrapHandlerSymbolNames () override; - const char * - GetDescription () override - { - return GetDescriptionStatic(IsHost()); - } + protected: + lldb::PlatformSP m_remote_platform_sp; // Allow multiple ways to connect to a remote freebsd OS - //------------------------------------------------------------ - // lldb_private::Platform functions - //------------------------------------------------------------ - bool - GetModuleSpec (const lldb_private::FileSpec& module_file_spec, - const lldb_private::ArchSpec& arch, - lldb_private::ModuleSpec &module_spec) override; - - lldb_private::Error - RunShellCommand(const char *command, - const lldb_private::FileSpec &working_dir, - int *status_ptr, - int *signo_ptr, - std::string *command_output, - uint32_t timeout_sec) override; - - lldb_private::Error - ResolveExecutable (const lldb_private::ModuleSpec &module_spec, - lldb::ModuleSP &module_sp, - const lldb_private::FileSpecList *module_search_paths_ptr) override; - - size_t - GetSoftwareBreakpointTrapOpcode (lldb_private::Target &target, - lldb_private::BreakpointSite *bp_site) override; - - bool - GetRemoteOSVersion () override; - - bool - GetRemoteOSBuildString (std::string &s) override; - - bool - GetRemoteOSKernelDescription (std::string &s) override; - - // Remote Platform subclasses need to override this function - lldb_private::ArchSpec - GetRemoteSystemArchitecture () override; - - bool - IsConnected () const override; - - lldb_private::Error - ConnectRemote (lldb_private::Args& args) override; - - lldb_private::Error - DisconnectRemote () override; - - const char * - GetHostname () override; - - const char * - GetUserName (uint32_t uid) override; - - const char * - GetGroupName (uint32_t gid) override; - - bool - GetProcessInfo (lldb::pid_t pid, - lldb_private::ProcessInstanceInfo &proc_info) override; - - uint32_t - FindProcesses (const lldb_private::ProcessInstanceInfoMatch &match_info, - lldb_private::ProcessInstanceInfoList &process_infos) override; - - lldb_private::Error - LaunchProcess (lldb_private::ProcessLaunchInfo &launch_info) override; - - lldb::ProcessSP - Attach(lldb_private::ProcessAttachInfo &attach_info, - lldb_private::Debugger &debugger, - lldb_private::Target *target, - lldb_private::Error &error) override; - - // FreeBSD processes can not be launched by spawning and attaching. - bool - CanDebugProcess () override { return false; } - - // Only on PlatformMacOSX: - lldb_private::Error - GetFileWithUUID (const lldb_private::FileSpec &platform_file, - const lldb_private::UUID* uuid, lldb_private::FileSpec &local_file) override; - - lldb_private::Error - GetSharedModule (const lldb_private::ModuleSpec &module_spec, - lldb_private::Process* process, - lldb::ModuleSP &module_sp, - const lldb_private::FileSpecList *module_search_paths_ptr, - lldb::ModuleSP *old_module_sp_ptr, - bool *did_create_ptr) override; - - bool - GetSupportedArchitectureAtIndex (uint32_t idx, lldb_private::ArchSpec &arch) override; - - void - GetStatus (lldb_private::Stream &strm) override; - - void - CalculateTrapHandlerSymbolNames () override; + private: + DISALLOW_COPY_AND_ASSIGN (PlatformFreeBSD); + }; -protected: - lldb::PlatformSP m_remote_platform_sp; // Allow multiple ways to connect to a remote freebsd OS - -private: - DISALLOW_COPY_AND_ASSIGN (PlatformFreeBSD); -}; +} // namespace platform_freebsd +} // namespace lldb_private #endif // liblldb_PlatformFreeBSD_h_ |