DWARF_GET_FDE_INFO_FOR_CFA_REGS3(3) | Library Functions Manual | DWARF_GET_FDE_INFO_FOR_CFA_REGS3(3) |
dwarf_get_fde_info_for_cfa_regs3
—
#include <libdwarf.h>
int
dwarf_get_fde_info_for_cfa_regs3
(Dwarf_Fde
fde, Dwarf_Addr pc, Dwarf_Small
*type, Dwarf_Signed *offset_relevant,
Dwarf_Signed *register_num,
Dwarf_Signed *offset_or_block_len,
Dwarf_Ptr *block_ptr, Dwarf_Addr
*row_pc, Dwarf_Error *err);
dwarf_get_fde_info_for_cfa_reg3
() retrieves the
CFA register rule for a given program counter address from the register rule
table associated with an FDE descriptor.
Argument fde should reference a valid DWARF FDE descriptor.
Argument pc should hold the program counter address to be used to locate the desired register rule row.
On successful execution,
dwarf_get_fde_info_for_cfa_reg3
() stores information
about the CFA register rule found into the locations pointed to by the
arguments type, offset_relevant,
register_num,
offset_or_block_len, block_ptr
and row_pc.
Argument type should point to a location
which will hold the type code of the register rule found. The returned value
is one of the DW_EXPR_*
contants defined in the
header file
<libdwarf.h>
.
If there is an offset value associated with the CFA register rule, the location pointed to by argument offset_relevant will be set to 1.
Argument register_num should point to a location which will hold the register number associated with the CFA register rule.
If the CFA register rule is of type
DW_EXPR_OFFSET
or
DW_EXPR_VAL_OFFSET
, the location pointed to by
argument offset_or_block_len will be set to the offset
value associated with the register rule, or to 0 if the register rule does
not have an offset value. If the type code is
DW_EXPR_EXPRESSION
or
DW_EXPR_VAL_EXPRESSION
, the location pointed to by
argument offset_or_block_len will be set to the length
in bytes of the DWARF expression block associated with the register
rule.
Argument block_ptr should point to a location which will be set to a pointer to the content of the DWARF expression block associated with the CFA register rule.
Argument row_pc should point to a location which will be set to the lowest program counter address associated with the register rule found.
If argument err is not
NULL
, it will be used to return an error descriptor
in case of an error.
dwarf_get_fde_info_for_cfa_reg3
() returns
DW_DLV_OK
when it succeeds. In case of an error, it
returns DW_DLV_ERROR
and sets the argument
err.
dwarf_get_fde_info_for_cfa_reg3
() can fail
with:
DW_DLE_ARGUMENT
]NULL
.DW_DLE_PC_NOT_IN_FDE_RANGE
]June 12, 2011 | NetBSD 10.1 |