From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3881 invoked by alias); 2 Oct 2007 20:03:19 -0000 Received: (qmail 3862 invoked by uid 22791); 2 Oct 2007 20:03:17 -0000 X-Spam-Check-By: sourceware.org Received: from mail.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.4) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 02 Oct 2007 20:03:13 +0000 Received: (qmail 20599 invoked from network); 2 Oct 2007 20:03:11 -0000 Received: from unknown (HELO localhost) (jimb@127.0.0.2) by mail.codesourcery.com with ESMTPA; 2 Oct 2007 20:03:11 -0000 To: Carlos Eduardo Seo Cc: gdb@sourceware.org, drow@false.org Subject: Re: DWARF question References: <46FAC9D7.9080001@linux.vnet.ibm.com> <20070926212539.GA17502@caradoc.them.org> <46FAD46B.9000006@br.ibm.com> <46FD5A9B.2070004@linux.vnet.ibm.com> <46FD7AE9.8030208@linux.vnet.ibm.com> <4701333C.9040705@linux.vnet.ibm.com> From: Jim Blandy Date: Tue, 02 Oct 2007 20:03:00 -0000 In-Reply-To: <4701333C.9040705@linux.vnet.ibm.com> (Carlos Eduardo Seo's message of "Mon, 01 Oct 2007 14:49:48 -0300") Message-ID: User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.0.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2007-10/txt/msg00020.txt.bz2 Carlos Eduardo Seo writes: > Jim Blandy wrote: >> >> What probably happens is that '-readnow' somehow affects the order in >> which the full symtabs get put in the list. I'm surprised that >> breakpoints by line number in both main and the function work, but I >> guess that has something to do with the nature of the bug in >> find_line_symtab. > Here's what I got. The loop 'ALL_SYMTABS' has only one iteration > because 's->next' is NULL. So it seems that GDB isn't loading the > other symtab. > > When I use '-readnow', both symtabs are there: > > (top-gdb) p s->filename > $6 = 0x106a4930 "init.c" > (top-gdb) p (s->next)->filename > $7 = 0x1069cf10 "/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crti.S" > (top-gdb) p ((s->next)->next)->filename > $8 = 0x1069cc60 "test-main.f" > (top-gdb) p (((s->next)->next)->next)->filename > $9 = 0x1069c280 "test-main.f" > (top-gdb) p ((((s->next)->next)->next)->next)->filename > $10 = 0x1068d5c0 "crtsavres.S" > (top-gdb) p (((((s->next)->next)->next)->next)->next)->filename > $11 = 0x1068d2a0 "/usr/src/packages/BUILD/glibc-2.4/cc-nptl/csu/crtn.S" > (top-gdb) p (((((s->next)->next)->next)->next)->next)->next > $17 = (struct symtab *) 0x0 By the way, you might want to try using 'maint info symtabs' and 'maint info psymtabs'. You can give it a regexp to restrict the symtabs it lists. It gives you expressions you can copy and paste into the GDB debugging GDB if you want to look into something in more detail.