This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: [MI] -file-list-exec-source-files
On Sun, Feb 15, 2004 at 10:45:25PM -0500, Bob Rossi wrote:
> On Sun, Feb 15, 2004 at 10:30:08PM -0500, Daniel Jacobowitz wrote:
> > On Thu, Feb 12, 2004 at 08:29:46PM -0500, Bob Rossi wrote:
> > > So, I have 2 solutions,
> > > 1. Modify the psytmab to also have the 'dirname'. Which seems
> > > difficult. Although I do think this is the best solution. (Not knowing
> > > to much about psymtabs and symtabs)
> > >
> > > 2. Change -file-list-exec-source-file to receive an optional filename,
> > > which when doing this causes GDB to read in the symtab associated with
> > > the psymtab. Then the fullname can be retrieved.
> >
> > The question is whether this information is available without having to
> > read full symtabs. Is this the dirname referenced in debug
> > information, or the dirname in which GDB has actually found the file?
> > I'm guessing that it's the latter, since so few debug readers bother to
> > fill in the former. If so we would have to search the directory path
> > for every file when generating psymtabs, which isn't acceptable. It
> > would take a fearsomely long time.
>
> Thanks for the response.
>
> Actually, I'm pretty sure it's the former.
> It's symtab->dirname, which seems to get filled in from the debug info.
> It looks like symtab->dirname gets set around buildsym.c:975.
> Is it bad to count on this feature if so few debug readers support the feature?
> It seems that at least "stabs" supports this feature.
Ah, both stabs and dwarf2 do. Stabs does it in a mighty twisty way,
see patch_subfile_names.
> Currently, as far as I know, it's the only way things like annotate
> 1,2 and 3 work. That's the only reliable way GDB gets the absolute path
> to the source file, is that correct? If there is another method GDB
> figures out the absolute path to the source file, I would be interested
> in hearing it.
The directory search path, for instance - see source.c. There's no
guarantee the source is where you left it. Making an IDE rely on the
guessed-from-debug-info path is just going to get the situation
confused.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer