Re: MI: -file-list-exec-source-files

Daniel Jacobowitz
2006-06-02T20:24:31Z

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