dwarf_die_CU_offset,
dwarf_die_CU_offset_range,
dwarf_dieoffset,
dwarf_get_cu_die_offset_given_cu_header_offset,
dwarf_get_cu_die_offset_given_cu_header_offset_b
—
return offsets of DWARF debugging
information entries
DWARF Access Library (libdwarf, -ldwarf)
#include
<libdwarf.h>
int
dwarf_die_CU_offset(
Dwarf_Die
die,
Dwarf_Off *ret_offset,
Dwarf_Error *err);
int
dwarf_die_CU_offset_range(
Dwarf_Die
die,
Dwarf_Off *cu_offset,
Dwarf_Off *cu_length,
Dwarf_Error *err);
int
dwarf_dieoffset(
Dwarf_Die
die,
Dwarf_Off *ret_offset,
Dwarf_Error *err);
int
dwarf_get_cu_die_offset_given_cu_header_offset(
Dwarf_Debug
dbg,
Dwarf_Off in_cu_header_offset,
Dwarf_Off *out_cu_die_offset,
Dwarf_Error *err);
int
dwarf_get_cu_die_offset_given_cu_header_offset_b(
Dwarf_Debug
dbg,
Dwarf_Off in_cu_header_offset,
Dwarf_Bool is_info,
Dwarf_Off *out_cu_die_offset,
Dwarf_Error *err);
These functions are used to retrieve offsets for DWARF debugging information
entries.
Function
dwarf_die_CU_offset() returns the offset
of the debugging information entry referenced by argument
die relative to the start of its containing
compilation unit. Argument
ret_offset should
point to the location that is to hold the returned offset. If argument
err is non-NULL, it will be used to return an
error descriptor in case of an error.
Function
dwarf_die_CU_offset_range() returns the
section-relative offset and length of the compilation unit containing the
debugging information entry referenced by argument
die. Argument
cu_offset should point to a location that
will hold the returned offset. Argument
cu_length should point to a location that
will hold the returned length of the compilation unit. If argument
err is non-NULL, it will be used to return an
error descriptor in case of an error.
Function
dwarf_dieoffset() retrieves the
section-relative offset of the debugging information entry referenced by
argument
die. Argument
ret_offset should point to a location that is
to hold the returned section-relative offset. If argument
err is non-NULL, it will be used to return an
error descriptor in case of an error.
Function
dwarf_get_cu_die_offset_given_cu_header_offset()
returns the offset for the first debugging information entry for a compilation
unit, given an offset to the header of the compilation unit. Argument
dbg should reference a valid debugging
context allocated using
dwarf_init(3). Argument
in_cu_header_offset contains the offset to
the start of a compilation unit. Argument
out_cu_die_offset points to a location that
will hold the returned offset. If argument
err is non-NULL, it will be used to return an
error descriptor in case of an error.
Function
dwarf_get_cu_die_offset_given_cu_header_offset_b()
behaves identically to the function
dwarf_get_cu_die_offset_given_cu_header_offset()
when the argument
is_info is non-zero. When
the argument
is_info is zero, function
dwarf_get_cu_die_offset_given_cu_header_offset_b()
returns the offset for the first debugging information entry for a type unit,
given an offset to the header of the type unit in argument
in_cu_header_offset. Argument
out_cu_die_offset points to a location that
will hold the returned offset. If the argument
err is non-NULL, it will be used to return an
error descriptor in case of an error.
On success, these functions return
DW_DLV_OK
.
In case of an error, these functions return
DW_DLV_ERROR
and set argument
err.
Function
dwarf_get_cu_die_offset_given_cu_header_offset()
and
dwarf_get_cu_die_offset_given_cu_header_offset_b()
returns
DW_DLV_NO_ENTRY
and sets argument
err if there is no compilation or type unit
located at the offset specified in argument
in_cu_header_offset.
These functions may fail with the following errors:
-
-
- [
DW_DLE_ARGUMENT
]
- One of the arguments
cu_length,
cu_offset,
dbg,
die,
out_cu_die_offset or
ret_offset was NULL.
-
-
- [
DW_DLE_NO_ENTRY
]
- Argument
in_cu_header_offset specified an unknown
offset.
dwarf(3),
dwarf_next_cu_header(3),
dwarf_offdie(3),
dwarf_offdie_b(3)