This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB 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]

Finding source files under Cygwin


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


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