Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ELFTC_DEMANGLE(3)	 BSD Library Functions Manual	     ELFTC_DEMANGLE(3)

NAME
     elftc_demangle -- demangle	a C++ name

LIBRARY
     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 con-
		     ventions 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: %\n", 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	proto-
		     type.

SEE ALSO
     elf(3), elf_strptr(3)

BSD				August 24, 2011				   BSD

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXAMPLES | ERRORS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=elftc_demangle&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help