korz@ZIPPY.BELLCORE.COM (Frederick M Korz) (06/24/89)
When dealing with typedefs, symtab.c leaves out a space between the name and word 'typedef'. It's just hard to read. Although I am running 3.1.2 with patches from gnu.gdb.bug, the same fault is true of the unpatched source. [Looking at the output below, I think there may be other problems. The June 'GNU's Bulletin' states that gdb 3.2 is part of the beta-tape. gdb 3.2 may have already fixed the problems I see below. {e.g. a 'struct path_element' has nothing to do with 'long unsigned int'.} Is this fixed and is it available? ] ------------------------------------------------------------------------------ The bug: fusion$gdb ../gdb/a.out GDB 3.1.2, Copyright (C) 1988 Free Software Foundation, Inc. There is ABSOLUTELY NO WARRANTY for GDB; type "info warranty" for details. GDB is free software and you are welcome to distribute copies of it under certain conditions; type "info copying" to see the conditions. Reading symbol data from /fs/16/21242/korz/GNU/gdb/3.1.2/s33/../gdb/a.out...done. Type "help" for a list of commands. (gdb) info types All defined types: File tst.c: struct _iobuf; typedef char; enum color; typedef double; typedef float; typedef int; typedef double; long doubletypedef int; long inttypedef unsigned int; long long inttypedef unsigned int; long long unsigned inttypedef unsigned int; long unsigned intstruct path_element; typedef short; short inttypedef unsigned short; short unsigned inttypedef char; signed chartypedef unsigned char; typedef unsigned int; typedef void; (gdb) ------------------------------------------------------------------------------ Here's the fix: *** symtab.c~ Tue Jun 20 14:33:49 1989 --- symtab.c Fri Jun 23 12:57:11 1989 *************** *** 1925,1931 **** && (TYPE_NAME ((SYMBOL_TYPE (sym))) == 0 || 0 != strcmp (TYPE_NAME ((SYMBOL_TYPE (sym))), SYMBOL_NAME (sym)))) ! printf (" %s", SYMBOL_NAME (sym)); } } } --- 1925,1931 ---- && (TYPE_NAME ((SYMBOL_TYPE (sym))) == 0 || 0 != strcmp (TYPE_NAME ((SYMBOL_TYPE (sym))), SYMBOL_NAME (sym)))) ! printf (" %s ", SYMBOL_NAME (sym)); } } }