From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29891 invoked by alias); 3 Jun 2006 00:05:14 -0000 Received: (qmail 29883 invoked by uid 22791); 3 Jun 2006 00:05:13 -0000 X-Spam-Check-By: sourceware.org Received: from intranet.codesourcery.com (HELO mail.codesourcery.com) (65.74.133.6) by sourceware.org (qpsmtpd/0.31) with ESMTP; Sat, 03 Jun 2006 00:05:12 +0000 Received: (qmail 12309 invoked from network); 3 Jun 2006 00:05:11 -0000 Received: from unknown (HELO localhost) (jimb@127.0.0.2) by mail.codesourcery.com with ESMTPA; 3 Jun 2006 00:05:11 -0000 To: Cc: gdb@sourceware.org Subject: Re: MI: -file-list-exec-source-files References: <20060602233144.10238.qmail@web51811.mail.yahoo.com> From: Jim Blandy Date: Sat, 03 Jun 2006 00:05:00 -0000 In-Reply-To: <20060602233144.10238.qmail@web51811.mail.yahoo.com> (susan@smacchia.net's message of "Fri, 2 Jun 2006 16:31:44 -0700 (PDT)") 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-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2006-06/txt/msg00008.txt.bz2 writes: >>Subject: Re: MI: -file-list-exec-source-files >>Jim Blandy wrote: >> >>Nick Roberts writes: >>> The command "-file-list-exec-source-files" often (always?) prints out each >>> file twice: >>> >>> -file-list-exec-source-files >>> >done,files=[{file="myprog.c",fullname="/home/nickrob/myprog.c"},{file="myprint.c",fullname="/home/nickrob/myprint.c"},{file="myprint.c",fullname="/home/nickrob/myprint.c"},{file="myprog.c",fullname="/home/nickrob/myprog.c"}] >>> >>> Looking at the code I had hoped that one cane from the symbol table and the >>> other from the partial symbol table but in fact, when I try it, they both >>> come from the partial symbol table. When the program being debugged has lots >>> of source files (1000's) this is very wasteful, so I would like to make this >>> command just print out each file once. Before I do I'd like to ask: >>> >>> Why does the partial symbol table have duplicate copies? >>> >>> Is it safe to assume that duplicates will occur consecutively? >> >>I think I understand why header files get duplicated, but why .c files >>would, too, I don't know. If you can figure it out, let me know. (So >>I certainly don't know whether they will always appear consecutively.) > > This can happen with .c files too. It depends on *how* they are compiled. > Each represents a compilation unit (or something like that). Imagine you > have foo.c which includes foo.h that has "#ifdef SOMETHING". In one > instance you compile foo.c with SOMETHING defined, another without. > Then link then together. You will have 2 instances of foo.c, in this case. I don't think this is what's going on here. I think that even if you aren't doing any tricks of that sort, the psymtab table ends up with duplicate entries. > (BTW, if this message is not part of the thread it is because I subscribe to the digest. > Apologies in advance) (It seems to be part of the thread.)