[gclist] Two conservative collectors

Andy Shaw shaw@transmeta.com
Thu, 18 Nov 1999 15:49:40 -0800

|   Date: Thu, 18 Nov 1999 13:16:48 -0600
|   From: "Matthew P. Gordon" <mpg@geodesic.com>
|   Charles Fiterman wrote:
|   > As to traceback info, to be useful this involves understanding data
|   > definitions. I'm sure you can give it in hex but what earthly good is that
|   > to humans. Traceback has to say things like
|   > 
|   >   filex.cpp:17 frobNick *foo == 0x127080 (vtbl frobNick)
|   >   0x127088 (char *)name == 0x141200 (no vtbl)
|   > 
|   > You would be saying
|   > 
|   >   0x560800 == 0x127080
|   >   0x127088 == 0x141200
|   	A big problem with this nifty little prototype was that the there was
|   no good way to visualize the heap.  I built in a function which would
|   just dump the backpointers and the stack traces, but this is hard to
|   work with.  On the other end of the spectrum, I was considering using
|   VRML to get a full, three dimensional look at the stack.  But, this
|   seemed a bit fantastic, and difficult to implement.  There were some
|   other suggestions, but I'm interested in hearing if anybody has
|   experience with good (or bad!) interfaces to total-heap visualization
|   schemes like this.

To help debug a compiler I built for my thesis, I wrote a
visualization tool to look at the compiler intermediate form (which
was a graph) using something called tkdot.  Problems which would have
taken me days to track down and fix were immediately obvious once in
graphical form.

It sounds like a similar problem: you have a complicated directed
graph which you cannot visualize from a dump of the nodes and edges.

The system was built around graphviz, a freely distributed Tk
interface to a graph-layout program from AT&T called dot.  Here's the
Web site:


It only took me a few days to get something up and running, and it
paid for itself pretty quickly.