* c-typeprint.c (c_print_type): Don't crash if varstring is null.
* expprint.c expression.h (dump_expression): Rename to dump_prefix_expression. * Print out the expression in normal form. Call print_longest instead of trying to do it ourselves. * (dump_postfix_expression): New function, prints out the expression with indentation and better formatting and interpretation. * parse.c (parse_exp_1): Put calls to dump expressions under ifdef MAINTENANCE_CMDS and expressiondebug variable.
This commit is contained in:
parent
902459f256
commit
433732f25e
4 changed files with 389 additions and 39 deletions
29
gdb/parse.c
29
gdb/parse.c
|
@ -38,6 +38,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
|||
#include "command.h"
|
||||
#include "language.h"
|
||||
#include "parser-defs.h"
|
||||
#include "gdbcmd.h"
|
||||
#include "symfile.h" /* for overlay functions */
|
||||
|
||||
/* Global variables declared in parser-defs.h (and commented there). */
|
||||
|
@ -54,6 +55,10 @@ char *namecopy;
|
|||
int paren_depth;
|
||||
int comma_terminates;
|
||||
|
||||
#ifdef MAINTENANCE_CMDS
|
||||
static int expressiondebug = 0;
|
||||
#endif
|
||||
|
||||
static void
|
||||
free_funcalls PARAMS ((void));
|
||||
|
||||
|
@ -911,9 +916,19 @@ parse_exp_1 (stringptr, block, comma)
|
|||
/* Convert expression from postfix form as generated by yacc
|
||||
parser, to a prefix form. */
|
||||
|
||||
DUMP_EXPRESSION (expout, gdb_stdout, "before conversion to prefix form");
|
||||
#ifdef MAINTENANCE_CMDS
|
||||
if (expressiondebug)
|
||||
dump_prefix_expression (expout, gdb_stdout,
|
||||
"before conversion to prefix form");
|
||||
#endif /* MAINTENANCE_CMDS */
|
||||
|
||||
prefixify_expression (expout);
|
||||
DUMP_EXPRESSION (expout, gdb_stdout, "after conversion to prefix form");
|
||||
|
||||
#ifdef MAINTENANCE_CMDS
|
||||
if (expressiondebug)
|
||||
dump_postfix_expression (expout, gdb_stdout,
|
||||
"after conversion to prefix form");
|
||||
#endif /* MAINTENANCE_CMDS */
|
||||
|
||||
*stringptr = lexptr;
|
||||
return expout;
|
||||
|
@ -1043,4 +1058,14 @@ _initialize_parse ()
|
|||
init_type (TYPE_CODE_INT, 1, 0,
|
||||
"<variable (not text or data), no debug info>",
|
||||
NULL);
|
||||
|
||||
#ifdef MAINTENANCE_CMDS
|
||||
add_show_from_set (
|
||||
add_set_cmd ("expressiondebug", class_maintenance, var_zinteger,
|
||||
(char *)&expressiondebug,
|
||||
"Set expression debugging.\n\
|
||||
When non-zero, the internal representation of expressions will be printed.",
|
||||
&setlist),
|
||||
&showlist);
|
||||
#endif
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue