From: Dave Bird Newsgroups: comp.os.msdos.djgpp Subject: GDB to debug Masm/Nasn output? Date: Sat, 20 Feb 1999 19:52:46 +0000 Organization: very little Message-ID: NNTP-Posting-Host: xemu.demon.co.uk X-NNTP-Posting-Host: xemu.demon.co.uk:158.152.196.209 X-Trace: news.demon.co.uk 919540777 nnrp-03:19385 NO-IDENT xemu.demon.co.uk:158.152.196.209 X-Complaints-To: abuse AT demon DOT net MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain;charset=iso-8859-1 X-Newsreader: Turnpike (32) Version 4.01 Lines: 63 To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Dear People, I have a large Intel-style assembler program shared with other users, who are very unlikely to mess with different assemblers than MASM (or I could get them NASM) or with high level. This is a given. It needs to start using protected mode or "unreal mode" for very big data structures. Can I debug MASM (or NASM) output with GDB or similar? I can't use CodeView because it will reset large segment limits back to 64K or TubboDebug because it won't let me allocate loads of memory; apparently if I use masm's LINK /CO then I am producing COFF output. I have the latest DJGPP2.2 package from DJ's website. However, GDB says "wrong file format" -- even though according to the FAQ it should run EXE as well as COFF -- and exe2coff equally says that the file hasn't got a COFF section. Help! This may be a MASM problem as much as anything; maybe I need a different Intel-style assembler which will produce output GDB can eat? Regards, DAVE. BEGIN FAQ QUOTE=======================================================[ 12.4 GDB would not debug unless it sees COFF output Q: I try invoking GDB on my program, but it says: "not in executable format: File format not recognized." Huh? + +---------------------------------------------------------------------+ A: Most probably, you've invoked GDB from DJGPP v2.0 on a .exe program. That version of GDB needs to be called with the name of un-stubbed COFF executable as its argument. To get both a .exe and a COFF file, you should make your link command line look this way: gcc -o foo foo.o instead of gcc -o foo.exe foo.o (the latter will only produce foo.exe, while the former produces both foo, the COFF executable which gdb needs, and foo.exe). To produce a COFF file from a .exe program, use the EXE2COFF program which comes with DJGPP, like this: exe2coff foo.exe Debuggers which come with DJGPP v2.01 can debug COFF and .exe programs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ alike, so upgrading to v2.01 should solve this problem. ========================================================]END FAQ QUOTE. -- Dave[XEMU] ________________(....=^¬¬^=______ ---<,,">