DrWatson: Error Debugger and Diagnostic Log

The DrWatson tool is an application error debugger. It traps application errors and logs diagnostic information.

The information obtained and logged by DrWatson is the information needed by technical support groups to diagnose application errors. The Drwtsn32.log log file is created in the form of an electronic text file that can be delivered to support personnel by whatever method they prefer.

To start DrWatson when no error has occurred, type DRWTSN32 at the command prompt or select the file from File Manager or Windows Explorer.

Building SDK Samples

This sample uses the following keywords:

_getcwd; _makepath; _splitpath; _stricmp; _vsnprintf; addnumber; addstring; adjusttokenprivileges; alloctctx; appendmenu; assert; asserterror; atoi; atol; attachtoactiveprocess; bit20; bit53; bit76; browsefordirectory; browsehookproc; calloc; callwindowproc; cleareventlog; closeeventlog; closehandle; closelogfile; containing_record; continuedebugevent; controlwndproc; crashdumpcallback; createdialog; createdumpfile; createfile; createsemaphore; createthread; debugactiveprocess; debugbreak; debugeventtothreadcontext; defdlgproc; defined; defwindowproc; deregistereventsource; dialogbox; dialogboxparam; didomodrm; disasm; dispatchdebugeventthread; dmpcreateuserdump; domemoryread; dprintf; drwatsonwinmain; dumphookproc; dumpsymbols; elclearallevents; elenumcrashes; elsavecrash; enablewindow; enddialog; enumchildproc; enumchildwindows; enumcrashes; enumcrashesforviewer; err; error; exitprocess; expandenvironmentstrings; expandpath; fatalerror; formatmessage; free; getappname; getcommandline; getcommandlineargs; getcomputername; getcontextforthread; getcurrentprocess; getdc; getdialogvalues; getdlgctrlid; getdlgitem; getdlgitemtext; getdumpfilename; getdword; getenv; getexceptiontext; getfileattributes; getfocus; gethelpfilename; getkeystate; getlasterror; getlocaltime; getlogfiledata; getmodulefilename; getmodulehandle; getnextoffset; getopenfilename; getparent; getpriorityclass; getregflagvalue; getregvalue; getsavefilename; getsegregvalue; getstockobject; getstring; getsymbolsearchpath; getsysteminfo; getsystemmenu; gettasklist; gettaskname; getteb; gettextextentpoint; gettextmetrics; getthreadcontext; getthreadpriority; getusername; getversion; getwavefilename; getwindowlong; getword; hthread; initializecrashlist; initializedialog; initializelisthead; inserttaillist; isdialogmessage; isdigit; isdlgbuttonchecked; isprint; loadcursor; loadicon; loadrcstring; loadstring; localalloc; localfree; logdisassembly; logfileviewerdialogproc; logstackdump; logstackwalk; logsysteminformation; logtasklist; lookupprivilegevalue; lpenumfunc; lprintf; lprintfs; makeintresource; makelangid; makelogfilename; malloc; max; memcpy; memmove; memset; messagebeep; messagebox; min; nonfatalerror; notifywinmain; openeventlog; openlogfile; openprocess; openprocesstoken; opensemaphore; outputallregs; outputdebugstring; outputhexaddr; outputhexcode; outputhexstring; outputhexvalue; outputstring; outputsymbol; pack; pc; playsound; postmortemdump; postquitmessage; printf; processcreateprocess; processcreatethread; processexitthread; processloaddll; processmoduleload; readeventlog; readfile; readprocessmemory; realloc; regclosekey; regcreateeventsource; regcreatekeyex; reggetallvalues; reggetappkey; reggetnumcrashes; reginitialize; reginitializedefaults; reginstalldrwatson; registerclass; registereventsource; reglogcurrentversion; reglogprocessortype; regopenkeyex; regquerybool; regquerydword; regquerysz; regqueryvalueex; regsave; regsaveallvalues; regsetbool; regsetdword; regsetexpandsz; regsetnumcrashes; regsetsz; regsetvalueex; releasedc; releasesemaphore; removeentrylist; reportevent; resumethread; save_ebp; save_trap; selectobject; senddlgitemmessage; sendmessage; setdlgitemtext; seterrormode; setevent; setfaultingcontext; setfilepointer; setfocus; setfocustocurrentcontrol; setforegroundwindow; setthreadcontext; settimer; setwindowlong; setwindowtext; shellabout; showwindow; skipoverbreakpoint; sleep; sprintf; sscanf; st; stackwalk; strcat; strcmp; strcpy; strncpy; subclasscontrols; suspendthread; swfunctiontableaccess; swgetmodulebase; switch; swreadprocessmemory; swtranslateaddress; symbolenumfunc; symenumeratesymbols; symfunctiontableaccess; symgetmoduleinfo; symgetsymfromaddr; syminitialize; symloadmodule; symsetsearchpath; sysinfothread; terminateprocess; terminatethread; terminationthread; tolower; trap_edited; trap_tss; updatewindow; va_start; virtualalloc; virtualfree; virtualqueryex; waitfordebugevent; waitforsingleobject; wavehookproc; waveoutgetnumdevs; widechartomultibyte; winhelp; writefile; wsprintf; zeromemory