[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:
http://www.research.att.com/sw/tools/graphviz/
It only took me a few days to get something up and running, and it
paid for itself pretty quickly.
-Andy