diff options
author | Stu Grossman <grossman@cygnus> | 1998-08-12 15:50:59 +0000 |
---|---|---|
committer | Stu Grossman <grossman@cygnus> | 1998-08-12 15:50:59 +0000 |
commit | 433732f25e8aeb3587a1d4fe612009352cbb880c (patch) | |
tree | 1b458dc0618a6408d4287d09fb3876292232766e /gdb/parse.c | |
parent | 902459f256a3c49ce2b1b3a778d356042ed3b03f (diff) | |
download | gdb-433732f25e8aeb3587a1d4fe612009352cbb880c.zip gdb-433732f25e8aeb3587a1d4fe612009352cbb880c.tar.gz gdb-433732f25e8aeb3587a1d4fe612009352cbb880c.tar.bz2 |
* 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.
Diffstat (limited to 'gdb/parse.c')
-rw-r--r-- | gdb/parse.c | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/gdb/parse.c b/gdb/parse.c index 1cb6217..a7cd80d 100644 --- a/gdb/parse.c +++ b/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 } |