We have a bug report where a user is seeing the following:
Can't find a source file at "/foo/bar/baz.cc"
Locate the file or edit the source lookup path to include its location.
The sources are in a different location from where they were originally compiled when this happens.
The change in behaviour from 7.5 to 7.6 is that the output now includes "fullname" even if the file isn't found, and I think(!) this is what causes Eclipse trouble.
[I'm using -fdebug-prefix-map and "b main" as a hack. The real example does something different.]
gcc -g -fdebug-prefix-map=$HOME=. hello.c
gdb -i=mi2 $HOME/a.out
~"Breakpoint 1 at 0x4004f8: file hello.c, line 6.\n"
With 7.5 the "fullname" field is elided and Eclipse uses the "file" field to find hello.c. [Eclipse has its own source search path.]
Filing for reference sake.
Here is the upstream discussion from the time the patch was submitted.
Marc Khouzam said the change was ok for Eclipse here:
I'm not sure how to proceed.
AIUI, Note that Eclipse maintains its own list of source search directories, and it will use them if gdb provides it a relative path. But if gdb provides a full path then Eclipse will trust that it's correct. In the failure that triggered this bug report Eclipse *could* find the source file if gdb didn't provide the full path to a non-existent file.
I believe Eclipse should use GDB "set directories ..." so that both Eclipse and GDB know the same source files directories search path.
If you use the GDB console window in Eclipse one should have the same source files availability there as in Eclipse itself. (I understand >99% of Eclipse users do not use the GDB console window but still.)