diff options
| author | Deepak Panickal <deepak@codeplay.com> | 2013-10-15 12:32:12 +0000 |
|---|---|---|
| committer | Deepak Panickal <deepak@codeplay.com> | 2013-10-15 12:32:12 +0000 |
| commit | a0154f98dbd68ede5a02f1ec6bfb363511aee36a (patch) | |
| tree | 254778c59538012aa8f3ff849dde7e7f95c39f5a /lldb/source/Plugins/Platform/Windows/PlatformWindows.h | |
| parent | 7ac0b2b0e1f683e11b074d61c8a915560ab74588 (diff) | |
| download | bcm5719-llvm-a0154f98dbd68ede5a02f1ec6bfb363511aee36a.tar.gz bcm5719-llvm-a0154f98dbd68ede5a02f1ec6bfb363511aee36a.zip | |
Patch to add PlatformWindows, based on Carlo Kok's version from the Windows branch.
llvm-svn: 192693
Diffstat (limited to 'lldb/source/Plugins/Platform/Windows/PlatformWindows.h')
| -rw-r--r-- | lldb/source/Plugins/Platform/Windows/PlatformWindows.h | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/lldb/source/Plugins/Platform/Windows/PlatformWindows.h b/lldb/source/Plugins/Platform/Windows/PlatformWindows.h new file mode 100644 index 00000000000..67d3e88fedd --- /dev/null +++ b/lldb/source/Plugins/Platform/Windows/PlatformWindows.h @@ -0,0 +1,160 @@ +//===-- PlatformWindows.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_PlatformWindows_h_ +#define liblldb_PlatformWindows_h_ + +// C Includes +// C++ Includes +// Other libraries and framework includes +// Project includes +#include "lldb/Target/Platform.h" + +namespace lldb_private +{ + +class PlatformWindows : public Platform +{ +public: + + static void + Initialize(void); + + static void + Terminate(void); + + PlatformWindows(bool is_host); + + virtual + ~PlatformWindows(void); + + //------------------------------------------------------------ + // lldb_private::PluginInterface functions + //------------------------------------------------------------ + static lldb_private::Platform* + CreateInstance (bool force, const lldb_private::ArchSpec *arch); + + + static lldb_private::ConstString + GetPluginNameStatic(bool is_host); + + static const char * + GetPluginDescriptionStatic(bool is_host); + + virtual lldb_private::ConstString + GetPluginName(void); + + virtual uint32_t + GetPluginVersion(void) + { + 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(void) + { + return GetPluginDescriptionStatic(IsHost()); + } + + virtual size_t + GetSoftwareBreakpointTrapOpcode(lldb_private::Target &target, + lldb_private::BreakpointSite *bp_site); + + virtual bool + GetRemoteOSVersion(void); + + virtual bool + GetRemoteOSBuildString(std::string &s); + + virtual bool + GetRemoteOSKernelDescription(std::string &s); + + // Remote Platform subclasses need to override this function + virtual lldb_private::ArchSpec + GetRemoteSystemArchitecture(void); + + virtual bool + IsConnected(void) const; + + virtual lldb_private::Error + ConnectRemote(lldb_private::Args& args); + + virtual lldb_private::Error + DisconnectRemote( void ); + + virtual const char * + GetHostname( void ); + + virtual const char * + GetUserName(uint32_t uid); + + virtual const char * + GetGroupName(uint32_t gid); + + virtual bool + GetProcessInfo(lldb::pid_t pid, + lldb_private::ProcessInstanceInfo &proc_info); + + virtual uint32_t + FindProcesses(const lldb_private::ProcessInstanceInfoMatch &match_info, + lldb_private::ProcessInstanceInfoList &process_infos); + + virtual lldb_private::Error + LaunchProcess(lldb_private::ProcessLaunchInfo &launch_info); + + virtual lldb::ProcessSP + Attach(lldb_private::ProcessAttachInfo &attach_info, + lldb_private::Debugger &debugger, + lldb_private::Target *target, + lldb_private::Listener &listener, + lldb_private::Error &error); + + virtual lldb_private::Error + GetFile(const lldb_private::FileSpec &platform_file, + const lldb_private::UUID* uuid, lldb_private::FileSpec &local_file); + + 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 bool + GetSupportedArchitectureAtIndex(uint32_t idx, lldb_private::ArchSpec &arch); + + virtual void + GetStatus(lldb_private::Stream &strm); + + // Local debugging not yet supported + virtual bool + CanDebugProcess(void) + { + return false; + } + +protected: + lldb::PlatformSP m_remote_platform_sp; + +private: + DISALLOW_COPY_AND_ASSIGN (PlatformWindows); +}; + +} + +#endif // liblldb_PlatformWindows_h_ |

