16#ifndef LIEF_ELF_CORE_PRSTATUS_H
17#define LIEF_ELF_CORE_PRSTATUS_H
72 DS,
ES,
FS,
GS,
ORIG_EAX,
EIP,
CS,
EFLAGS,
ESP,
SS,
86 R0 = 0,
R1,
R2,
R3,
R4,
R5,
R6,
R7,
R8,
R9,
R10,
R11,
R12,
R13,
R14,
R15,
93 X0 = 0,
X1,
X2,
X3,
X4,
X5,
X6,
X7,
X8,
X9,
X10,
X11,
X12,
X13,
X14,
X15,
94 X16,
X17,
X18,
X19,
X20,
X21,
X22,
X23,
X24,
X25,
X26,
X27,
X28,
X29,
X30,
104 arch_(arch), class_(cls)
107 std::unique_ptr<Note>
clone()
const override {
108 return std::unique_ptr<CorePrStatus>(
new CorePrStatus(*
this));
173 void dump(std::ostream& os)
const override;
Class which represents an ELF binary.
Definition ELF/Binary.hpp:59
Class which takes an ELF::Binary object and reconstructs a valid binary.
Definition ELF/Builder.hpp:48
ok_error_t set(Registers::AARCH64 reg, uint64_t value)
result< uint64_t > get(Registers::X86 reg) const
Get the value for the given X86 register or return an error.
result< uint64_t > operator[](Registers::ARM reg) const
Definition CorePrStatus.hpp:165
ok_error_t set(Registers::X86 reg, uint64_t value)
void dump(std::ostream &os) const override
pr_status_t status() const
Return the pr_status_t structure.
void status(const pr_status_t &status)
~CorePrStatus() override=default
friend std::ostream & operator<<(std::ostream &os, const CorePrStatus ¬e)
Definition CorePrStatus.hpp:183
ok_error_t set(Registers::X86_64 reg, uint64_t value)
ok_error_t set(Registers::ARM reg, uint64_t value)
std::unique_ptr< Note > clone() const override
Clone the current note and keep its polymorphic type.
Definition CorePrStatus.hpp:107
void accept(Visitor &visitor) const override
result< uint64_t > get(Registers::X86_64 reg) const
Get the value for the given X86_64 register or return an error.
result< uint64_t > get(Registers::AARCH64 reg) const
Get the value for the given AARCH64 register or return an error.
static bool classof(const Note *note)
Definition CorePrStatus.hpp:176
CorePrStatus(ARCH arch, Header::CLASS cls, std::string name, uint32_t type, description_t description)
Definition CorePrStatus.hpp:101
result< uint64_t > operator[](Registers::X86 reg) const
Definition CorePrStatus.hpp:157
result< uint64_t > get(Registers::ARM reg) const
Get the value for the given ARM register or return an error.
std::vector< uint64_t > register_values() const
A list of the register values. This list is guarantee to be as long as the Registers::ARM::_COUNT or ...
result< uint64_t > return_value() const
The value of the register that holds the return value according to the calling convention.
result< uint64_t > operator[](Registers::AARCH64 reg) const
Definition CorePrStatus.hpp:169
result< uint64_t > operator[](Registers::X86_64 reg) const
Definition CorePrStatus.hpp:161
result< uint64_t > sp() const
The stack pointer or an error if not found.
result< uint64_t > pc() const
The program counter or an error if not found.
ARCH architecture() const
Definition CorePrStatus.hpp:115
std::vector< uint8_t > description_t
Container used to handle the description data.
Definition Note.hpp:46
TYPE
LIEF representation of the ELF NT_ values.
Definition Note.hpp:49
@ CORE_PRSTATUS
Coredump that wraps the elf_prstatus structure.
Definition Note.hpp:72
TYPE type() const
Return the type of the note. This type does not match the NT_ type value. For accessing the original ...
Definition Note.hpp:195
const std::string & name() const
Return the name of the note (also known as 'owner' ).
Definition Note.hpp:184
Note(const Note ©)=default
span< const uint8_t > description() const
Return the description associated with the note.
Definition Note.hpp:206
Class which parses and transforms an ELF file into a ELF::Binary object.
Definition ELF/Parser.hpp:45
Definition Visitor.hpp:210
Namespace related to the LIEF's ELF module.
Definition Abstract/Header.hpp:28
const char * to_string(DynamicEntry::TAG e)
ARCH
Definition ELF/enums.hpp:30
@ NONE
Definition ELF/enums.hpp:31
LIEF namespace.
Definition Abstract/Binary.hpp:40
result< ok_t > ok_error_t
Opaque structure that is used by LIEF to avoid writing result<void> f(...). Instead,...
Definition errors.hpp:109
tl::expected< T, lief_errors > result
Wrapper that contains an Object (T) or an error.
Definition errors.hpp:75
Definition CorePrStatus.hpp:68
ARM
Register for the ARM architecture (ARCH::ARM).
Definition CorePrStatus.hpp:85
@ R0
Definition CorePrStatus.hpp:86
@ CPSR
Definition CorePrStatus.hpp:87
@ R3
Definition CorePrStatus.hpp:86
@ R4
Definition CorePrStatus.hpp:86
@ R2
Definition CorePrStatus.hpp:86
@ R7
Definition CorePrStatus.hpp:86
@ R1
Definition CorePrStatus.hpp:86
@ R5
Definition CorePrStatus.hpp:86
@ R6
Definition CorePrStatus.hpp:86
X86_64
Register for the x86-64 architecture (ARCH::X86_64).
Definition CorePrStatus.hpp:77
@ R14
Definition CorePrStatus.hpp:78
@ R12
Definition CorePrStatus.hpp:78
@ RBP
Definition CorePrStatus.hpp:78
@ R15
Definition CorePrStatus.hpp:78
@ R10
Definition CorePrStatus.hpp:78
@ RSP
Definition CorePrStatus.hpp:80
@ RDX
Definition CorePrStatus.hpp:79
@ R13
Definition CorePrStatus.hpp:78
@ RCX
Definition CorePrStatus.hpp:79
@ ORIG_RAX
Definition CorePrStatus.hpp:79
@ RSI
Definition CorePrStatus.hpp:79
@ RBX
Definition CorePrStatus.hpp:78
@ R11
Definition CorePrStatus.hpp:78
@ R9
Definition CorePrStatus.hpp:79
@ RAX
Definition CorePrStatus.hpp:79
@ RDI
Definition CorePrStatus.hpp:79
@ RIP
Definition CorePrStatus.hpp:80
@ R8
Definition CorePrStatus.hpp:79
AARCH64
Register for the AARCH64 architecture (ARCH::AARCH64).
Definition CorePrStatus.hpp:92
@ X3
Definition CorePrStatus.hpp:93
@ X19
Definition CorePrStatus.hpp:94
@ X21
Definition CorePrStatus.hpp:94
@ X23
Definition CorePrStatus.hpp:94
@ X22
Definition CorePrStatus.hpp:94
@ X5
Definition CorePrStatus.hpp:93
@ X2
Definition CorePrStatus.hpp:93
@ X18
Definition CorePrStatus.hpp:94
@ X27
Definition CorePrStatus.hpp:94
@ X29
Definition CorePrStatus.hpp:94
@ X14
Definition CorePrStatus.hpp:93
@ X15
Definition CorePrStatus.hpp:93
@ PSTATE
Definition CorePrStatus.hpp:95
@ X24
Definition CorePrStatus.hpp:94
@ X9
Definition CorePrStatus.hpp:93
@ X4
Definition CorePrStatus.hpp:93
@ X20
Definition CorePrStatus.hpp:94
@ X16
Definition CorePrStatus.hpp:94
@ PC
Definition CorePrStatus.hpp:95
@ X12
Definition CorePrStatus.hpp:93
@ X13
Definition CorePrStatus.hpp:93
@ X10
Definition CorePrStatus.hpp:93
@ X26
Definition CorePrStatus.hpp:94
@ X8
Definition CorePrStatus.hpp:93
@ X25
Definition CorePrStatus.hpp:94
@ X0
Definition CorePrStatus.hpp:93
@ X7
Definition CorePrStatus.hpp:93
@ X1
Definition CorePrStatus.hpp:93
@ X31
Definition CorePrStatus.hpp:95
@ X30
Definition CorePrStatus.hpp:94
@ X11
Definition CorePrStatus.hpp:93
@ X6
Definition CorePrStatus.hpp:93
@ X17
Definition CorePrStatus.hpp:94
@ X28
Definition CorePrStatus.hpp:94
X86
Register for the x86 architecture (ARCH::I386).
Definition CorePrStatus.hpp:70
@ ES
Definition CorePrStatus.hpp:72
@ EDX
Definition CorePrStatus.hpp:71
@ EFLAGS
Definition CorePrStatus.hpp:72
@ ESP
Definition CorePrStatus.hpp:72
@ DS
Definition CorePrStatus.hpp:72
@ FS
Definition CorePrStatus.hpp:72
@ EDI
Definition CorePrStatus.hpp:71
@ EBP
Definition CorePrStatus.hpp:71
@ GS
Definition CorePrStatus.hpp:72
@ EBX
Definition CorePrStatus.hpp:71
@ ORIG_EAX
Definition CorePrStatus.hpp:72
@ CS
Definition CorePrStatus.hpp:72
@ EIP
Definition CorePrStatus.hpp:72
@ SS
Definition CorePrStatus.hpp:72
@ ESI
Definition CorePrStatus.hpp:71
@ EAX
Definition CorePrStatus.hpp:71
@ _COUNT
Definition CorePrStatus.hpp:73
@ ECX
Definition CorePrStatus.hpp:71
Definition CorePrStatus.hpp:48
uint16_t cursig
Definition CorePrStatus.hpp:51
siginfo_t info
Definition CorePrStatus.hpp:49
timeval_t cstime
Definition CorePrStatus.hpp:65
int32_t ppid
Definition CorePrStatus.hpp:58
uint16_t reserved
Definition CorePrStatus.hpp:52
uint64_t sighold
Definition CorePrStatus.hpp:55
int32_t pid
Definition CorePrStatus.hpp:57
timeval_t stime
Definition CorePrStatus.hpp:63
uint64_t sigpend
Definition CorePrStatus.hpp:54
int32_t sid
Definition CorePrStatus.hpp:60
timeval_t utime
Definition CorePrStatus.hpp:62
timeval_t cutime
Definition CorePrStatus.hpp:64
int32_t pgrp
Definition CorePrStatus.hpp:59
Definition CorePrStatus.hpp:37
int32_t code
Definition CorePrStatus.hpp:39
int32_t signo
Definition CorePrStatus.hpp:38
int32_t err
Definition CorePrStatus.hpp:40
Definition CorePrStatus.hpp:43
uint64_t sec
Definition CorePrStatus.hpp:44
uint64_t usec
Definition CorePrStatus.hpp:45
#define LIEF_API
Definition visibility.h:41