This article is in need of a technical review.
- Pull and build Treehydra if you haven't already.
sqlite3tool. (On Linux, this should be provided by your distro.)
Pulling the source
To download the Callgraph scripts from the Mercurial repository:
cd $HOME hg clone http://hg.mozilla.org/rewriting-and-analysis/callgraph
treehydra are in the locations suggested in the installation instructions, invoke the callgraph script via
cd $HOME/callgraph #./callgraph.sh path/to/plugin/enabled/gcc path/to/treehydra ./callgraph.sh $HOME/gcc-dehydra/installed/bin $HOME/gcc-dehydra/dehydra
callgraph script will do the following:
mozilla-centralfor you the first time it's run. (The tree is stored under
$HOME/callgraph/mozilla-central/mozilla.) After that, it's up to you to
hg pull -uwhen you want to update it.
- Build the tree, using the
callgraphanalysis script. The
mozconfigused for this is
$HOME/callgraph/mozilla-central/obj-fx. Each object file produced by gcc and g++ in the tree will have a corresponding plaintext
.sqlfile, containing sqlite
INSERTstatements to build the database.
- Construct the database, by aggregating the
.sqlfiles and running them through sqlite. This data goes into
$HOME/callgraph/db/graph.sqlite, which can be inspected using
sqlite3. (Documentation for the sqlite syntax can be found here.)
A different mozilla-central location can be used by editing the
$HOME/callgraph/callgraph.sh script. The default mozconfig options are
--disable-optimize --disable-debug --disable-tests.
For information on what is stored in the database, see the Schema Reference.