I have problem with geting debug symbols from masm->link pair(vxd). I always get pdb file, which I don't know what to do with it.

SoftIce doesn't recognize it (of course it's not a standard CV debug type).

So my question is if anybody knows how to get debug symbols to SoftIce.

I really need this info. Or maybe if there is any other program that can create vxd files and that Sice recognize the debug type.

Thanks

Peace
Mostek
Posted on 2001-08-12 16:28:11 by Mostek
try passing the following parameters to the linker:
/DEBUGTYPE:CV /PDB:NONE

You might have to do some additional symbol type conversions,
but if that's the case, the softice documentation should tell you what
and how.
Posted on 2001-08-12 17:05:46 by f0dder
I tried everything yours, masm and SIce instructions and nothing.
Everytime no debug included.

The only thing is (as written in ddk), I can create map files. But that's not what I need.

Well I 'll try something with pdb files, which is NB11 CV format (NB11 The signature for Visual C++ 5.0 debug information that has been packed and bonded to the executable. This includes all 32-bit type indices.)

Anyway thanks

Peace
Mostek
Posted on 2001-08-13 05:56:20 by Mostek
to debug ASM files with softice:

1. call masm with option /Zi
2. link with /DEBUG /DEBUGTYPE:CV /PDB:NONE
3. the .PDB file must be translated to a .NMS file. Use nmsym.exe for example. But loader32.exe will do it automatically
4. be sure your exe/dll/vxd is in same directory as source files
Posted on 2001-08-13 06:53:24 by japheth
Well if you set -pdb:none the linker wount create any pdb file.
And not even any debug.

My make file:
....
$(NAME).vxd: $(OBJS) $(RES)
link -vxd -debug -debugtype:cv -pdb:none -def:$(NAME).def $(NAME).obj

.asm.obj:
ml -coff -c -Cx -Zi -ic:\progra~2\progra~1\winddk~1\98\inc\win98 -DMASM6 -DBLD_COFF -DIS_32 $(NAME).asm

$(NAME): $(name).asm


(I use Borland's make.)

You sad that you can convert pdb files. Well I can't Loader32 doesn't recognize the type. (well there's no signature in the pdb file). There is in the vxd(if you create with pdb enabled).

I really don't know what to do any more. I even installed M$ Visual Studio to see if there is any utility that I can use, but until now nothing.

Probably the debug is appended only to PE files.

Maybe my problem is that I don't use ddk's libs, but masm's ones.
But I really don't see why this could be a problem.


Can someone try to assamble 'VxD Example: MessageBox' from Iczelion's site with debug section.
So I'll know that the problem only happens on my computer.

Thanks

Peace
Mostek
Posted on 2001-08-14 06:42:45 by Mostek
if option /PDB:NONE is used, the linker still generates debug info, but it is located in the module itself.
The above options are definitely correct. But I remember there exist some linker versions which will not work correctly. The linker shipped with the MASM32 package will work.

japheth
Posted on 2001-08-14 07:24:08 by japheth
Well I checked and I'm using the masm32 linker, but the debug code is not present in vxd.

Well as I don't know much about vxds(I should read a book, any advices??) , I don't know where the problem is.

But as much as I was looking, I think the problem is with my section definition, as I get a warning: 'LINK : warning LNK4039: section "DBOCODE_vxdpnc" specified with /SECTION option does not exist
'.

How to fix that??
I'll check if there is anything in Pietrek's book.

Thanks

Peace
Mostek
Posted on 2001-08-16 07:41:42 by Mostek
mostek,

i was partially wrong. to use option /PDB:NONE ist ok for PE files, but not for LE files, which is the format of VxDs. In this format the microsoft linkers are unable to include debug information, so you are right not to use /PDB:NONE.

But still you may have problems with loading because the pdb format has changed often and ms linkers too new will most likely generate a format sice cannot translate. try a older linker.

japheth
Posted on 2001-08-17 13:17:36 by japheth