* NEWS: Document "info variables" change.

* dwarf2read.c (new_symbol): Add file-scope external unresolved
	symbols to global_symbols.
	* symtab.c (search_symbols): Skip LOC_UNRESOLVED symbols.

	doc/
	* gdb.texinfo (Symbols): "info variables" prints definitions, not
	declarations.
This commit is contained in:
Daniel Jacobowitz 2009-12-28 21:29:53 +00:00
parent 22e722e199
commit 0fe7935b33
6 changed files with 29 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2009-12-28 Daniel Jacobowitz <dan@codesourcery.com>
* NEWS: Document "info variables" change.
* dwarf2read.c (new_symbol): Add file-scope external unresolved
symbols to global_symbols.
* symtab.c (search_symbols): Skip LOC_UNRESOLVED symbols.
2009-12-28 Daniel Jacobowitz <dan@codesourcery.com>
* defs.h (print_address_symbolic, build_address_symbolic): Update

View File

@ -30,6 +30,10 @@ disassemble
The disassemble command, when invoked with two arguments, now requires
the arguments to be comma-separated.
info variables
The info variables command now displays variable definitions. Files
which only declare a variable are not shown.
* New commands (for set/show, see "New options" below)
record save [<FILENAME>]

View File

@ -1,3 +1,8 @@
2009-12-28 Daniel Jacobowitz <dan@codesourcery.com>
* gdb.texinfo (Symbols): "info variables" prints definitions, not
declarations.
2009-12-21 Vladimir Prus <vladimir@codesourcery.com>
* gdb.texinfo (GDB/MI Miscellaneous Commands): Clarify that

View File

@ -12924,7 +12924,7 @@ that conflict with the regular expression language (e.g.@:
@kindex info variables
@item info variables
Print the names and data types of all variables that are declared
Print the names and data types of all variables that are defined
outside of functions (i.e.@: excluding local variables).
@item info variables @var{regexp}

View File

@ -8463,8 +8463,15 @@ new_symbol (struct die_info *die, struct type *type, struct dwarf2_cu *cu)
if (attr2 && (DW_UNSND (attr2) != 0)
&& dwarf2_attr (die, DW_AT_type, cu) != NULL)
{
struct pending **list_to_add;
/* A variable with DW_AT_external is never static, but it
may be block-scoped. */
list_to_add = (cu->list_in_scope == &file_symbols
? &global_symbols : cu->list_in_scope);
SYMBOL_CLASS (sym) = LOC_UNRESOLVED;
add_symbol_to_list (sym, cu->list_in_scope);
add_symbol_to_list (sym, list_to_add);
}
else if (!die_is_declaration (die, cu))
{

View File

@ -3296,7 +3296,9 @@ search_symbols (char *regexp, domain_enum kind, int nfiles, char *files[],
&& ((regexp == NULL
|| re_exec (SYMBOL_NATURAL_NAME (*psym)) != 0)
&& ((kind == VARIABLES_DOMAIN && SYMBOL_CLASS (*psym) != LOC_TYPEDEF
&& SYMBOL_CLASS (*psym) != LOC_BLOCK)
&& SYMBOL_CLASS (*psym) != LOC_UNRESOLVED
&& SYMBOL_CLASS (*psym) != LOC_BLOCK
&& SYMBOL_CLASS (*psym) != LOC_CONST)
|| (kind == FUNCTIONS_DOMAIN && SYMBOL_CLASS (*psym) == LOC_BLOCK)
|| (kind == TYPES_DOMAIN && SYMBOL_CLASS (*psym) == LOC_TYPEDEF))))
{
@ -3372,6 +3374,7 @@ search_symbols (char *regexp, domain_enum kind, int nfiles, char *files[],
&& ((regexp == NULL
|| re_exec (SYMBOL_NATURAL_NAME (sym)) != 0)
&& ((kind == VARIABLES_DOMAIN && SYMBOL_CLASS (sym) != LOC_TYPEDEF
&& SYMBOL_CLASS (sym) != LOC_UNRESOLVED
&& SYMBOL_CLASS (sym) != LOC_BLOCK
&& SYMBOL_CLASS (sym) != LOC_CONST)
|| (kind == FUNCTIONS_DOMAIN && SYMBOL_CLASS (sym) == LOC_BLOCK)