DWARF_DIEOFFSET(3)

DWARF_DIEOFFSET(3) | Library Functions Manual | DWARF_DIEOFFSET(3)

# NAME

`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

# LIBRARY

DWARF Access Library (libdwarf, -ldwarf)

# SYNOPSIS

`#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);

# DESCRIPTION

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.

# RETURN VALUES

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.

# ERRORS

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.

# SEE ALSO

dwarf(3), dwarf_next_cu_header(3), dwarf_offdie(3), dwarf_offdie_b(3)

December 21, 2014 | NetBSD 9.0