Mail Archives: djgpp-workers/2001/04/27/11:30:51
> Date: Fri, 27 Apr 2001 16:34:16 +0300
> From: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>
>
> I did find in dwarf2read.c some issue with DOSish file names, for
> which I'll submit a patch, but I don't think that could be a problem
> in this simple test case, since it didn't involve absolute file names.
> In order for me to DTRT in the patch, could someone please compile and
> link with -gdwarf-2 files whose names are in DOS-style form, like
> "d:/foo.c", "d:\foo\bar.c", and "d:/FOO/Bar.c", and see how do they
> end up in the debug info? In particular, do the backslashes stay as
> backslashes, and is the file-name letter-case changed in any way?
Btw, "gcc -gstabs+ d:/foo/bar.c" doesn't DTRT with DOS-style absolute
file names: it seems to think that d:/foo/bar.c is a relative file
name, because it records it in its entirety in the stabs string where
only the basename should be recorded. This then causes objdump to
become confused and display file names like d:/foo/d:/foo/bar.c; I'm
guessing that other programs which read the debug info, such as GDB,
will be confused as well.
This seems to be a bug in GCC (including v2.95.3); to see that, try
"gcc -S -gstabs+ d:/foo/bar.c" and then look at bar.S.
I vaguely remember that I reported something like this in the past.
Is this problem fixed in GCC 3.0?
I think GCC should convert all backslashes to forward slashes when it
records the file names and directory names in the debug info. This
will leave the debuggers with only two problems: the drive letter and
the case-insensitive file-name comparison. GDB should be able to
handle this with the macros provided by include/filenames.h which it
shares with Binutils.
- Raw text -