[dtrace-discuss] Visualizing a call graph

Jon Haslam
Mon, 24 Nov 2008 11:33:10 -0000

> This is what exactly what I have in mind. Did you do it the way I am
> thinking? The ''jzgraph'' project is well but dead. So,
probably I shall
> have to generate a ''dot'' file and then externally feed it
to ''dotty''.

Firstly, the approach you''re taking is OK but you''ll probably
run into some issues with tail calls and recursion. I''ll try and dig
up the stuff I originally used and send it to you.

You''re right in that the jzgraph project is dead (or at least appears
to be). However, if you want/need an API into the dot routing
algorithms then it''s still a good piece of software to use. Generating
dot files and feeding to dotty will be fine if you just want static
images.

>> Simon Ritter improved on this first pass attempt and developed a more
>> interactive experience for generating call graphs:
>>
>> http://blogs.sun.com/simonri/entry/i_m_sorry_dave_i
>>
>> The software that Simon developed (called ''DAVE'') is
actually pretty
>> nice. The last time I saw it you could graph Java and native methods
>> together and even do some database related graphing.
>>
>> Over this summer though Simon and I have taken this idea one step
further.
>> We''re now using the Java Monkey Engine (a 3D games engine) to
visualise
>> the graphs (we''re still obviously using DTrace as the
instrumentation
>> technology and the graphviz libraries for the core graph generation).
>> Using the Monkey Engine we can generate interactive 3D call graphs
>> which we can move through and manipulate in 3D object space. In fact,
>> rather gratuitously really, we''ve implemented an anaglyph
technique so you
>> can even wear 3D glasses (red/cyan) so the graph comes out the screen
at
>> you! All good fun.
>
> Ah awesome fun. Any blog posts/etc?

As usual from me, I haven''t got around to blogging about it yet.
I''ll
try and get a blog done about it soon and hopefully a video so you can
dig your 3D glasses out!

Jon.