aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-08-25 11:53:20 -0400
committerNick Mathewson <nickm@torproject.org>2015-08-25 11:53:20 -0400
commit1eb210637539ce71794ff49fc462c35511b8a141 (patch)
tree04183d1f943a115dc8d1f2a769849bae08b35b40 /doc
parentf8a51068235cbc59fcb80efcc7f79b9b2689261d (diff)
downloadtor-1eb210637539ce71794ff49fc462c35511b8a141.tar.gz
tor-1eb210637539ce71794ff49fc462c35511b8a141.zip
Document callgraph analysis code
Diffstat (limited to 'doc')
-rw-r--r--doc/HACKING17
1 files changed, 17 insertions, 0 deletions
diff --git a/doc/HACKING b/doc/HACKING
index 7ee5cf846b..e92d675a43 100644
--- a/doc/HACKING
+++ b/doc/HACKING
@@ -265,6 +265,23 @@ Here are some basic instructions
* "opreport -l that_dir/*"
- Profit
+Generating and analyzing a callgraph
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+1. Run ./scripts/maint/generate_callgraph.sh . This will generate a
+ bunch of files in a new ./callgraph directory.
+
+2. Run ./scripts/maint/analyze_callgraph.py callgraph/src/*/* . This
+ will do a lot of graph operations and then dump out a new
+ "callgraph.pkl" file, containing data in Python's "pickle" format.
+
+3. Run ./scripts/maint/display_callgraph.py . It will display:
+ - the number of functions reachable from each function.
+ - all strongly-connnected components in the Tor callgraph
+ - the largest bottlenecks in the largest SCC in the Tor callgraph.
+
+Note that currently the callgraph generator can't detect calls that pass
+through function pointers.
Coding conventions
------------------