| Edit | Rename | Changes | History | Upload | Download | Back to Top |
The Analysis Browser dynamically recovers type (and coverage) information as code is run. This version prereqs John Brant's Method Wrappers Base and the Arbor help system. It has been tested on VW7.0 and VW5i.4 with and without Aragon utilities loaded.
The Analysis Browser was written by Michel Tilman (mtilman@acm.org). Niall Ross (nfr@bigwig.net) ported it to VW7 (and 5i.4), and fixed some bugs. Reinout Heeck (reinout@soops.nl) provided useful feedback.
How to Use
Further information
Michel Tilman's web page describes the VW2.5 implementation and has a picture of the 5i.3 version
Niall Ross' ESUG2000 conference report describes the tool in the section on meta-programming, report on 'Building Run-Time Analysis Tools using Pluggable Interpreters'
This is work in progress and needs refactoring in places. My (Niall Ross) intent is to make it a code tool in the Refactoring Browser, thence to integrate its features with the rewrite tool. Thus I do not plan to do significant work on the browser's current navigator UI. I do plan to look at refactoring the way analysis information is gathered in the #eval: methods to support a strategy pattern (keeping an eye on efficiency).
- There are currently no safeguards against tracing methods used by the tool. This may lead into all sorts of problems, hence either stay away from monitoring kernel classes until this is remedied or take the risk but save first (which might be prudent anyway when methods are being wrapped).
- Not all Smalltalk constructs are supported; e.g. 'thisContext' is not recognized.
- The hypertext functionality is currently rather ad-hoc (so is the implementation).
- if you have the drop-down namespace list set to view less than the whole system (i.e. not Smalltalk *) and you click on a traced type that is outside your viewed namespace(s), then nothing will happen; the browser will not jump to the class as it's outside the current viewing scope. Just widen the scope (back to Smalltalk *) and try again.
- The toolbar forward button is not yet implemented.
- The 'Install Wrappers' widget's labels do not scale with text size changes (so if you like 'Large text', they will be a pixel or two too large).
- The browser does not show namespaces in its navigator, thus selecting the blank line at the top of some namespaces' category lists will not show anything.
- In prior versions, with wrappers installed, the PDP debugger had trouble when selecting certain stack frames within an #eval: by an Analysis Browser wrapper. This is being examined.
- With Aragon utilities loaded, the scroll wheel may not work on the Namespaces drop-down list (and may cause an unhandled exception on some platforms); if you see this, just scroll by hand and don't use the wheel.
| Edit | Rename | Changes | History | Upload | Download | Back to Top |