* parser-defs.h (parser_debug): Declare.
	* parse.c (_initialize_parse): Install "debug parser" set/show
	command.
	(parser_debug): New global.
	(show_parserdebug): New function.
	* c-exp.y (c_parse): Set yydebug.
gdb/testsuite
	* gdb.texinfo (Debugging Output): Document set debug parser and
	show debug parser.
This commit is contained in:
Tom Tromey 2010-02-10 18:57:21 +00:00
parent 9fd3625f79
commit 92981e2446
6 changed files with 48 additions and 0 deletions

View File

@ -1,3 +1,12 @@
2010-02-10 Tom Tromey <tromey@redhat.com>
* parser-defs.h (parser_debug): Declare.
* parse.c (_initialize_parse): Install "debug parser" set/show
command.
(parser_debug): New global.
(show_parserdebug): New function.
* c-exp.y (c_parse): Set yydebug.
2010-02-10 H.J. Lu <hongjiu.lu@intel.com>
* target-descriptions.c (tdesc_type): Add TDESC_TYPE_I387_EXT,

View File

@ -2450,6 +2450,9 @@ c_parse (void)
gdb_assert (! macro_original_text);
make_cleanup (scan_macro_cleanup, 0);
make_cleanup_restore_integer (&yydebug);
yydebug = parser_debug;
/* Initialize some state used by the lexer. */
last_was_structop = 0;
saw_name_at_eof = 0;

View File

@ -1,3 +1,8 @@
2010-02-10 Tom Tromey <tromey@redhat.com>
* gdb.texinfo (Debugging Output): Document set debug parser and
show debug parser.
2010-02-09 H.J. Lu <hongjiu.lu@intel.com>
* gdb.texinfo (Predefined Target Types): Add i387_ext,

View File

@ -18848,6 +18848,15 @@ is off.
@item show debug overload
Displays the current state of displaying @value{GDBN} C@t{++} overload
debugging info.
@cindex expression parser, debugging info
@cindex debug expression parser
@item set debug parser
Turns on or off the display of expression parser debugging output.
Internally, this sets the @code{yydebug} variable in the expression
parser. @xref{Tracing, , Tracing Your Parser, bison, Bison}, for
details. The default is off.
@item show debug parser
Show the current state of expression parser debugging.
@cindex packets, reporting on stdout
@cindex serial connections, debugging
@cindex debug remote protocol

View File

@ -109,6 +109,18 @@ show_expressiondebug (struct ui_file *file, int from_tty,
fprintf_filtered (file, _("Expression debugging is %s.\n"), value);
}
/* Non-zero if an expression parser should set yydebug. */
int parser_debug;
static void
show_parserdebug (struct ui_file *file, int from_tty,
struct cmd_list_element *c, const char *value)
{
fprintf_filtered (file, _("Parser debugging is %s.\n"), value);
}
static void free_funcalls (void *ignore);
static int prefixify_expression (struct expression *);
@ -1377,4 +1389,12 @@ When non-zero, the internal representation of expressions will be printed."),
NULL,
show_expressiondebug,
&setdebuglist, &showdebuglist);
add_setshow_boolean_cmd ("parser", class_maintenance,
&parser_debug, _("\
Set parser debugging."), _("\
Show parser debugging."), _("\
When non-zero, expression parser tracing will be enabled."),
NULL,
show_parserdebug,
&setdebuglist, &showdebuglist);
}

View File

@ -29,6 +29,8 @@
struct block;
extern int parser_debug;
extern struct expression *expout;
extern int expout_size;
extern int expout_ptr;