1 Oct 2003 15:10
Re: Using gdb with Borland's free compiler?
Christopher Faylor <cgf <at> redhat.com>
2003-10-01 13:10:15 GMT
2003-10-01 13:10:15 GMT
On Tue, Sep 30, 2003 at 10:58:06PM -0700, Joel Brobecker wrote: >> So far the basic problem with just using cygwin's gdb seems to be lack >> of understanding of MS-DOS paths. It should be doable to fix up gdb to >> understand those better in the cygwin port, if that was the only >> problem. > >This part is actually (almost) easy. By simply defining a few macros >that do the conversion between DOS and cygwin formats, we managed to >get a cygwin GDB that talks DOS paths. We never submitted these patches >for approval because we felt they would never be accepted. After all, >when you use a cygwin debugger, chances are you prefer to see cygwin >paths. Maybe we could compromise by using a two-state variable or >a boolean variable. We would have cygwin paths by default, but changing >the setting of this variable would allow you to get DOS paths instead? I have the same policy with gdb that I do with cygwin as far as DOS paths are concerned. I certainly don't want to make them hard to use but if there are problems using them, I'm not going to be first in line to fix the problem. I thought that someone had actually made some changes to gdb a while ago to get things working correctly with DOS paths but this isn't the kind of thing that I routinely check. >I say it's almost easy because we tested these changes against GNAT, >which is a migw compiler. We never stress-tested it against a cygwin >compiler for instance. > >The real annoying problem that we have been facing with a cygwin GDB >is its dependence on the cygwin dll. That makes distribution of GDB >binaries more challenging, because now we need to distribute this DLL >too. All is fine when the customer host doesn't use cygwin, but it >becomes potentially problematic when he does and the DLL versions >don't match... And, of course, it requires you to distribute source code for the cygwin DLL itself. FWIW, newer cygwin DLLs are always guaranteed to work with older binaries, so it should be just a matter of checking the version and not installing the older version. (And, nearly every time I say this, someone says "I'm pretty sure there was some problem with a newer DLL but I don't remember what it was.") cgf