From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 16983 invoked by alias); 2 Jun 2006 23:31:50 -0000 Received: (qmail 16964 invoked by uid 22791); 2 Jun 2006 23:31:49 -0000 X-Spam-Check-By: sourceware.org Received: from web51811.mail.yahoo.com (HELO web51811.mail.yahoo.com) (206.190.39.230) by sourceware.org (qpsmtpd/0.31) with SMTP; Fri, 02 Jun 2006 23:31:46 +0000 Received: (qmail 10240 invoked by uid 60001); 2 Jun 2006 23:31:44 -0000 Message-ID: <20060602233144.10238.qmail@web51811.mail.yahoo.com> Date: Fri, 02 Jun 2006 23:31:00 -0000 From: Subject: Re: MI: -file-list-exec-source-files To: gdb@sourceware.org In-Reply-To: <1149277048.21408.ezmlm@sourceware.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii 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/msg00006.txt.bz2 >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. (BTW, if this message is not part of the thread it is because I subscribe to the digest. Apologies in advance) Regards, _____________________________ Susan Macchia mailto:susan@smacchia.net http://www.smacchia.net _____________________________