This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Finding source files under Cygwin
- From: Earl Chew <earl_chew at agilent dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Fri, 13 Sep 2002 17:57:32 -0700
- Subject: Finding source files under Cygwin
- Organization: Agilent Technologies
I have object files compiled that have directory names such as:
D:/xxx/yyy/zzz
embedded in them. In source.c, open_source_file() tries to use
this information to locate the source files.
Unfortunately, it gets confused because the directory gets
substituted for $cdir, and the embedded colon confuses
openp() which considers two separate path components: D and
/xxx/yyy/zzz.
One fix I can think of is to fix open_source_file() using
#ifdef __CYGWIN__ to silently subsitute /cygdrive/d/xxx/yyy/zzz
instead.
A variation on this is to make the fix in buildsym.c instead
(ie store the corrected version of the directory instead of
patching it later). I don't think this is the best way to go.
Another fix is to make source.c use ; (semicolon) as a path
separator instead of : (colon) should HAVE_DOS_BASED_FILE_SYSTEM
be true. The downside here is that it might be surprising
to current cygwin users.
A variation is to have open_source_file() build a new path string,
replacing : with ; (under HAVE_DOS_BASED_FILE_SYSTEM), and have
openp deal with ;. Thus the user interface sees : -- but internally
openp breaks up the path at ;.
Sigh.
Earl