Print a version identifier and exit.
.El
.Sh OUTPUT FORMAT
If the
.Fl f
option was not specified,
.Nm
osh.sh_info != 0)
osh.sh_info = ecp->secndx[osh.sh_info];
/*
* sh_info of SHT_GROUP section needs to point to the correct
* string in the symbol table.
*/
if (s->type == SHT_GROUP && (ecp->flags & SYMTAB_EXIST) &&
(ecp->flags & SYMTAB_INTACT) == 0)
osh.sh_info = ecp->symndx[osh.sh_info];
if (!gelf_update_shdr(s->os, &osh))
errx(EXIT_FAILURE, "gelf_update_shdr() failed: %s",
elf_errmsg(-1));
.Xr dwarf 4 .
.Pp
The
.Xr DWARF 3
API has two parts:
.Bl -bullet
.It
.It Fn dwarf_siblingof , Fn dwarf_siblingof_b
Retrieve the sibling descriptor for a debugging information entry.
.It Fn dwarf_srclang
Retrive the source language attribute for a debugging information
Retrieve the source language attribute for a debugging information
entry.
.It Fn dwarf_tag
Retrieve the tag for a debugging information entry.
Argument
.Ar off
specifies a relocatable program address. The ELF symbol to be used
specifies a relocatable program address.
The ELF symbol to be used
for relocation is set by a prior call to the function
.Xr dwarf_lne_set_address 3 .
.Ar value
should point to a NUL-terminated string containing the value
of the macro.
If the macro doesn't have a value, argument
If the macro does not have a value, argument
should be set to NULL.
.Dt DWARF_EXPAND_FRAME_INSTRUCTIONS 3
.Sh NAME
.Nm dwarf_expand_frame_instructions
.Nd expand frame instructions
.Sh LIBRARY
.Lb libdwarf
.Sh SYNOPSIS
The application should not attempt to free this memory
area.
Portable code may indicate that the memory area is to be freed by
by using
using
.Xr dwarf_dealloc 3 .
.Sh RETURN VALUES
Function
If argument
.Ar err
is not NULL, it will be used to return an error descriptor in case
of an error.
.Fn dwarf_formflag
These functions return
.Dv DW_DLV_OK
.Fn dwarf_formsig8
For each of the register rules returned,
the
.Va dw_offset_relevant
field is set to 1 if the register rule has a offset value. The
field is set to 1 if the register rule has a offset value.
.Va dw_regnum
field is set to the register number associated with the regsiter rule.
.Ss COMPATIBILITY
.Fn dwarf_get_fde_info_for_reg
.Va dwr_addr1
is the value of the largest representable address offset, and
.Va dwr_addr2
is a base address for the begining and ending address offsets of
is a base address for the beginning and ending address offsets of
subsequent address range entries in the list.
.It Dv DW_RANGES_END
An end of list mark.
On success, function
.Fn dwarf_hasattr
.Ss Iterating Through Type Units in a Debug Context
When a DWARF debug context is allocated using
.Xr dwarf_init 3 ,
an internal pointer assoicated with the context will point to the
an internal pointer associated with the context will point to the first
fisrt
.Dq \&.debug_types
section found in the debug object.
The first call to function
The argument
.Ar errhand
should contain the adddress of a function to be called in case of an
should contain the address of a function to be called in case of an
error.
If this argument is
.Dv NULL ,
.Fn dwarf_whatattr
.Xr elf_flagelf 3 ,
following which the library will use the data offsets and alignments
specified by the application when laying out the file.
Application control of file layout is described further in the
.Xr elf_update 3
manual page.
.It Bq Er ELF_E_ARGUMENT
An
.Xr ar 1
archive was opened with with
archive was opened with
.Ar cmd
set to
.Dv ELF_C_RDWR .
NULL if an error occurs.
.Sh ERRORS
These functions may fail with the following errors:
.Bl -tag -width "[ELF_E_RESOURCE]"
Either of the arguments
.Ar scn
.Bd -literal -offset indent
char buffer[1024];
const char *funcname;
funcname = ...; /* points to string to be demangled */
if (elftc_demangle(funcname, buffer, sizeof(buffer), 0) == 0)
printf("Demangled name: %\\n", buffer);
the following values:
.Bl -tag -width indent -compact -offset indent
.It Dv ELFTC_INSERT_ERROR
An error occured during insertion of the symbol.
An error occurred during insertion of the symbol.
.It Dv ELFTC_INSERT_EXISTING
The name in argument
.Ar symbolname
arhdr->ar_name);
continue;
}
/* Core dumps are handled seperately */
/* Core dumps are handled separately */
if (elfhdr.e_shnum == 0 && elfhdr.e_type == ET_CORE) {
exit_code = handle_core(name, elf, &elfhdr);
(void) elf_end(elf);
const char *
elftc_version(void)
{
return "elftoolchain r3179M";
return "elftoolchain r3185M";