#include <assert.h>#include <ctype.h>#include <stdarg.h>#include <stdio.h>#include <stdlib.h>#include <string.h>
Go to the source code of this file.
Classes | |
| struct | array |
| struct | datatype_t |
| struct | parsed_symbol |
Macros | |
| #define | AVAIL_SIZE (1024 - sizeof(void*)) |
| #define | BLOCK_SIZE 1024 |
| #define | CDECL |
| #define | ERR(...) |
| #define | TRACE(...) |
| #define | UNDNAME_32_BIT_DECODE (0x0800) |
| #define | UNDNAME_COMPLETE (0x0000) |
| #define | UNDNAME_NAME_ONLY (0x1000) /* Only report the variable/method name */ |
| #define | UNDNAME_NO_ACCESS_SPECIFIERS (0x0080) /* Don't show access specifier (public/protected/private) */ |
| #define | UNDNAME_NO_ALLOCATION_LANGUAGE (0x0010) |
| #define | UNDNAME_NO_ALLOCATION_MODEL (0x0008) |
| #define | UNDNAME_NO_ARGUMENTS (0x2000) /* Don't show method arguments */ |
| #define | UNDNAME_NO_COMPLEX_TYPE (0x8000) |
| #define | UNDNAME_NO_CV_THISTYPE (0x0040) |
| #define | UNDNAME_NO_FUNCTION_RETURNS (0x0004) /* Don't show function/method return value */ |
| #define | UNDNAME_NO_LEADING_UNDERSCORES (0x0001) /* Don't show __ in calling convention */ |
| #define | UNDNAME_NO_MEMBER_TYPE (0x0200) /* Don't show static/virtual specifier */ |
| #define | UNDNAME_NO_MS_KEYWORDS (0x0002) /* Don't show calling convention at all */ |
| #define | UNDNAME_NO_MS_THISTYPE (0x0020) |
| #define | UNDNAME_NO_RETURN_UDT_MODEL (0x0400) |
| #define | UNDNAME_NO_SPECIAL_SYMS (0x4000) |
| #define | UNDNAME_NO_THISTYPE (0x0060) |
| #define | UNDNAME_NO_THROW_SIGNATURES (0x0100) |
| #define | WARN(...) |
Typedefs | |
| typedef int | BOOL |
| typedef char | CHAR |
| typedef void(* | free_func_t) (void *) |
| typedef void *(* | malloc_func_t) (size_t) |
Functions | |
| char *CDECL | __unDName (char *buffer, const char *mangled, int buflen, malloc_func_t memget, free_func_t memfree, unsigned short int flags) |
| char *CDECL | __unDNameEx (char *buffer, const char *mangled, int buflen, malloc_func_t memget, free_func_t memfree, void *unknown, unsigned short int flags) |
| static BOOL | demangle_datatype (struct parsed_symbol *sym, struct datatype_t *ct, struct array *pmt, BOOL in_args) |
| static char * | get_args (struct parsed_symbol *sym, struct array *pmt_ref, BOOL z_term, char open_char, char close_char) |
| static BOOL | get_calling_convention (char ch, const char **call_conv, const char **exported, unsigned flags) |
| static BOOL | get_class (struct parsed_symbol *sym) |
| static char * | get_class_name (struct parsed_symbol *sym) |
| static char * | get_class_string (struct parsed_symbol *sym, int start) |
| static const char * | get_extended_type (char c) |
| static char * | get_literal_string (struct parsed_symbol *sym) |
| static BOOL | get_modified_type (struct datatype_t *ct, struct parsed_symbol *sym, struct array *pmt_ref, char modif, BOOL in_args) |
| static BOOL | get_modifier (struct parsed_symbol *sym, const char **ret, const char **ptr_modif) |
| static const char * | get_number (struct parsed_symbol *sym) |
| static const char * | get_simple_type (char c) |
| static char * | get_template_name (struct parsed_symbol *sym) |
| static BOOL | handle_data (struct parsed_symbol *sym) |
| static BOOL | handle_method (struct parsed_symbol *sym, BOOL cast_op) |
| char * | lstrcpynA (char *out, const char *in, int n) |
| static char * | str_array_get_ref (struct array *cref, unsigned idx) |
| static void | str_array_init (struct array *a) |
| static BOOL | str_array_push (struct parsed_symbol *sym, const char *ptr, int len, struct array *a) |
| static char * | str_printf (struct parsed_symbol *sym, const char *format,...) |
| static BOOL | symbol_demangle (struct parsed_symbol *sym) |
| static void * | und_alloc (struct parsed_symbol *sym, unsigned int len) |
| static void | und_free_all (struct parsed_symbol *sym) |
Variables | |
| const BOOL | FALSE = 0 |
| const BOOL | TRUE = 1 |
| #define AVAIL_SIZE (1024 - sizeof(void*)) |
| #define BLOCK_SIZE 1024 |
| #define UNDNAME_NO_ACCESS_SPECIFIERS (0x0080) /* Don't show access specifier (public/protected/private) */ |
| #define UNDNAME_NO_ARGUMENTS (0x2000) /* Don't show method arguments */ |
| #define UNDNAME_NO_LEADING_UNDERSCORES (0x0001) /* Don't show __ in calling convention */ |
| #define UNDNAME_NO_MEMBER_TYPE (0x0200) /* Don't show static/virtual specifier */ |
| #define UNDNAME_NO_MS_KEYWORDS (0x0002) /* Don't show calling convention at all */ |
| char* CDECL __unDName | ( | char * | buffer, |
| const char * | mangled, | ||
| int | buflen, | ||
| malloc_func_t | memget, | ||
| free_func_t | memfree, | ||
| unsigned short int | flags | ||
| ) |
| char* CDECL __unDNameEx | ( | char * | buffer, |
| const char * | mangled, | ||
| int | buflen, | ||
| malloc_func_t | memget, | ||
| free_func_t | memfree, | ||
| void * | unknown, | ||
| unsigned short int | flags | ||
| ) |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |