From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11011 invoked by alias); 13 May 2002 03:10:10 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 10994 invoked from network); 13 May 2002 03:10:06 -0000 Received: from unknown (HELO duracef.shout.net) (204.253.184.12) by sources.redhat.com with SMTP; 13 May 2002 03:10:06 -0000 Received: (from mec@localhost) by duracef.shout.net (8.11.6/8.11.6) id g4D3A4R20206; Sun, 12 May 2002 22:10:04 -0500 Date: Sun, 12 May 2002 20:10:00 -0000 From: Michael Elizabeth Chastain Message-Id: <200205130310.g4D3A4R20206@duracef.shout.net> To: drow@mvista.com Subject: Re: [RFA] Fix gdb/277 by separating types Cc: gdb-patches@sources.redhat.com X-SW-Source: 2002-05/txt/msg00437.txt.bz2 I do build an object directory from scratch (just to avoid these kinds of problems). BTW I am using gcc 2.95.3, I don't know where you got 2.95.2 from. I bet the difference in our machines is somewhere in libc. I am using stock red hat linux 7.2 glibc, glibc 2.2.4-13. It's reproducing on my machine. Here's a shorter recipe: ./gdb gdb.base/break (gdb) break main (gdb) run (gdb) maint print symbols symbols_output Have a look at the end of symbols_output in the tarball. Mine is reproducibly crapping out in file 'init.c' here: typedef void (*__gconv_end_fct)(); typedef int (*__gconv_fct)(); struct __gconv_info { size_t __nsteps; struct __gconv_step *__steps; struct __gconv_step_data __data[0]; }; typedef int (*__gconv_init_fct)(); struct __gconv_step { When I do maint-print-symbols with gdb 5.2, it runs fine, and gives me this output for __gconv_step: typedef int (*__gconv_init_fct)(struct __gconv_step *); struct __gconv_step { struct __gconv_loaded_object *__shlib_handle; const char *__modname; int __counter; char *__from_name; char *__to_name; int (*__fct)(struct __gconv_step *, struct __gconv_step_data *, const unsigned char **, const unsigned char *, unsigned char **, size_t *, int, int); int (*__init_fct)(struct __gconv_step *); void (*__end_fct)(struct __gconv_step *); int __min_needed_from; int __max_needed_from; int __min_needed_to; int __max_needed_to; int __stateful; void *__data; }; In the stack trace, I'm seeing it crap out on c_print_type of __shlib_handle. __gconv_loaded_object is a forward reference, but it is not defined in this symtab: it is defined in a different symtab. Michael C