|
LLDB mainline
|
#include <DWARFDataExtractor.h>
Public Member Functions | |
| DWARFDataExtractor ()=default | |
| DWARFDataExtractor (const DWARFDataExtractor &data, lldb::offset_t offset, lldb::offset_t length) | |
| llvm::DWARFDataExtractor | GetAsLLVMDWARF () const |
| llvm::DataExtractor | GetAsLLVM () const |
| Public Member Functions inherited from lldb_private::DataExtractor | |
| DataExtractor () | |
| Default constructor. | |
| DataExtractor (const void *data, lldb::offset_t data_length, lldb::ByteOrder byte_order, uint32_t addr_size, uint32_t target_byte_size=1) | |
| Construct with a buffer that is owned by the caller. | |
| DataExtractor (const lldb::DataBufferSP &data_sp, lldb::ByteOrder byte_order, uint32_t addr_size, uint32_t target_byte_size=1) | |
| Construct with shared data. | |
| DataExtractor (const DataExtractor &data, lldb::offset_t offset, lldb::offset_t length, uint32_t target_byte_size=1) | |
| Construct with a subset of data. | |
| DataExtractor (const DataExtractor &rhs) | |
| Copy constructor. | |
| const DataExtractor & | operator= (const DataExtractor &rhs) |
| Assignment operator. | |
| DataExtractor (DataExtractor &&rhs)=default | |
| Move constructor and move assignment operators to complete the rule of 5. | |
| DataExtractor & | operator= (DataExtractor &&rhs)=default |
| virtual | ~DataExtractor () |
| Destructor. | |
| uint32_t | getTargetByteSize () const |
| void | Clear () |
| Clears the object state. | |
| lldb::offset_t | PutToLog (Log *log, lldb::offset_t offset, lldb::offset_t length, uint64_t base_addr, uint32_t num_per_line, Type type) const |
| Dumps the binary data as type objects to stream s (or to Log() if s is nullptr) starting offset bytes into the data and stopping after dumping length bytes. | |
| size_t | ExtractBytes (lldb::offset_t offset, lldb::offset_t length, lldb::ByteOrder dst_byte_order, void *dst) const |
| Extract an arbitrary number of bytes in the specified byte order. | |
| uint64_t | GetAddress (lldb::offset_t *offset_ptr) const |
| Extract an address from *offset_ptr. | |
| uint64_t | GetAddress_unchecked (lldb::offset_t *offset_ptr) const |
| uint32_t | GetAddressByteSize () const |
| Get the current address size. | |
| uint64_t | GetByteSize () const |
| Get the number of bytes contained in this object. | |
| const char * | GetCStr (lldb::offset_t *offset_ptr) const |
| Extract a C string from *offset_ptr. | |
| const char * | GetCStr (lldb::offset_t *offset_ptr, lldb::offset_t len) const |
| Extract a C string from *offset_ptr with field size len. | |
| const void * | GetData (lldb::offset_t *offset_ptr, lldb::offset_t length) const |
| Extract length bytes from *offset_ptr. | |
| lldb::offset_t | CopyData (lldb::offset_t offset, lldb::offset_t length, void *dst) const |
| Copy length bytes from *offset, without swapping bytes. | |
| lldb::offset_t | CopyByteOrderedData (lldb::offset_t src_offset, lldb::offset_t src_len, void *dst, lldb::offset_t dst_len, lldb::ByteOrder dst_byte_order) const |
| Copy dst_len bytes from *offset_ptr and ensure the copied data is treated as a value that can be swapped to match the specified byte order. | |
| const uint8_t * | GetDataEnd () const |
| Get the data end pointer. | |
| size_t | GetSharedDataOffset () const |
| Get the shared data offset. | |
| const uint8_t * | GetDataStart () const |
| Get the data start pointer. | |
| float | GetFloat (lldb::offset_t *offset_ptr) const |
| Extract a float from *offset_ptr. | |
| double | GetDouble (lldb::offset_t *offset_ptr) const |
| long double | GetLongDouble (lldb::offset_t *offset_ptr) const |
| uint32_t | GetMaxU32 (lldb::offset_t *offset_ptr, size_t byte_size) const |
| Extract an integer of size byte_size from *offset_ptr. | |
| uint64_t | GetMaxU64 (lldb::offset_t *offset_ptr, size_t byte_size) const |
| Extract an unsigned integer of size byte_size from *offset_ptr. | |
| uint64_t | GetMaxU64_unchecked (lldb::offset_t *offset_ptr, size_t byte_size) const |
| int64_t | GetMaxS64 (lldb::offset_t *offset_ptr, size_t byte_size) const |
| Extract an signed integer of size byte_size from *offset_ptr. | |
| uint64_t | GetMaxU64Bitfield (lldb::offset_t *offset_ptr, size_t size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset) const |
| Extract an unsigned integer of size byte_size from *offset_ptr, then extract the bitfield from this value if bitfield_bit_size is non-zero. | |
| int64_t | GetMaxS64Bitfield (lldb::offset_t *offset_ptr, size_t size, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset) const |
| Extract an signed integer of size size from *offset_ptr, then extract and sign-extend the bitfield from this value if bitfield_bit_size is non-zero. | |
| lldb::ByteOrder | GetByteOrder () const |
| Get the current byte order value. | |
| uint8_t | GetU8 (lldb::offset_t *offset_ptr) const |
| Extract a uint8_t value from *offset_ptr. | |
| uint8_t | GetU8_unchecked (lldb::offset_t *offset_ptr) const |
| uint16_t | GetU16_unchecked (lldb::offset_t *offset_ptr) const |
| uint32_t | GetU32_unchecked (lldb::offset_t *offset_ptr) const |
| uint64_t | GetU64_unchecked (lldb::offset_t *offset_ptr) const |
| void * | GetU8 (lldb::offset_t *offset_ptr, void *dst, uint32_t count) const |
| Extract count uint8_t values from *offset_ptr. | |
| uint16_t | GetU16 (lldb::offset_t *offset_ptr) const |
| Extract a uint16_t value from *offset_ptr. | |
| void * | GetU16 (lldb::offset_t *offset_ptr, void *dst, uint32_t count) const |
| Extract count uint16_t values from *offset_ptr. | |
| uint32_t | GetU32 (lldb::offset_t *offset_ptr) const |
| Extract a uint32_t value from *offset_ptr. | |
| void * | GetU32 (lldb::offset_t *offset_ptr, void *dst, uint32_t count) const |
| Extract count uint32_t values from *offset_ptr. | |
| uint64_t | GetU64 (lldb::offset_t *offset_ptr) const |
| Extract a uint64_t value from *offset_ptr. | |
| void * | GetU64 (lldb::offset_t *offset_ptr, void *dst, uint32_t count) const |
| Extract count uint64_t values from *offset_ptr. | |
| int64_t | GetSLEB128 (lldb::offset_t *offset_ptr) const |
| Extract a signed LEB128 value from *offset_ptr. | |
| uint64_t | GetULEB128 (lldb::offset_t *offset_ptr) const |
| Extract a unsigned LEB128 value from *offset_ptr. | |
| lldb::DataBufferSP & | GetSharedDataBuffer () |
| const char * | PeekCStr (lldb::offset_t offset) const |
| Peek at a C string at offset. | |
| const uint8_t * | PeekData (lldb::offset_t offset, lldb::offset_t length) const |
| Peek at a bytes at offset. | |
| void | SetAddressByteSize (uint32_t addr_size) |
| Set the address byte size. | |
| lldb::offset_t | SetData (const void *bytes, lldb::offset_t length, lldb::ByteOrder byte_order) |
| Set data with a buffer that is caller owned. | |
| lldb::offset_t | SetData (const DataExtractor &data, lldb::offset_t offset, lldb::offset_t length) |
| Adopt a subset of data. | |
| lldb::offset_t | SetData (const lldb::DataBufferSP &data_sp, lldb::offset_t offset=0, lldb::offset_t length=LLDB_INVALID_OFFSET) |
| Adopt a subset of shared data in data_sp. | |
| void | SetByteOrder (lldb::ByteOrder byte_order) |
| Set the byte_order value. | |
| uint32_t | Skip_LEB128 (lldb::offset_t *offset_ptr) const |
| Skip an LEB128 number at *offset_ptr. | |
| bool | ValidOffset (lldb::offset_t offset) const |
| Test the validity of offset. | |
| bool | ValidOffsetForDataOfSize (lldb::offset_t offset, lldb::offset_t length) const |
| Test the availability of length bytes of data from offset. | |
| size_t | Copy (DataExtractor &dest_data) const |
| bool | Append (DataExtractor &rhs) |
| bool | Append (void *bytes, lldb::offset_t length) |
| lldb::offset_t | BytesLeft (lldb::offset_t offset) const |
| void | Checksum (llvm::SmallVectorImpl< uint8_t > &dest, uint64_t max_data=0) |
| llvm::ArrayRef< uint8_t > | GetData () const |
| llvm::DataExtractor | GetAsLLVM () const |
Additional Inherited Members | |
| Public Types inherited from lldb_private::DataExtractor | |
| enum | Type { TypeUInt8 , TypeChar , TypeUInt16 , TypeUInt32 , TypeUInt64 , TypePointer , TypeULEB128 , TypeSLEB128 } |
| Type enumerations used in the dump routines. More... | |
| Protected Member Functions inherited from lldb_private::DataExtractor | |
| template<typename T> | |
| T | Get (lldb::offset_t *offset_ptr, T fail_value) const |
| Protected Attributes inherited from lldb_private::DataExtractor | |
| const uint8_t * | m_start = nullptr |
| A pointer to the first byte of data. | |
| const uint8_t * | m_end |
| A pointer to the byte that is past the end of the data. | |
| lldb::ByteOrder | m_byte_order |
| The byte order of the data we are extracting from. | |
| uint32_t | m_addr_size |
| The address size to use when extracting addresses. | |
| lldb::DataBufferSP | m_data_sp |
| The shared pointer to data that can be shared among multiple instances. | |
| uint32_t | m_target_byte_size = 1 |
| Making it const would require implementation of move assignment operator. | |
Definition at line 17 of file DWARFDataExtractor.h.
|
default |
Referenced by DWARFDataExtractor().
|
inline |
Definition at line 21 of file DWARFDataExtractor.h.
References lldb_private::DataExtractor::DataExtractor(), and DWARFDataExtractor().
| llvm::DataExtractor lldb_private::DWARFDataExtractor::GetAsLLVM | ( | ) | const |
Definition at line 19 of file DWARFDataExtractor.cpp.
References lldb::eByteOrderLittle, lldb_private::DataExtractor::GetAddressByteSize(), lldb_private::DataExtractor::GetByteOrder(), lldb_private::DataExtractor::GetByteSize(), and lldb_private::DataExtractor::GetDataStart().
Referenced by lldb_private::plugin::dwarf::AppleDWARFIndex::Create(), lldb_private::plugin::dwarf::DebugNamesDWARFIndex::Create(), and lldb_private::plugin::dwarf::SymbolFileDWARF::DebugAbbrev().
| llvm::DWARFDataExtractor lldb_private::DWARFDataExtractor::GetAsLLVMDWARF | ( | ) | const |
Definition at line 14 of file DWARFDataExtractor.cpp.
References lldb::eByteOrderLittle, lldb_private::DataExtractor::GetAddressByteSize(), lldb_private::DataExtractor::GetByteOrder(), lldb_private::DataExtractor::GetByteSize(), and lldb_private::DataExtractor::GetDataStart().
Referenced by lldb_private::plugin::dwarf::AppleDWARFIndex::Create(), lldb_private::plugin::dwarf::DebugNamesDWARFIndex::Create(), lldb_private::plugin::dwarf::DWARFDebugAranges::extract(), lldb_private::plugin::dwarf::DWARFUnit::extract(), lldb_private::plugin::dwarf::DWARFUnit::FindRnglistFromOffset(), ParseLLVMLineTable(), and ParseLLVMLineTablePrologue().