aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/API/SBData.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/API/SBData.h')
-rw-r--r--include/lldb/API/SBData.h283
1 files changed, 129 insertions, 154 deletions
diff --git a/include/lldb/API/SBData.h b/include/lldb/API/SBData.h
index a2bd72fad570..7aa4ea0ff8d0 100644
--- a/include/lldb/API/SBData.h
+++ b/include/lldb/API/SBData.h
@@ -14,168 +14,143 @@
namespace lldb {
-class LLDB_API SBData
-{
+class LLDB_API SBData {
public:
+ SBData();
+
+ SBData(const SBData &rhs);
+
+ const SBData &operator=(const SBData &rhs);
+
+ ~SBData();
+
+ uint8_t GetAddressByteSize();
+
+ void SetAddressByteSize(uint8_t addr_byte_size);
+
+ void Clear();
+
+ bool IsValid();
+
+ size_t GetByteSize();
+
+ lldb::ByteOrder GetByteOrder();
+
+ void SetByteOrder(lldb::ByteOrder endian);
+
+ float GetFloat(lldb::SBError &error, lldb::offset_t offset);
+
+ double GetDouble(lldb::SBError &error, lldb::offset_t offset);
+
+ long double GetLongDouble(lldb::SBError &error, lldb::offset_t offset);
+
+ lldb::addr_t GetAddress(lldb::SBError &error, lldb::offset_t offset);
+
+ uint8_t GetUnsignedInt8(lldb::SBError &error, lldb::offset_t offset);
+
+ uint16_t GetUnsignedInt16(lldb::SBError &error, lldb::offset_t offset);
+
+ uint32_t GetUnsignedInt32(lldb::SBError &error, lldb::offset_t offset);
+
+ uint64_t GetUnsignedInt64(lldb::SBError &error, lldb::offset_t offset);
+
+ int8_t GetSignedInt8(lldb::SBError &error, lldb::offset_t offset);
+
+ int16_t GetSignedInt16(lldb::SBError &error, lldb::offset_t offset);
+
+ int32_t GetSignedInt32(lldb::SBError &error, lldb::offset_t offset);
+
+ int64_t GetSignedInt64(lldb::SBError &error, lldb::offset_t offset);
+
+ const char *GetString(lldb::SBError &error, lldb::offset_t offset);
+
+ size_t ReadRawData(lldb::SBError &error, lldb::offset_t offset, void *buf,
+ size_t size);
+
+ bool GetDescription(lldb::SBStream &description,
+ lldb::addr_t base_addr = LLDB_INVALID_ADDRESS);
+
+ // it would be nice to have SetData(SBError, const void*, size_t) when
+ // endianness and address size can be
+ // inferred from the existing DataExtractor, but having two SetData()
+ // signatures triggers a SWIG bug where
+ // the typemap isn't applied before resolving the overload, and thus the right
+ // function never gets called
+ void SetData(lldb::SBError &error, const void *buf, size_t size,
+ lldb::ByteOrder endian, uint8_t addr_size);
+
+ // see SetData() for why we don't have Append(const void* buf, size_t size)
+ bool Append(const SBData &rhs);
+
+ static lldb::SBData CreateDataFromCString(lldb::ByteOrder endian,
+ uint32_t addr_byte_size,
+ const char *data);
+
+ // in the following CreateData*() and SetData*() prototypes, the two
+ // parameters array and array_len
+ // should not be renamed or rearranged, because doing so will break the SWIG
+ // typemap
+ static lldb::SBData CreateDataFromUInt64Array(lldb::ByteOrder endian,
+ uint32_t addr_byte_size,
+ uint64_t *array,
+ size_t array_len);
+
+ static lldb::SBData CreateDataFromUInt32Array(lldb::ByteOrder endian,
+ uint32_t addr_byte_size,
+ uint32_t *array,
+ size_t array_len);
+
+ static lldb::SBData CreateDataFromSInt64Array(lldb::ByteOrder endian,
+ uint32_t addr_byte_size,
+ int64_t *array,
+ size_t array_len);
+
+ static lldb::SBData CreateDataFromSInt32Array(lldb::ByteOrder endian,
+ uint32_t addr_byte_size,
+ int32_t *array,
+ size_t array_len);
+
+ static lldb::SBData CreateDataFromDoubleArray(lldb::ByteOrder endian,
+ uint32_t addr_byte_size,
+ double *array,
+ size_t array_len);
+
+ bool SetDataFromCString(const char *data);
+
+ bool SetDataFromUInt64Array(uint64_t *array, size_t array_len);
+
+ bool SetDataFromUInt32Array(uint32_t *array, size_t array_len);
+
+ bool SetDataFromSInt64Array(int64_t *array, size_t array_len);
+
+ bool SetDataFromSInt32Array(int32_t *array, size_t array_len);
+
+ bool SetDataFromDoubleArray(double *array, size_t array_len);
- SBData ();
-
- SBData (const SBData &rhs);
-
- const SBData &
- operator = (const SBData &rhs);
-
- ~SBData ();
-
- uint8_t
- GetAddressByteSize ();
-
- void
- SetAddressByteSize (uint8_t addr_byte_size);
-
- void
- Clear ();
-
- bool
- IsValid();
-
- size_t
- GetByteSize ();
-
- lldb::ByteOrder
- GetByteOrder();
-
- void
- SetByteOrder (lldb::ByteOrder endian);
-
- float
- GetFloat (lldb::SBError& error, lldb::offset_t offset);
-
- double
- GetDouble (lldb::SBError& error, lldb::offset_t offset);
-
- long double
- GetLongDouble (lldb::SBError& error, lldb::offset_t offset);
-
- lldb::addr_t
- GetAddress (lldb::SBError& error, lldb::offset_t offset);
-
- uint8_t
- GetUnsignedInt8 (lldb::SBError& error, lldb::offset_t offset);
-
- uint16_t
- GetUnsignedInt16 (lldb::SBError& error, lldb::offset_t offset);
-
- uint32_t
- GetUnsignedInt32 (lldb::SBError& error, lldb::offset_t offset);
-
- uint64_t
- GetUnsignedInt64 (lldb::SBError& error, lldb::offset_t offset);
-
- int8_t
- GetSignedInt8 (lldb::SBError& error, lldb::offset_t offset);
-
- int16_t
- GetSignedInt16 (lldb::SBError& error, lldb::offset_t offset);
-
- int32_t
- GetSignedInt32 (lldb::SBError& error, lldb::offset_t offset);
-
- int64_t
- GetSignedInt64 (lldb::SBError& error, lldb::offset_t offset);
-
- const char*
- GetString (lldb::SBError& error, lldb::offset_t offset);
-
- size_t
- ReadRawData (lldb::SBError& error,
- lldb::offset_t offset,
- void *buf,
- size_t size);
-
- bool
- GetDescription (lldb::SBStream &description, lldb::addr_t base_addr = LLDB_INVALID_ADDRESS);
-
- // it would be nice to have SetData(SBError, const void*, size_t) when endianness and address size can be
- // inferred from the existing DataExtractor, but having two SetData() signatures triggers a SWIG bug where
- // the typemap isn't applied before resolving the overload, and thus the right function never gets called
- void
- SetData (lldb::SBError& error, const void *buf, size_t size, lldb::ByteOrder endian, uint8_t addr_size);
-
- // see SetData() for why we don't have Append(const void* buf, size_t size)
- bool
- Append (const SBData& rhs);
-
- static lldb::SBData
- CreateDataFromCString (lldb::ByteOrder endian, uint32_t addr_byte_size, const char* data);
-
- // in the following CreateData*() and SetData*() prototypes, the two parameters array and array_len
- // should not be renamed or rearranged, because doing so will break the SWIG typemap
- static lldb::SBData
- CreateDataFromUInt64Array (lldb::ByteOrder endian, uint32_t addr_byte_size, uint64_t* array, size_t array_len);
-
- static lldb::SBData
- CreateDataFromUInt32Array (lldb::ByteOrder endian, uint32_t addr_byte_size, uint32_t* array, size_t array_len);
-
- static lldb::SBData
- CreateDataFromSInt64Array (lldb::ByteOrder endian, uint32_t addr_byte_size, int64_t* array, size_t array_len);
-
- static lldb::SBData
- CreateDataFromSInt32Array (lldb::ByteOrder endian, uint32_t addr_byte_size, int32_t* array, size_t array_len);
-
- static lldb::SBData
- CreateDataFromDoubleArray (lldb::ByteOrder endian, uint32_t addr_byte_size, double* array, size_t array_len);
-
- bool
- SetDataFromCString (const char* data);
-
- bool
- SetDataFromUInt64Array (uint64_t* array, size_t array_len);
-
- bool
- SetDataFromUInt32Array (uint32_t* array, size_t array_len);
-
- bool
- SetDataFromSInt64Array (int64_t* array, size_t array_len);
-
- bool
- SetDataFromSInt32Array (int32_t* array, size_t array_len);
-
- bool
- SetDataFromDoubleArray (double* array, size_t array_len);
-
-
protected:
-
- // Mimic shared pointer...
- lldb_private::DataExtractor *
- get() const;
-
- lldb_private::DataExtractor *
- operator->() const;
-
- lldb::DataExtractorSP &
- operator*();
-
- const lldb::DataExtractorSP &
- operator*() const;
-
- SBData (const lldb::DataExtractorSP &data_sp);
-
- void
- SetOpaque (const lldb::DataExtractorSP &data_sp);
+ // Mimic shared pointer...
+ lldb_private::DataExtractor *get() const;
+
+ lldb_private::DataExtractor *operator->() const;
+
+ lldb::DataExtractorSP &operator*();
+
+ const lldb::DataExtractorSP &operator*() const;
+
+ SBData(const lldb::DataExtractorSP &data_sp);
+
+ void SetOpaque(const lldb::DataExtractorSP &data_sp);
private:
- friend class SBInstruction;
- friend class SBProcess;
- friend class SBSection;
- friend class SBTarget;
- friend class SBValue;
+ friend class SBInstruction;
+ friend class SBProcess;
+ friend class SBSection;
+ friend class SBTarget;
+ friend class SBValue;
- lldb::DataExtractorSP m_opaque_sp;
+ lldb::DataExtractorSP m_opaque_sp;
};
-
} // namespace lldb
#endif // LLDB_SBData_h_