diff options
Diffstat (limited to 'include/lldb/Host/common/NativeProcessProtocol.h')
| -rw-r--r-- | include/lldb/Host/common/NativeProcessProtocol.h | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/include/lldb/Host/common/NativeProcessProtocol.h b/include/lldb/Host/common/NativeProcessProtocol.h index f05b8d01a1c9..2d48717c4fbb 100644 --- a/include/lldb/Host/common/NativeProcessProtocol.h +++ b/include/lldb/Host/common/NativeProcessProtocol.h @@ -32,6 +32,14 @@ namespace lldb_private {  class MemoryRegionInfo;  class ResumeActionList; +struct SVR4LibraryInfo { +  std::string name; +  lldb::addr_t link_map; +  lldb::addr_t base_addr; +  lldb::addr_t ld_addr; +  lldb::addr_t next; +}; +  // NativeProcessProtocol  class NativeProcessProtocol {  public: @@ -76,6 +84,31 @@ public:    Status ReadMemoryWithoutTrap(lldb::addr_t addr, void *buf, size_t size,                                 size_t &bytes_read); +  /// Reads a null terminated string from memory. +  /// +  /// Reads up to \p max_size bytes of memory until it finds a '\0'. +  /// If a '\0' is not found then it reads max_size-1 bytes as a string and a +  /// '\0' is added as the last character of the \p buffer. +  /// +  /// \param[in] addr +  ///     The address in memory to read from. +  /// +  /// \param[in] buffer +  ///     An allocated buffer with at least \p max_size size. +  /// +  /// \param[in] max_size +  ///     The maximum number of bytes to read from memory until it reads the +  ///     string. +  /// +  /// \param[out] total_bytes_read +  ///     The number of bytes read from memory into \p buffer. +  /// +  /// \return +  ///     Returns a StringRef backed up by the \p buffer passed in. +  llvm::Expected<llvm::StringRef> +  ReadCStringFromMemory(lldb::addr_t addr, char *buffer, size_t max_size, +                        size_t &total_bytes_read); +    virtual Status WriteMemory(lldb::addr_t addr, const void *buf, size_t size,                               size_t &bytes_written) = 0; @@ -86,6 +119,12 @@ public:    virtual lldb::addr_t GetSharedLibraryInfoAddress() = 0; +  virtual llvm::Expected<std::vector<SVR4LibraryInfo>> +  GetLoadedSVR4Libraries() { +    return llvm::createStringError(llvm::inconvertibleErrorCode(), +                                   "Not implemented"); +  } +    virtual bool IsAlive() const;    virtual size_t UpdateThreads() = 0; @@ -391,6 +430,8 @@ protected:    NativeProcessProtocol(lldb::pid_t pid, int terminal_fd,                          NativeDelegate &delegate); +  void SetID(lldb::pid_t pid) { m_pid = pid; } +    // interface for state handling    void SetState(lldb::StateType state, bool notify_delegates = true); | 
