diff options
Diffstat (limited to 'source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h')
| -rw-r--r-- | source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h | 84 | 
1 files changed, 65 insertions, 19 deletions
diff --git a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h index d5535bbb1df3..564afbb2911c 100644 --- a/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h +++ b/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h @@ -38,7 +38,6 @@ public:      //------------------------------------------------------------------      GDBRemoteCommunicationClient(bool is_platform); -    virtual      ~GDBRemoteCommunicationClient();      //------------------------------------------------------------------ @@ -65,10 +64,16 @@ public:                                            size_t packet_length,                                            StringExtractorGDBRemote &response); -    virtual bool +    bool      GetThreadSuffixSupported (); -    void +    // This packet is usually sent first and the boolean return value +    // indicates if the packet was send and any response was received +    // even in the response is UNIMPLEMENTED. If the packet failed to +    // get a response, then false is returned. This quickly tells us +    // if we were able to connect and communicte with the remote GDB +    // server +    bool      QueryNoAckModeSupported ();      void @@ -109,7 +114,7 @@ public:      ///     response was received.      //------------------------------------------------------------------      int -    SendArgumentsPacket (char const *argv[]); +    SendArgumentsPacket (const lldb_private::ProcessLaunchInfo &launch_info);      //------------------------------------------------------------------      /// Sends a "QEnvironment:NAME=VALUE" packet that will build up the @@ -185,7 +190,10 @@ public:      //------------------------------------------------------------------      /// Sets the working directory to \a path for a process that will  -    /// be launched with the 'A' packet. +    /// be launched with the 'A' packet for non platform based +    /// connections. If this packet is sent to a GDB server that +    /// implements the platform, it will change the current working +    /// directory for the platform process.      ///      /// @param[in] path      ///     The path to a directory to use when launching our processs @@ -196,6 +204,19 @@ public:      int      SetWorkingDir (char const *path); +    //------------------------------------------------------------------ +    /// Gets the current working directory of a remote platform GDB +    /// server. +    /// +    /// @param[out] cwd +    ///     The current working directory on the remote platform. +    /// +    /// @return +    ///     Boolean for success +    //------------------------------------------------------------------ +    bool +    GetWorkingDir (std::string &cwd); +      lldb::addr_t      AllocateMemory (size_t size, uint32_t permissions); @@ -356,45 +377,54 @@ public:          return m_interrupt_sent;      } -    virtual lldb::user_id_t +    lldb::user_id_t      OpenFile (const lldb_private::FileSpec& file_spec,                uint32_t flags,                mode_t mode,                lldb_private::Error &error); -    virtual bool +    bool      CloseFile (lldb::user_id_t fd,                 lldb_private::Error &error); -    virtual lldb::user_id_t +    lldb::user_id_t      GetFileSize (const lldb_private::FileSpec& file_spec); -    virtual uint32_t -    GetFilePermissions(const lldb_private::FileSpec& file_spec, -                       lldb_private::Error &error); +    lldb_private::Error +    GetFilePermissions(const char *path, uint32_t &file_permissions); + +    lldb_private::Error +    SetFilePermissions(const char *path, uint32_t file_permissions); -    virtual uint64_t +    uint64_t      ReadFile (lldb::user_id_t fd,                uint64_t offset,                void *dst,                uint64_t dst_len,                lldb_private::Error &error); -    virtual uint64_t +    uint64_t      WriteFile (lldb::user_id_t fd,                 uint64_t offset,                 const void* src,                 uint64_t src_len,                 lldb_private::Error &error); -    virtual uint32_t -    MakeDirectory (const std::string &path, -                   mode_t mode); +    lldb_private::Error +    CreateSymlink (const char *src, +                   const char *dst); -    virtual bool +    lldb_private::Error +    Unlink (const char *path); + +    lldb_private::Error +    MakeDirectory (const char *path, +                   uint32_t mode); +     +    bool      GetFileExists (const lldb_private::FileSpec& file_spec); -    virtual lldb_private::Error +    lldb_private::Error      RunShellCommand (const char *command,           // Shouldn't be NULL                       const char *working_dir,       // Pass NULL to use the current working directory                       int *status_ptr,               // Pass NULL if you don't want the process exit status @@ -402,7 +432,7 @@ public:                       std::string *command_output,   // Pass NULL if you don't want the command output                       uint32_t timeout_sec);         // Timeout in seconds to wait for shell program to finish -    virtual bool +    bool      CalculateMD5 (const lldb_private::FileSpec& file_spec,                    uint64_t &high,                    uint64_t &low); @@ -411,6 +441,21 @@ public:      HarmonizeThreadIdsForProfileData (ProcessGDBRemote *process,                                        StringExtractorGDBRemote &inputStringExtractor); +    bool +    ReadRegister(lldb::tid_t tid, +                 uint32_t reg_num, +                 StringExtractorGDBRemote &response); + +    bool +    ReadAllRegisters (lldb::tid_t tid, +                      StringExtractorGDBRemote &response); + +    bool +    SaveRegisterState (lldb::tid_t tid, uint32_t &save_id); +     +    bool +    RestoreRegisterState (lldb::tid_t tid, uint32_t save_id); +      protected:      bool @@ -438,6 +483,7 @@ protected:      lldb_private::LazyBool m_attach_or_wait_reply;      lldb_private::LazyBool m_prepare_for_reg_writing_reply;      lldb_private::LazyBool m_supports_p; +    lldb_private::LazyBool m_supports_QSaveRegisterState;      bool          m_supports_qProcessInfoPID:1,  | 
