Does anyone know of a good win32 debugger for MASM32? Something that will let me single step and all the same stuff that I can do in DOS debuggers? Any help appriciated! Thanks in advance!!!! Richard Ferguson
I've always thought softice was more then I ever needed. Sure, it's a nice program, works at what it should do, but just not needed. And why clog up your computer with even more stuff running in the background? (Importaint for me who is slogging along with an older slower CPU) Anyway, after tiring of typing the stuff over and over I made myself a bunch of macros and droped em in an .inc file. I posted them on my site (http://here.is/COMinASM), but perhaps it's best to write your own so you know what they do (and DON'T do). There are basically three ways to get a program to emit information: 1) Message boxes: Simple, direct, but hell if you need to spy on your message loop. Damn things beep too much and need to be clicked away. 2) Console output: Very nice. Can accept GOBS of info fast. Any win32 application can be built with Quick Editor's CONSOLE option, giving it a 'dos box' (which quite happily co-exists with the main app window). However, if the info scrolls away too fast, try this: Start your app from a dos box, then the app will use THAT box as it's console, and you can then pipe the info to a file and review it later. 3) Text File: Not the worst option to set up. I found it necessary once when debugging COM dll's running under VB, just no place to have a dos box to pipe huge ammounts of info to a file for me, so I made the file myself. All of these methods are hassle-free once you get re-useable macros down. For a final trick, have the macros check some variable such as "DEBUG" for definition, and conditionally compile them to NO CODE if it isn't defined, thus having a simple way of building the release version but leaving debug info inside your source.
Softice is really nice, but when it comes to debugging GUI/console apps, it can be a real hassle due to the way it works. I think it would be better suited to debugging device drivers :-) There's WDASM, which is basically a win32 GUI based disassembler/debugger. Although it wouldn't let you do everything you could under DOS debuggers, it's really nice when it comes to debugging win32/console apps :-) http://www.expage.com/page/w32dasm ---------------------------- Team2k PC development team: http://ppilot.homepage.com
Richard, I am much the same view as Ernie, simple, direct and fast debugging at the point where you are working is very reliable. MessageBox() works fine, in message loops where the value being tested happens very quickly, debugging on the Titlebar or on a status bar lets you watch the value in any format you like, just write the macros to do it. MASM32 has a set of debugging macros and a matching DLL to do the conversion & display and it also has a DLL and macro combination for testing the last error that occurred. SICE is a very good debugger for device drivers but its a pain and very slow to use with application code. Regards, email@example.com
if you use breakpoints and int3 softice works great on debuging gui applications to...
While message boxes and using the title bar are good for monitoring values and events, if you want to single step through the code, I recommend WinDbg, because it doesn't hang up you system like softice, so you can use other things, like a calculator.
I think that if your new to windows Asm programming, that it would be nice to have a windows debugger that will show the reg's and single step thru the code so that the new programer will gain new insite. But as of yet I have never seen such a creature, no one has yet ever wrote a good Debugger. Not even Softice, it still lacks the control we use to have in DOS.
there is at Systeminternals (not sure) a program called dbgview.exe....its a simple system debugg message viewer its fast and can keep your messages in a separated window...use OutputDebugStringA. we use it a lot but with custom debugging also...cant afford Softice...but i also think it would be the proffesional's choice.. Bogdan
You're welcome to try my Debug Print Utility. www.jcfuller.com/DBPRINT.ZIP For you purists it's written in PB/DLL not MASM. I just haven't found the time to port it over yet. James