<% '------------------------------------------------------------------------------- 'File : dBase_Knowledge.asp 'Author : Surya Kumar 'Task : Knowledge Page for dBASE 'Version : 1.0.0.pk 10.08.2004 Base version 'Copyright : Ebase Interactive Inc., NY, USA '------------------------------------------------------------------------------- %> Welcome to dBASE

Debugging dB2K Web Applications

by Rick Fillman
August 13, 2001
Print Friendly Version

When developing a web application, you may wish to know what's happening on the inside. Unlike Desktop applications, there is no debugger that may reveal values and states midway through application execution. And further, if accepting data from the browser, you may find you want to get a 'look' at exactly what is incoming after the user presses the Submit button from the Browser.

Surely, in developing Desktop applications, you have used msgbox() to display interim values for debugging purposes. While admittedly a primitive technique, it is a sure-fire way of getting "inside" an otherwise opaque process. Depending on the OS of the web-server machine, this same technique can be used for debugging Web apps.

I find that when developing and testing my Web apps on a Win 98 machine (using MS Personal Web Server as the web server) the msgbox() debugging technique works, because on Win 98 there is no separation between the user Console and the CGI application execution. In other words, the msgbox()s simply display on the web server machine. We assume, of course, you are sitting in front of the web-server machine. With each msgbox() display, you make note of the debugging information, and click on 'OK', and continue.

I don't think there's a way to make this work on NT. On NT, the msgboxes may 'invisibly' display - in essence, causing the CGI/web application to 'hang'.

And finally, it should go without saying that you must be careful to remove (or comment out) any and all calls to msgbox() when your work is completed. They would bring the application to a halt with the application left waiting for user input at the server machine.