This is the mail archive of the insight@sources.redhat.com mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Can't find source files


> -----Original Message-----
> From: insight-owner On Behalf Of geneSmith
> Sent: 12 October 2004 14:31

> Dave Korn wrote, On 10/12/2004 5:04 AM:
> 
> >>-----Original Message-----
> >>From: insight-owner On Behalf Of geneSmith
> >>Sent: 11 October 2004 23:26

> >>If you set directory to:
> >>
> >>/cygdrive/d
> >>
> >>and your $cdir is /home/gene/source
> >>
> >>where d is a samba drive mapped to /
> >>
> >>Is there a reason why insight/gdb would not find the files at
> >>
> >>/cygdrive/d/home/gene/source ?

> >   ? I can't see anything in the gdb docs that suggests it 
> would concatenate $cdir to $cwd.  Where do you get that from ?

> What I am implying is that gdb concatentates the paths specified by 
> "directory" with the path to the source file contained in the object 
> file as described in Debugging with GDB section 7.4, 
> Specifying source directories.

  That's the same bit I read.  Where do you see the word 'concatenate' in
that?

> (Maybe I dont' completely know the meaining of $cdir?)

  I think you're making a false assumption about how path searching works.
Look:

"   When you start GDB, its source path includes only `cdir' and `cwd',
in that order.  To add other directories, use the `directory' command. "

  So, in your case, the source path will include "/home/gene/source" ($cdir,
the compilation dir) and "/cygdrive/d", your current directry ($cwd).  Now
read the bit about how the path search operates:

"  GDB has a list of directories to search for
source files; this is called the "source path".  Each time GDB wants a
source file, it tries all the directories in the list, in the order
they are present in the list, until it finds a file with the desired
name.  "

  So, first gdb looks for your source file in "/home/gene/source", then it
looks in "/cygdrive/d".  Neither of those are the path to your source file,
so it doesn't find it.  At no time does it start concatenating the different
directories in the source path.  It won't look in
/cygdrive/d/home/gene/source.  It won't look in /home/gene/source/cygdrive/d
either, which is what you're suggesting it should do, but is more obviously
wrong....!

  This is all just the same as how $PATH works in your shell.  If you have

PATH=/bin:/usr/bin

you wouldn't expect it to find executables in /bin/usr/bin, would you?

    cheers, 
      DaveK
-- 
Can't think of a witty .sigline today....


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]