OSDN Git Service

gdb
authorTom Tromey <tromey@redhat.com>
Fri, 6 Jun 2008 20:58:08 +0000 (20:58 +0000)
committerTom Tromey <tromey@redhat.com>
Fri, 6 Jun 2008 20:58:08 +0000 (20:58 +0000)
commit96d06332153b28d32d3b0a1d65fa88d1f5d911d7
tree9c14d6a1bdbdd9e2df41cf2a0e947e17d96ff3a3
parent17db8ecec884aa520424ac2955ae1b2b3cba3a63
gdb
* value.h (evaluate_subexpression_type, extract_field_op):
Declare.
* printcmd.c (_initialize_printcmd): Use expression_completer for
'p', 'inspect', 'call'.
* parser-defs.h (parse_field_expression): Declare.
* parse.c: Include exceptions.h.
(in_parse_field, expout_last_struct): New globals.
(mark_struct_expression): New function.
(prefixify_expression): Return int.
(prefixify_subexp): Return int.  Use expout_last_struct.
(parse_exp_1): Update.
(parse_exp_in_context): Add 'out_subexp' argument.  Handle
in_parse_field.
(parse_field_expression): New function.
* expression.h (parse_field_expression): Declare.
(in_parse_field): Likewise.
* eval.c (evaluate_subexpression_type): New function.
(extract_field_op): Likewise.
* completer.h (expression_completer): Declare.
* completer.c (expression_completer): New function.
(count_struct_fields, add_struct_fields): New functions.
* c-exp.y (yyparse): Redefine.
(COMPLETE): New token.
(exp): New productions.
(saw_name_at_eof, last_was_structop): New globals.
(yylex): Return COMPLETE when needed.  Recognize in_parse_field.
(c_parse): New function.
* breakpoint.c (_initialize_breakpoint): Use expression_completer
for watch, awatch, and rwatch.
* Makefile.in (parse.o): Depend on exceptions_h.
gdb/testsuite
* gdb.base/break1.c (struct some_struct): New struct.
(values): New global.
* gdb.base/completion.exp: Add field name completion test.
gdb/doc
* gdb.texinfo (Completion): Add field name example.
18 files changed:
gdb/ChangeLog
gdb/Makefile.in
gdb/NEWS
gdb/breakpoint.c
gdb/c-exp.y
gdb/completer.c
gdb/completer.h
gdb/doc/ChangeLog
gdb/doc/gdb.texinfo
gdb/eval.c
gdb/expression.h
gdb/parse.c
gdb/parser-defs.h
gdb/printcmd.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/break1.c
gdb/testsuite/gdb.base/completion.exp
gdb/value.h