|
| | DumpStream ()=delete |
| | DumpStream (uintptr_t base_address, BinaryStream &ref) |
| | DumpStream (uintptr_t base_address, std::unique_ptr< BinaryStream > owned) |
| | DumpStream (const DumpStream &)=delete |
| DumpStream & | operator= (const DumpStream &)=delete |
| | DumpStream (DumpStream &&) noexcept=default |
| DumpStream & | operator= (DumpStream &&) noexcept=default |
| uintptr_t | base_address () const |
| Binary * | binary () |
| uint64_t | size () const override |
| bool | bind_binary (Binary &bin) override |
| std::vector< uint8_t > | content () const |
| result< const void * > | read_at (uint64_t, uint64_t, uint64_t=0) const override |
| ok_error_t | peek_in (void *dst, uint64_t offset, uint64_t size, uint64_t virtual_address=0) const override |
| | ~DumpStream () override=default |
| | BinaryStream (STREAM_TYPE type) |
| virtual | ~BinaryStream ()=default |
| STREAM_TYPE | type () const |
| bool | is_memory_stream () const |
| bool | is_dump_stream () const |
| bool | is_memory_view () const |
| result< uint64_t > | read_uleb128 (size_t *size=nullptr) const |
| result< uint64_t > | read_sleb128 (size_t *size=nullptr) const |
| result< int64_t > | read_dwarf_encoded (uint8_t encoding) const |
| result< std::string > | read_string (size_t maxsize=~static_cast< size_t >(0)) const |
| result< std::string > | peek_string (size_t maxsize=~static_cast< size_t >(0)) const |
| result< std::string > | peek_string_at (size_t offset, size_t maxsize=~static_cast< size_t >(0)) const |
| result< std::u16string > | read_u16string () const |
| result< std::u16string > | peek_u16string () const |
| result< std::string > | read_mutf8 (size_t maxsize=~static_cast< size_t >(0)) const |
| result< std::u16string > | read_u16string (size_t length) const |
| result< std::u16string > | peek_u16string (size_t length) const |
| result< std::u16string > | peek_u16string_at (size_t offset, size_t length) const |
| virtual ok_error_t | peek_data (std::vector< uint8_t > &container, uint64_t offset, uint64_t size, uint64_t virtual_address=0) |
| virtual ok_error_t | read_data (std::vector< uint8_t > &container, uint64_t size) |
| ok_error_t | read_data (std::vector< uint8_t > &container) |
| template<class T> |
| ok_error_t | read_objects (std::vector< T > &container, uint64_t count) |
| template<class T> |
| ok_error_t | peek_objects (std::vector< T > &container, uint64_t count) |
| template<class T> |
| ok_error_t | peek_objects_at (uint64_t offset, std::vector< T > &container, uint64_t count) |
| void | setpos (size_t pos) const |
| const BinaryStream & | increment_pos (size_t value) const |
| void | decrement_pos (size_t value) const |
| size_t | pos () const |
| bool | is_valid () const |
| | operator bool () const |
| template<class T> |
| const T * | read_array (size_t size) const |
| template<class T, size_t N> |
| ok_error_t | peek_array (std::array< T, N > &dst) const |
| template<class T, size_t N> |
| ok_error_t | read_array (std::array< T, N > &dst) const |
| template<class T> |
| result< T > | peek () const |
| template<class T> |
| result< T > | peek (size_t offset) const |
| template<class T> |
| const T * | peek_array (size_t size) const |
| template<class T> |
| const T * | peek_array (size_t offset, size_t size) const |
| template<class T> |
| result< T > | read () const |
| template<typename T> |
| bool | can_read () const |
| template<typename T> |
| bool | can_read (size_t offset) const |
| bool | can_read (int64_t offset, int64_t size) const |
| size_t | align (size_t align_on) const |
| void | set_endian_swap (bool swap) |
| bool | should_swap () const |
| virtual const uint8_t * | p () const |
| virtual uint8_t * | start () |
| virtual uint8_t * | p () |
| virtual uint8_t * | end () |
| virtual const uint8_t * | start () const |
| virtual const uint8_t * | end () const |
| template<class T> |
| const T * | cast () const |
| template<class T> |
| T * | cast () |
This stream interface provides facilities to parse a dumped binary.
A dump is a contiguous capture of a process memory that starts at a given base address. This stream owns (or weakly references) another BinaryStream that holds the raw dump and translates file offsets into dump offsets according to this base address and the binary layout.