Print this page
Rich's feedback
6375 Add native name demangling support

*** 20,50 **** * CDDL HEADER END */ /* * Copyright 2001-2002 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #ifndef _MDB_DEMANGLE_H #define _MDB_DEMANGLE_H - #pragma ident "%Z%%M% %I% %E% SMI" - #ifdef __cplusplus extern "C" { #endif #ifdef _MDB #include <sys/types.h> #include <sys/param.h> #include <mdb/mdb_modapi.h> typedef struct mdb_demangler { ! char dm_pathname[MAXPATHLEN]; /* pathname of demangling library */ ! void *dm_handle; /* rtld handle to demangling library */ ! int (*dm_convert)(const char *, char *, size_t); /* demangler */ char *dm_buf; /* demangling buffer */ size_t dm_len; /* size of dm_buf in bytes */ char *dm_dem; /* start of demangled string (in buf) */ uint_t dm_flags; /* convert flags (see below) */ } mdb_demangler_t; --- 20,49 ---- * CDDL HEADER END */ /* * Copyright 2001-2002 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. + * + * Copyright 2018 Jason King. */ #ifndef _MDB_DEMANGLE_H #define _MDB_DEMANGLE_H #ifdef __cplusplus extern "C" { #endif #ifdef _MDB #include <sys/types.h> #include <sys/param.h> #include <mdb/mdb_modapi.h> + #include <demangle-sys.h> typedef struct mdb_demangler { ! sysdem_lang_t dm_lang; /* language to demangle */ char *dm_buf; /* demangling buffer */ size_t dm_len; /* size of dm_buf in bytes */ char *dm_dem; /* start of demangled string (in buf) */ uint_t dm_flags; /* convert flags (see below) */ } mdb_demangler_t;
*** 53,63 **** #define MDB_DM_SCOPE 0x2 /* show function scope specifiers */ #define MDB_DM_FUNCARG 0x4 /* show function arguments */ #define MDB_DM_MANGLED 0x8 /* show mangled name */ #define MDB_DM_ALL 0xf /* mask of all valid flags */ ! extern mdb_demangler_t *mdb_dem_load(const char *); extern void mdb_dem_unload(mdb_demangler_t *); extern const char *mdb_dem_convert(mdb_demangler_t *, const char *); extern int cmd_demangle(uintptr_t, uint_t, int, const mdb_arg_t *); extern int cmd_demflags(uintptr_t, uint_t, int, const mdb_arg_t *); --- 52,62 ---- #define MDB_DM_SCOPE 0x2 /* show function scope specifiers */ #define MDB_DM_FUNCARG 0x4 /* show function arguments */ #define MDB_DM_MANGLED 0x8 /* show mangled name */ #define MDB_DM_ALL 0xf /* mask of all valid flags */ ! extern mdb_demangler_t *mdb_dem_load(void); extern void mdb_dem_unload(mdb_demangler_t *); extern const char *mdb_dem_convert(mdb_demangler_t *, const char *); extern int cmd_demangle(uintptr_t, uint_t, int, const mdb_arg_t *); extern int cmd_demflags(uintptr_t, uint_t, int, const mdb_arg_t *);