diff options
Diffstat (limited to 'lldb/scripts/Python/interface')
-rw-r--r-- | lldb/scripts/Python/interface/SBDebugger.i | 6 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBFileSpec.i | 6 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBModule.i | 6 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBPlatform.i | 187 | ||||
-rw-r--r-- | lldb/scripts/Python/interface/SBTarget.i | 19 |
5 files changed, 224 insertions, 0 deletions
diff --git a/lldb/scripts/Python/interface/SBDebugger.i b/lldb/scripts/Python/interface/SBDebugger.i index 43cc16e7394..6d075ace791 100644 --- a/lldb/scripts/Python/interface/SBDebugger.i +++ b/lldb/scripts/Python/interface/SBDebugger.i @@ -231,6 +231,12 @@ public: void SetSelectedTarget (lldb::SBTarget &target); + lldb::SBPlatform + GetSelectedPlatform(); + + void + SetSelectedPlatform(lldb::SBPlatform &platform); + lldb::SBSourceManager GetSourceManager (); diff --git a/lldb/scripts/Python/interface/SBFileSpec.i b/lldb/scripts/Python/interface/SBFileSpec.i index 07d97babbee..2195434922c 100644 --- a/lldb/scripts/Python/interface/SBFileSpec.i +++ b/lldb/scripts/Python/interface/SBFileSpec.i @@ -58,6 +58,12 @@ public: const char * GetDirectory() const; + void + SetFilename(const char *filename); + + void + SetDirectory(const char *directory); + uint32_t GetPath (char *dst_path, size_t dst_len) const; diff --git a/lldb/scripts/Python/interface/SBModule.i b/lldb/scripts/Python/interface/SBModule.i index fdf017754d0..21f9dcc4055 100644 --- a/lldb/scripts/Python/interface/SBModule.i +++ b/lldb/scripts/Python/interface/SBModule.i @@ -148,6 +148,12 @@ public: bool SetPlatformFileSpec (const lldb::SBFileSpec &platform_file); + + lldb::SBFileSpec + GetRemoteInstallFileSpec (); + + bool + SetRemoteInstallFileSpec (lldb::SBFileSpec &file); %feature("docstring", "Returns the UUID of the module as a Python string." ) GetUUIDString; diff --git a/lldb/scripts/Python/interface/SBPlatform.i b/lldb/scripts/Python/interface/SBPlatform.i new file mode 100644 index 00000000000..ef03b0c11c4 --- /dev/null +++ b/lldb/scripts/Python/interface/SBPlatform.i @@ -0,0 +1,187 @@ +//===-- SWIG Interface for SBPlatform ---------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +namespace lldb { + + +class SBPlatformConnectOptions +{ +public: + SBPlatformConnectOptions (const char *url); + + SBPlatformConnectOptions (const SBPlatformConnectOptions &rhs); + + ~SBPlatformConnectOptions (); + + const char * + GetURL(); + + void + SetURL(const char *url); + + bool + GetRsyncEnabled(); + + void + EnableRsync (const char *options, + const char *remote_path_prefix, + bool omit_remote_hostname); + + void + DisableRsync (); + + const char * + GetLocalCacheDirectory(); + + void + SetLocalCacheDirectory(const char *path); +}; + +class SBPlatformShellCommand +{ +public: + SBPlatformShellCommand (const char *shell_command); + + SBPlatformShellCommand (const SBPlatformShellCommand &rhs); + + ~SBPlatformShellCommand(); + + void + Clear(); + + const char * + GetCommand(); + + void + SetCommand(const char *shell_command); + + const char * + GetWorkingDirectory (); + + void + SetWorkingDirectory (const char *path); + + uint32_t + GetTimeoutSeconds (); + + void + SetTimeoutSeconds (uint32_t sec); + + int + GetSignal (); + + int + GetStatus (); + + const char * + GetOutput (); +}; + +%feature("docstring", +"A class that represents the a platform that can represent the current host or a remote host debug platform. + +The SBPlatform class represents the current host, or a remote host. +It can be connected to a remote platform in order to provide ways +to remotely launch and attach to processes, upload/download files, +create directories, run remote shell commands, find locally cached +versions of files from the remote system, and much more. + +SBPlatform objects can be created and then used to connect to a remote +platform which allows the SBPlatform to be used to get a list of the +current processes on the remote host, attach to one of those processes, +install programs on the remote system, attach and launch processes, +and much more. + +Every SBTarget has a corresponding SBPlatform. The platform can be +specified upon target creation, or the currently selected platform +will attempt to be used when creating the target automatically as long +as the currently selected platform matches the target architecture +and executable type. If the architecture or executable type do not match, +a suitable platform will be found automatically." + +) SBPlatform; +class SBPlatform +{ +public: + + SBPlatform (); + + SBPlatform (const char *); + + ~SBPlatform(); + + bool + IsValid () const; + + void + Clear (); + + const char * + GetWorkingDirectory(); + + bool + SetWorkingDirectory(const char *); + + const char * + GetName (); + + SBError + ConnectRemote (lldb::SBPlatformConnectOptions &connect_options); + + void + DisconnectRemote (); + + bool + IsConnected(); + + const char * + GetTriple(); + + const char * + GetHostname (); + + const char * + GetOSBuild (); + + const char * + GetOSDescription (); + + uint32_t + GetOSMajorVersion (); + + uint32_t + GetOSMinorVersion (); + + uint32_t + GetOSUpdateVersion (); + + lldb::SBError + Get (lldb::SBFileSpec &src, lldb::SBFileSpec &dst); + + lldb::SBError + Put (lldb::SBFileSpec &src, lldb::SBFileSpec &dst); + + lldb::SBError + Install (lldb::SBFileSpec &src, lldb::SBFileSpec &dst); + + lldb::SBError + Run (lldb::SBPlatformShellCommand &shell_command); + + lldb::SBError + MakeDirectory (const char *path, uint32_t file_permissions = lldb::eFilePermissionsDirectoryDefault); + + uint32_t + GetFilePermissions (const char *path); + + lldb::SBError + SetFilePermissions (const char *path, uint32_t file_permissions); + +}; + +} // namespace lldb diff --git a/lldb/scripts/Python/interface/SBTarget.i b/lldb/scripts/Python/interface/SBTarget.i index d259d924854..92518fee602 100644 --- a/lldb/scripts/Python/interface/SBTarget.i +++ b/lldb/scripts/Python/interface/SBTarget.i @@ -266,6 +266,25 @@ public: %feature("docstring", " //------------------------------------------------------------------ + /// Install any binaries that need to be installed. + /// + /// This function does nothing when debugging on the host system. + /// When connected to remote platforms, the target's main executable + /// and any modules that have their install path set will be + /// installed on the remote platform. If the main executable doesn't + /// have an install location set, it will be installed in the remote + /// platform's working directory. + /// + /// @return + /// An error describing anything that went wrong during + /// installation. + //------------------------------------------------------------------ + ") Install; + lldb::SBError + Install(); + + %feature("docstring", " + //------------------------------------------------------------------ /// Launch a new process. /// /// Launch a new process by spawning a new process using the |