10#include <range/v3/algorithm/fill.hpp>
11#include <range/v3/range/conversion.hpp>
12#include <range/v3/to_container.hpp>
13#include <range/v3/view/take_while.hpp>
14#include <range/v3/view/transform.hpp>
22template <std::
size_t NumBytes>
28 std::size_t
size()
const;
30 std::string
str()
const;
35 static std::uintptr_t get_alloced_address(
Program& prog) {
return prog.
alloc_mem(NumBytes); }
38template <std::
size_t NumBytes>
43template <std::
size_t NumBytes>
48 ranges::fill(buf,
byte);
55template <std::
size_t NumBytes>
63 return byte_str | ranges::views::transform([](
Byte byte) {
return static_cast<char>(
byte.value); }) |
64 ranges::views::take_while([](
char chr) {
return chr != 0; }) | ranges::to<std::string>();
67template <std::
size_t NumBytes>
Definition asm_buffer.hpp:24
AsmBuffer(Program &prog)
Definition asm_buffer.hpp:68
std::size_t size() const
Definition asm_buffer.hpp:39
NativeByteArray< NumBytes > fill(Byte byte) const
Definition asm_buffer.hpp:44
std::string str() const
Definition asm_buffer.hpp:56
Definition asm_data.hpp:20
Definition byte_array.hpp:27
More user-friendly interface wrapper for a byte-like integral.
Definition byte.hpp:18
Base class for interacting with a tracee's memory in a variety of ways at a (relatively) high-level F...
Definition memory_io_base.hpp:25
Result< T > read(std::uintptr_t address)
Definition memory_io_base.hpp:32
Definition program.hpp:32
std::uintptr_t alloc_mem(std::size_t amt)
Definition program.cpp:102
#define TRY_OR_THROW(expr,...)
Definition macros.hpp:11
Definition asm_buffer.hpp:20