This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 2/3] gdb: Improve output from "info types" commad


On 7/12/19 12:37 PM, Andrew Burgess wrote:
> This commit makes two changes to the "info types" command:
> 
> First, only use typedef_print for printing typedefs, and use
> type_print for printing non-typedef scalar (non-struct) types.  The
> result of this is the output for builtin types goes from this:
> 
>     typedef double;
>     typedef float;
>     typedef int;
> 
> to this:
> 
>     double;
>     float;
>     int;
> 
> which seems to make more sense.
> 
> Next GDB no longer matches msymbols as possible type names.  When
> looking for function symbols it makes sense to report matching
> msymbols from the text sections, and for variables msymbols from the
> data/bss sections, but when reporting types GDB would match msymbols
> of type absolute.  But I don't see why these are likely to indicate
> type names.  As such I've updated the msymbol matching lists in
> symtab.c:search_symbols so that when searching in the TYPES_DOMAIN, we
> never match any msymbols.
> 

That sounds fine to me.

> 	* symtab.c (search_symbols): Adjust msymbol matching type arrays
> 	so that GDB doesn't match any msymbols when searching in the
> 	TYPES_DOMAIN.
> 	(print_symbol_info): Print using typedef_print or type_print based
> 	on the type of the symbol.  Add updated FIXME comment mobed from...
> 	(_initialize_symtab): ... move and update FIXME comment to above.
> 

Typo: "mobed".

> gdb/testsuite/ChangeLog:
> 
> 	* gdb.base/info-types.c: New file.
> 	* gdb.base/info-types.exp: New file.
> 	* gdb.cp/info-types.cc: New file.
> 	* gdb.cp/info-types.exp: New file.

I'm not immediately seeing what the C++ testcase is trying to
test.  If you replace "class" with struct, and use "typedef struct AA"
instead of "typedef AA", isn't that code basically C code as well?

Also, might it be a good idea to check the info-types.c stuff in
C++ mode as well, to make sure we normalize C and C++ modes?
I.e., make gdb.base/info-types.exp compile once as a C program, and
once as a C++ program?

Thanks,
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]