News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Can't get debug info in programs

Started by Magnum, October 30, 2011, 03:36:53 AM

Previous topic - Next topic

Magnum

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
Have a great day,
                         Andy

dedndave

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

Magnum

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 ?

Have a great day,
                         Andy

dedndave

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


dedndave

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

ToutEnMasm

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



jj2007

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

Magnum

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.

Have a great day,
                         Andy