42 #ifndef DEFAULT_DEMANGLING_STYLE
43 #define DEFAULT_DEMANGLING_STYLE AUTO_DEMANGLING_STYLE_STRING
56 _(
"Demangling of encoded C++/ObjC names "
57 "when displaying symbols is %s.\n"),
69 _(
"Demangling of C++/ObjC names in "
70 "disassembly listings is %s.\n"),
111 const struct demangler_engine *dem;
119 for (dem = libiberty_demanglers, i = 0;
120 dem->demangling_style != unknown_demangling;
124 dem->demangling_style_name) == 0)
126 current_demangling_style = dem->demangling_style;
135 gdb_assert (dem->demangling_style != unknown_demangling);
164 char *demangled, *
name, *lang_name = NULL;
165 char *arg_buf, *arg_start;
166 int processing_args = 1;
170 arg_buf = xstrdup (args != NULL ? args :
"");
174 while (processing_args
175 && *arg_start ==
'-')
179 if (strncmp (arg_start,
"-l", p - arg_start) == 0)
185 lang_name =
savestring (lang_name, lang_name_end - lang_name);
189 else if (strncmp (arg_start,
"--", p - arg_start) == 0)
194 error (
_(
"Unrecognized option '%s' to demangle command. "
195 "Try \"help demangle\"."), arg_start);
204 error (
_(
"Usage: demangle [-l language] [--] name"));
206 if (lang_name != NULL)
212 error (
_(
"Unknown language \"%s\""), lang_name);
219 if (demangled != NULL)
225 error (
_(
"Can't demangle \"%s\""), name);
240 libiberty_demanglers[ndems].demangling_style != unknown_demangling;
245 libiberty_demanglers[i].demangling_style != unknown_demangling;
249 = xstrdup (libiberty_demanglers[i].demangling_style_name);
257 Set demangling of encoded C++/ObjC names when displaying symbols."),
_(
"\
258 Show demangling of encoded C++/ObjC names when displaying symbols."), NULL,
264 Set demangling of C++/ObjC names in disassembly listings."),
_(
"\
265 Show demangling of C++/ObjC names in disassembly listings."), NULL,
273 Set the current C++ demangling style."),
_(
"\
274 Show the current C++ demangling style."),
_(
"\
275 Use `set demangle-style' without arguments for a list of demangling styles."),
281 Demangle a mangled name.\n\
282 Usage: demangle [-l language] [--] name\n\
283 If LANGUAGE is not specified, NAME is demangled in the current language."),
enum language language_enum(char *str)
#define DEFAULT_DEMANGLING_STYLE
void add_setshow_enum_cmd(const char *name, enum command_class theclass, const char *const *enumlist, const char **var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
const struct language_defn * language_def(enum language lang)
struct cmd_list_element * cmdlist
char * skip_spaces(char *chp)
void printf_filtered(const char *format,...)
static char cplus_markers[]
static const char * current_demangling_style_string
struct cmd_list_element * setlist
int is_cplus_marker(int c)
void initialize_file_ftype(void)
void fprintf_filtered(struct ui_file *stream, const char *format,...)
struct cmd_list_element * showlist
struct cmd_list_element * add_cmd(const char *name, enum command_class theclass, cmd_cfunc_ftype *fun, const char *doc, struct cmd_list_element **list)
struct cleanup * make_cleanup(make_cleanup_ftype *function, void *arg)
struct cmd_list_element * setprintlist
static void show_asm_demangle(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static void show_demangling_style_names(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
initialize_file_ftype _initialize_demangler
const struct language_defn * current_language
char * language_demangle(const struct language_defn *current_language, const char *mangled, int options)
struct cmd_list_element * showprintlist
static void set_demangling_command(char *ignore, int from_tty, struct cmd_list_element *c)
static int ignore(struct target_ops *ops, struct gdbarch *gdbarch, struct bp_target_info *bp_tgt)
char * savestring(const char *ptr, size_t len)
static void show_demangle(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static void demangle_command(char *, int)
PTR xcalloc(size_t number, size_t size)
void error(const char *fmt,...)
#define skip_to_space(INP)
void do_cleanups(struct cleanup *old_chain)
void add_setshow_boolean_cmd(const char *name, enum command_class theclass, int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_sfunc_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
static const char ** demangling_style_names