This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: MI: -file-list-exec-source-files
On Fri, Jun 02, 2006 at 12:29:16PM +1200, Nick Roberts wrote:
> 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?
I believe, last time I looked at this, that it has something to do
with getting a symbol file from the symbolic dwarf debug information
(.debug_info) and another from the main entry in the line table.
However, that was a long time ago. You'd have to debug it.
> Is it safe to assume that duplicates will occur consecutively?
No, since we don't know why they occur ;-) Also, the debug information
may actually have multiple entries for one file; GDB doesn't try to
rejoin them into a single file. Some compilers do this.
--
Daniel Jacobowitz
CodeSourcery