WKTVBDebugger FAQ
I run the program with the loader but the debugger does not appear.
- You don't have the MSVBVM60.DLL or MSVBVM50.DLL in your path, copy this files to the Windows system directory or copy them into a separate directory and add it to your path by editing AUTOEXEC.BAT.
The loader refuses to load my program.
- Maybe you program is not a p-code application or is corrupted in some strange way.
- Maybe your program is packed/encrypted, you need to unpack/decrypt it before you can debug it.
- Maybe you're using and unsupported version of the virtual machine (either MSVBVM50 or MSVBVM60) please check the list of supported versions.
The debugger stops execution saying 'Debugger session ended'
- This is what should happens always, when the p-code program finish so this is not and error message. It indicates that the program finished its execution normally.
The debugger displays a message saying 'Something really BAD happens...'
- This situation is strange and only could happen if the debugger is not able to handle some opcode, if you see this message please take full note of it, dump your disassembly (if you're able to get one) to a file and e-mail all this info to us.
I run the loader and the debugger starts, but it does not displays any p-code instructions.
This is normal, that means that the program you're debugging does not have initialization code, in fact small programs usually don't have this code. Try to push any control or button, if code is executed the debugger will take control of if.Sometimes many applications use Timers, if you wait the debugger will take control when the Timer reaches the elapsed time.
I know that the application is executing, code ¿ Can I activate the debugger at anytime ?
If you are sure that the application is doing work you can interrupt execution by pressing CTRL+P at anytime.
The application is waiting for user input ¿Can I activate the debugger?
If you are in a Windows message loop, you can NOT activate the debugger in fact if you're in a message loop the application is not executing code, is only waiting for user input. I you press CTRL+P you'll hear a sound after that if you press any button or control the debugger will be activated.This is good for using with the GO! command (F5).
What happens with timers, how are them handled ?
Timers are and special type of control, timers are usually used to execute code within a time interval, you can get the timer procedure address by using the Form/Class Manager and looking for Timer objects, after that you can put a breakpoint at this address. In fact this method is valid for any object that has a control procedure.