sorry to dredge this old topic out

its mainly regarding this
Quote:
(it's also possible to produce a .pdb in release mode)
|
doug could you possibly explain this a little
i mean does the exe that is so created will still be the optimized one that release builds are supposed to be ??
do you some how mean the generate debuginfo in vs.net
which is kinda discussed here ??
http://blogs.msdn.com/jaybaz_ms/archive/2004/06/29/169024.aspx
or here
http://www.michaelmoser.org/compopts.htm
could you if possible provide a similar scenerio for masm
i mean switches other than /Zi for ml and /Debug /debugtype:cv for linker
if i produce a .pdb in masm with above switches the app doesnt remain the same as it
is in release mode
well i see /pdb /pdbtype:ypes and some other thing in link /?
also in the google group link the jaybz i see

pt /noref etc
ill try experimenting with those but if you know a
correct sequence it would be better
i cant take the pdb that is so generated and simply substitute in a file assembled without those three specific switches
well ollydbg doesnt care about mismatched symbol types,incorrect guid or age
or unique id or whatever if it finds a pdb file with the same name as a debugged application it simply loads it

and labels all over the wrong places
windbg without .symopt +0x40 wouldnt load it but with .symopt +0x40 (LOAD_ANYTHING) switch eventually loads the mismatched pdb and labels all over the wrong places exactly like ollydbg
so if you could provide some explanations it would be helpful
i would prefer to have instructions specific to masm
or bcc (well bcc is a different beast it doesnt produce any .pdb

but produces a map and .tds file
thanks and regards
edit ok obviously the /RELEASE switch which is quoted by msdn to have some thing to do with checksum
Quote:
This option sets the checksum in the header of an .EXE file.
The operating system requires the checksum for certain files, such as device drivers. It is recommended that you set the checksum for release versions of your programs to ensure compatibility with future operating systems.
The /RELEASE option is set by default when the /SUBSYSTEM:NATIVE option is specified.
|
also does some other undocumented magic like
deleting the useless spaces labels and 0xccs that were introduced and which bloated the iczelions tut 03 to ~ 10kb be removed and bring it back to just 200 bytes extra bloat in .data section which pertains to debuginfo dir in peheader
the pdb:none just embeds the pdb info inside exe while pdbtype either produces a single .pdb or is supposed to produce multiple whatever pdb files
which i couldnt make it produce
