The MASM Forum Archive 2004 to 2012

General Forums => The Campus => Topic started by: Magnum on October 30, 2011, 03:36:53 AM

Title: Can't get debug info in programs
Post by: Magnum on October 30, 2011, 03:36:53 AM
I used this to put in Debug info, but it gives me error messages with both ml.exe and link.exe.

This occurs with versions 8.0 and 9.0.

One of the messages was incorrect version of mspdb80.dll ?

\masm32\bin\ml /c /coff /Zi /Zd %1.asm
\masm32\bin\Link /DEBUG /SUBSYSTEM:WINDOWS /OPT:NOREF /RELEASE %1.obj
Title: Re: Can't get debug info in programs
Post by: dedndave on October 30, 2011, 03:56:15 AM
hmmmmmm
i think, with the newer assembler/linker, the DLL has to be locatable via the PATH environment variable
if you have a different version of the DLL that is found before the desired file when PATH is expanded, you are likely to get an error (like if there is one in the system32 folder)

there are a number of ways around it
one way is to use SETLOCAL in the assembly batch file
another would be to ensure the PATH variable is set up accordingly
make sure the assembler, linker, and DLL are in the same folder, too
Title: Re: Can't get debug info in programs
Post by: Magnum on October 30, 2011, 04:19:33 AM
All the files needed are in a directory in my path statement.

All the necessary files are in the same folder

Not familiar with SetLocal ?

Title: Re: Can't get debug info in programs
Post by: dedndave on October 30, 2011, 04:31:01 AM
it is similar to SET
SET PATH=blah;blah;blah

only with SETLOCAL, it applies temporarily - until the batch file has finished

you may want to check the order that the paths are listed in the environment variable
the OS looks in the first listed paths, first

so, using SETLOCAL, you can force your C:\Masm32\Bin folder to be first in the list
SETLOCAL PATH=C:\Masm32\Bin;%PATH%

once the batch file has finished, the PATH variable will return to the previous state

Title: Re: Can't get debug info in programs
Post by: dedndave on October 30, 2011, 04:34:06 AM
if that does not fix the problem, ensure you have the correct DLL
open a console window and change the current directory to the \Masm32\Bin folder
then try running ML and LINK from the console window
Title: Re: Can't get debug info in programs
Post by: ToutEnMasm on October 30, 2011, 06:47:54 AM
Quote
I used this to put in Debug info, but it gives me error messages with both ml.exe and link.exe
What types of messages ?
Quote
One of the messages was incorrect version of mspdb80.dll ?
This let think you have a linker who is more recent than the old one of masm32,perhaps also a recent windbg.This dll is updated often to reflect the change  in the .pdb format.
If it is the case proceed as follow:
http://www.masm32.com/board/index.php?topic=17184.msg143589#msg143589


Title: Re: Can't get debug info in programs
Post by: jj2007 on October 30, 2011, 07:27:59 AM
Here is a little overview. Note all these work fine if you don't insist on debug info.

Jwasm /Zi, linkv614 /debug works fine, fast
mlv614 /Zi, linkv614 /debug works but no SSE2
mlv615 /Zi, linkv614 /debug works fine
mlv615 /Zi, polink /debug works fine, slow
mlv8+ /Zi, linkv614 /debug fatal error LNK1103: debugging information corrupt; recompile modulee
mlv8+ /Zi, polink /debug Internal error: convert_symbols_from_V4_to_V2
mlv8+ /Zi, linkv8+ /debug fatal error LNK1101: incorrect MSPDB80.DLL version
Jwasm /Zi, linkv8+ /debug fatal error LNK1101: incorrect MSPDB80.DLL version
Title: Re: Can't get debug info in programs
Post by: Magnum on October 30, 2011, 10:48:16 AM
I reinstalled the masm sdk and got it to work.

Ollydbg shows the source code, but I see no use for it as I can already have the source open in another window.