tail head cat sleep
QR code linking to this page

Manual Pages  — ELFTC_DEMANGLE

NAME

elftc_demangle – demangle a C++ name

CONTENTS

LIBRARY

libelftc

SYNOPSIS

#include <libelftc.h>

int
elftc_demangle(const char *encodedname, char *buffer, size_t bufsize, unsigned int flags);

DESCRIPTION

Function elftc_demangle() decodes a symbol name encoded according to the type encoding rules for the C++ language and returns a string denoting an equivalent C++ prototype.

Argument encodedname specifies the encoded symbol name. Argument buffer denotes a programmer-specified area to place the prototype string in. Argument bufsize specifies the size of the programmer-specified area. Argument flags specifies the encoding style in use for argument encodedname. Supported encoding styles are:
ELFTC_DEM_ARM The encoding style used by compilers adhering to the conventions of the C++ Annotated Reference Manual.
ELFTC_DEM_GNU2
  The encoding style by GNU C++ version 2.
ELFTC_DEM_GNU3
  The encoding style by GNU C++ version 3 and later.

Argument flags may be zero, in which case the function will attempt to guess the encoding scheme from the contents of encodedname.

RETURN VALUE

Function elftc_demangle() returns 0 on success. In case of an error it returns -1 and sets the errno variable.

EXAMPLES

To decode a name that uses an unknown encoding style use:
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: % , buffer); else         perror("Cannot demangle %s", funcname);

ERRORS

Function elftc_demangle() may fail with the following errors:
[EINVAL] Argument encodedname was not a valid encoded name.
[ENAMETOOLONG] The output buffer specified by arguments buffer and bufsize was too small to hold the decoded function prototype.

SEE ALSO

elf(3), elf_strptr(3)

ELFTC_DEMANGLE (3) August 24, 2011

tail head cat sleep
QR code linking to this page


Please direct any comments about this manual page service to Ben Bullock. Privacy policy.

Never write it in C if you can do it in `awk';
Never do it in `awk' if `sed' can handle it;
Never use `sed' when `tr' can do the job;
Never invoke `tr' when `cat' is sufficient;
Avoid using `cat' whenever possible.
— Taylor's Laws of Programming