LIEF: Library to Instrument Executable Formats Version 0.17.0
|
Loading...
Searching...
No Matches
Go to the documentation of this file.
15#ifndef LIEF_DWARF_EDITOR_FUNCTION_H
16#define LIEF_DWARF_EDITOR_FUNCTION_H
32class FunctionParameter;
33class FunctionLexicalBlock;
43 start(start), end(end)
53 Parameter(std::unique_ptr<details::FunctionParameter> impl);
57 std::unique_ptr<details::FunctionParameter> impl_;
68 std::unique_ptr<details::FunctionLexicalBlock> impl_;
75 Label(std::unique_ptr<details::FunctionLabel> impl);
79 std::unique_ptr<details::FunctionLabel> impl_;
83 Function(std::unique_ptr<details::Function> impl);
93 Function&
set_ranges(
const std::vector<range_t>& ranges);
107 std::unique_ptr<Parameter>
add_parameter(
const std::string& name,
const Type& type);
116 std::unique_ptr<Label>
add_label(uint64_t addr,
const std::string& label);
123 std::unique_ptr<details::Function> impl_;
Label(std::unique_ptr< details::FunctionLabel > impl)
LexicalBlock(std::unique_ptr< details::FunctionLexicalBlock > impl)
Parameter(std::unique_ptr< details::FunctionParameter > impl)
This class represents an editable DWARF function (DW_TAG_subprogram)
Definition DWARF/editor/Function.hpp:38
Function(std::unique_ptr< details::Function > impl)
std::unique_ptr< Label > add_label(uint64_t addr, const std::string &label)
Add a label at the given address.
Function & set_external()
Set the function as external by defining DW_AT_external to true. This means that the function is impo...
Function & set_return_type(const Type &type)
Set the return type of this function.
std::unique_ptr< Variable > create_stack_variable(const std::string &name)
Create a stack-based variable owned by the current function.
Function & set_ranges(const std::vector< range_t > &ranges)
Set the ranges of addresses owned by the implementation of this function by setting the DW_AT_ranges ...
std::unique_ptr< Parameter > add_parameter(const std::string &name, const Type &type)
Add a parameter to the current function.
Function & set_low_high(uint64_t low, uint64_t high)
Set the upper and lower bound addresses for this function. This assumes that the function is contiguo...
Function & set_address(uint64_t addr)
Set the address of this function by defining DW_AT_entry_pc
std::unique_ptr< LexicalBlock > add_lexical_block(uint64_t start, uint64_t end)
Add a lexical block with the given range.
This class is the base class for any types created when editing DWARF debug info.
Definition DWARF/editor/Type.hpp:36
This class represents an editable DWARF variable which can be scoped by a function or a compilation u...
Definition editor/Variable.hpp:33
Definition DWARF/editor/CompilationUnit.hpp:36
Namespace for the DWARF debug format.
Definition DWARF/CompilationUnit.hpp:28
LIEF namespace.
Definition Abstract/Binary.hpp:39
range_t(uint64_t start, uint64_t end)
Definition DWARF/editor/Function.hpp:42
#define LIEF_API
Definition visibility.h:41