class Registers
Defined at line 135 of file ../../src/lib/unwinder/registers.h
Holds the register values. It's possible to get and set a register id that is not listed above.
Public Methods
fit::result<Error, Registers> To32Bit ()
Converts the current register object to the equivalent 32 bit register set. This means that
all general purpose registers are copied wholesale (without checking if the value can actually
fit in a 32 bit register), and the specially named registers are copied using the getters and
setters below.
Defined at line 91 of file ../../src/lib/unwinder/registers.cc
Error AdjustPCForThumb ()
Defined at line 132 of file ../../src/lib/unwinder/registers.cc
Error Get (RegisterID reg_id, uint64_t & val)
Defined at line 58 of file ../../src/lib/unwinder/registers.cc
Error Set (RegisterID reg_id, uint64_t val)
Defined at line 67 of file ../../src/lib/unwinder/registers.cc
Error Unset (RegisterID reg_id)
Defined at line 72 of file ../../src/lib/unwinder/registers.cc
Error GetSP (uint64_t & sp)
Defined at line 77 of file ../../src/lib/unwinder/registers.cc
Error SetSP (uint64_t sp)
Defined at line 79 of file ../../src/lib/unwinder/registers.cc
Error GetPC (uint64_t & pc)
Defined at line 81 of file ../../src/lib/unwinder/registers.cc
Error SetPC (uint64_t pc)
Defined at line 83 of file ../../src/lib/unwinder/registers.cc
Error GetReturnAddress (uint64_t & ra)
These are not formally specified for all architectures, but we define aliases for them.
It's RIP on x64, LR on Arm64, R14 on Arm, and RA on Riscv64. See the note above for why this
doesn't necessarily always make sense for x64.
Defined at line 85 of file ../../src/lib/unwinder/registers.cc
Error SetReturnAddress (uint64_t ra)
Defined at line 89 of file ../../src/lib/unwinder/registers.cc
void Registers (Arch arch)
Defined at line 144 of file ../../src/lib/unwinder/registers.h
Arch arch ()
Defined at line 153 of file ../../src/lib/unwinder/registers.h
std::string Describe ()
Return a string describing the value of all registers. Should be useful in debugging.
Defined at line 153 of file ../../src/lib/unwinder/registers.cc
size_type size ()
Delegate size(), begin() and end() to regs_.
Defined at line 156 of file ../../src/lib/unwinder/registers.h
const_iterator begin ()
Defined at line 157 of file ../../src/lib/unwinder/registers.h
const_iterator end ()
Defined at line 158 of file ../../src/lib/unwinder/registers.h
void Clear ()
Defined at line 178 of file ../../src/lib/unwinder/registers.h
Enumerations
enum Arch
| Name | Value |
|---|---|
| kX64 | 0 |
| kArm32 | 1 |
| kArm64 | 2 |
| kRiscv64 | 3 |
Defined at line 137 of file ../../src/lib/unwinder/registers.h