42#ifndef DEFAULT_DEMANGLING_STYLE
43#define DEFAULT_DEMANGLING_STYLE AUTO_DEMANGLING_STYLE_STRING
54 _(
"Demangling of encoded C++/ObjC names "
55 "when displaying symbols is %s.\n"),
67 _(
"Demangling of C++/ObjC names in "
68 "disassembly listings is %s.\n"),
86 gdb_printf (file, _(
"The current C++ demangling style is \"%s\".\n"),
110 const struct demangler_engine *dem;
118 for (dem = libiberty_demanglers, i = 0;
119 dem->demangling_style != unknown_demangling;
123 dem->demangling_style_name) == 0)
125 current_demangling_style = dem->demangling_style;
134 gdb_assert (dem->demangling_style != unknown_demangling);
164 const char *arg_start;
165 int processing_args = 1;
168 std::string arg_buf = args != NULL ? args :
"";
169 arg_start = arg_buf.c_str ();
171 std::string lang_name;
172 while (processing_args
173 && *arg_start ==
'-')
175 const char *p = skip_to_space (arg_start);
177 if (strncmp (arg_start,
"-l", p - arg_start) == 0)
179 else if (strncmp (arg_start,
"--", p - arg_start) == 0)
184 arg_start = skip_spaces (p);
190 error (_(
"Usage: demangle [-l LANGUAGE] [--] NAME"));
192 if (!lang_name.empty ())
198 error (_(
"Unknown language \"%s\""), lang_name.c_str ());
204 gdb::unique_xmalloc_ptr<char> demangled
206 if (demangled != NULL)
209 error (_(
"Can't demangle \"%s\""),
name);
221 libiberty_demanglers[ndems].demangling_style != unknown_demangling;
226 libiberty_demanglers[i].demangling_style != unknown_demangling;
230 = xstrdup (libiberty_demanglers[i].demangling_style_name);
238Set demangling of encoded C++/ObjC names when displaying symbols."), _(
"\
239Show demangling of encoded C++/ObjC names when displaying symbols."), NULL,
245Set demangling of C++/ObjC names in disassembly listings."), _(
"\
246Show demangling of C++/ObjC names in disassembly listings."), NULL,
254Set the current C++ demangling style."), _(
"\
255Show the current C++ demangling style."), _(
"\
256Use `set demangle-style' without arguments for a list of demangling styles."),
262Demangle a mangled name.\n\
263Usage: demangle [-l LANGUAGE] [--] NAME\n\
264If LANGUAGE is not specified, NAME is demangled in the current language."),
struct cmd_list_element * showlist
struct cmd_list_element * showprintlist
struct cmd_list_element * cmdlist
struct cmd_list_element * setprintlist
struct cmd_list_element * setlist
struct cmd_list_element * add_cmd(const char *name, enum command_class theclass, const char *doc, struct cmd_list_element **list)
set_show_commands 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_func_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
set_show_commands add_setshow_boolean_cmd(const char *name, enum command_class theclass, bool *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_func_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
void report_unrecognized_option_error(const char *command, const char *args)
std::string extract_arg(const char **arg)
static void show_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)
bool is_cplus_marker(int c)
void _initialize_gdb_demangle()
static void set_demangling_command(const char *ignore, int from_tty, struct cmd_list_element *c)
static char cplus_markers[]
static const char ** demangling_style_names
static void show_asm_demangle(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
#define DEFAULT_DEMANGLING_STYLE
static const char * current_demangling_style_string
static void demangle_command(const char *args, int from_tty)
enum language language_enum(const char *str)
const struct language_defn * language_def(enum language lang)
const struct language_defn * current_language
virtual gdb::unique_xmalloc_ptr< char > demangle_symbol(const char *mangled, int options) const
void gdb_printf(struct ui_file *stream, const char *format,...)