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 VALUES

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.

If you are angry with someone, you should walk a mile in their shoes - then you'll be a mile away from them, and you'll have their shoes.