en

FuncViz

Background

When analyzing the implementation of a program, knowing the function call
relationship will be very helpful. Of course we can read the source code with
the help of some excellent code reading tools. However, if the function call
relationship is rather complex or deep, it will be difficult and painful even
with those tools in hand. In this case, a function call graph will usually
provide much help.

Feature

FuncViz is a tool to generate function call graph for a program, using DTrace.
It also provides some profiling feature by generating function run time
histogram.

FuncViz uses DTrace to get function call relationship and time data. Several
programs analyze these data and then invoke other applications to generate
graphs. 3rd party applications used by FuncViz are,

*graphviz --generates function call graph
*gnuplot  -
-generates function run time histogram

FuncViz also provides a GUI program. The GUI program helps the user to
generate DTrace script, invoke dtrace, analyze and view the result. This GUI
program simply invokes other CUI programs to do its job.

Benefit by using DTrace

There are already tools which can be used to generate function call graph.
However, by using DTrace, FuncViz can be used much more easily.

First, there's no need to modify the source code of a program and/or recompile
the program with debug information. You can directly use the already exists
binary executable. This can save you a lot of compilation time.

Second, the user can also customize the DTrace script to specify which function
to be traced or not traced, so the function call graph will be more compact
since uninterested function can be excluded.

And last, the implementation of FuncViz is simple since DTrace can easily provide
the information we needed. In consequence, FuncViz can be easily extended by
using more information which can be provided by DTrace.

Tags:
Created by admin on 2009/10/26 12:07
Last modified by admin on 2009/10/26 12:07

XWiki Enterprise 2.7.1.34853 - Documentation