X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f Message-ID: From: "Schumacher, Gordon" To: "'gdb AT gnu DOT org'" , "'djgpp AT delorie DOT com'" Subject: New GDB debugging stub for DJGPP Date: Tue, 12 Feb 2002 16:48:39 -0700 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: multipart/mixed; boundary="----_=_NextPart_000_01C1B41F.CBB95070" Reply-To: djgpp AT delorie DOT com This message is in MIME format. Since your mail reader does not understand this format, some or all of this message may not be legible. ------_=_NextPart_000_01C1B41F.CBB95070 Content-Type: text/plain; charset="iso-8859-1" Recently, I tried to set up serial GDB support in our DJGPP application. I generally run my application under Win98 - not DOS - and I pretty much couldn't make it work with the stub included in the DJGPP distribution. It appeared to me that characters just weren't getting transmitted/received reliably. So, I began casting about for serial libraries that I might use to replace the unreliable BIOS calls. What I ended up with, ultimately, is a nice modular method for using whichever serial library you might already have in your application. I've currently written function layers for SVAsync (what I used originally for development), DZComm (what we're going to use for some other stuff in our app), and BIOS calls (buyer beware). I found that debugging performance was best by far with DZComm. Since I moved to a Bit-Free Zone(tm) some months ago, my server is without any connectivity so I have nowhere to host this file. I'm attaching it here - it's only 11K - so that someone can put it someplace more reasonable. It doesn't have the Makefile or the sample app so as to save space. Hope this helps folks out! -- Gordon Schumacher FaST Tools Group Maxtor Corporation ------_=_NextPart_000_01C1B41F.CBB95070 Content-Type: application/octet-stream; name="gdbst02.tgz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gdbst02.tgz" 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 zz08/w8Ik5iWAPAAAA== ------_=_NextPart_000_01C1B41F.CBB95070--