---------------------------------------------------------------------------------- EnhancedDebugger for IBM Smalltalk / Visual Age Version 3.0 / 3.0a / 4.0. ---------------------------------------------------------------------------------- The zip file ENHNDBBG.ZIP contains three files. README.TXT - This document ENHNDBBG.APP - File in code for the debugger. ( IBM Smalltalk / Visual Age standard. Version 3.0 or 3.0a ) ENHNDBBG.DAT - Exported configuration map for the new debugger. ( IBM Smalltalk / Visual Age professional. Version 3.0, 3.0a or 4.0 ) Instructions to file in or import the code ------------------------------------------ To install from the .APP open a window with menu option File ---> Open from the transcript over the ENHNDBBG.APP file. Select all of the text in the window and take menu option Edit ---> File. To install from the .DTA file go to the applications browser using menu option Smalltalk ---> Manager applications and select menu option Applications ---> Import. Choose the ENHNDBBG.DAT file. Select the application EnhancedDebuggerApp Version 2.0. Then load the application EnhancedDebuggerApp Version 2.0 into the image. The sub application EnhancedDebuggerCode contains the code for the debugger and has two versions 1.0 for Version 3 and 1.0 for version 4. The correct version should load depending on which version of VisualAge is running. See the IBM Smalltalk User's Guide for more information on filing or importing code. Debugger instructions --------------------- When debugging code that contains source within blocks, e.g. Dictionary new at: 1 ifAbsentPut: [ Date today ] to reach the code within the block requires pressing into for the at: ifAbsentPut: and digging around the relevent value or value: message that evaluates the block. Likewise returning back to the method after Date today has been sent requires traversing back through the method internals of dictionary code. What we wanted to do was build functionality into a new button ( which is labelled through ) that would treat source within blocks no differently to any other message send. This functionality already occurrs with some messages that the Compiler inlines for efficiency (e.g. Boolean>>>#ifTrue: or Integer>>#to:do:). When debugging it is possible to use the through button completely instead of over if you wish to see the result of every message execution from within your message. The button is most useful when debugging a complex message such as System>>#showBusyCursorWhile: or Block>>#when:do: when all you want to do is continue debugging your code without being sidetracked by following your code's path within the implementation of these other methods. Also collection iteration methods are nicely debugged with the through button which walks around each iteration of the loop method without exposing the method internals of the iteration method. On loading the debugger instructions and an example are written to the transcript. Activation and Deactivating the debugger ---------------------------------------- The debugger is automatically activated and deactivated on loading the EnhancedDebuggerApp application. To activate the debugger from a workspace evaluate: System startUpClass debuggerClass: EnhancedDebugger To deactivate the debugger evaluate: ( For Version 3.0 ) System startUpClass debuggerClass: EtDebugger ( For Version 4.0 ) System startUpClass debuggerClass: DbgDebugger Support ------- Every effort has been made to ensure that this code is free of defects. However this program is supplied as is and absolutely no guarantee of reliability is given. No responsibility is assumed by the authors for any lost work or any consequential loss arising from any problem to do with the debugger, whether this is a genuine defect or not. By loading the debugger you are assumed to have read and agreed to this. This code was written by Joe Winchester and Mark Jones, e-mail 103276,233@compuserve.com or JoeW@concentric.net or MarkJ@ibm.net If you have any questions, comments or suggestions for improvements please get in touch.