commit 12df7a478c3b7f6af1f37257773ee885afebaccc
parent 8421756da3fc3cc116d17fe96b50384c0d79af8b
Author: Nick Mathewson <nickm@torproject.org>
Date: Thu, 7 Sep 2017 10:51:25 -0400
Merge branch 'calltool'
Diffstat:
4 files changed, 41 insertions(+), 0 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -70,6 +70,7 @@ uptime-*.json
/Tor*Bundle.dmg
/tor-*-win32.exe
/coverage_html/
+/callgraph/
# /contrib/
/contrib/dist/tor.sh
diff --git a/Makefile.am b/Makefile.am
@@ -224,6 +224,10 @@ check-changes:
update-versions:
$(PERL) $(top_builddir)/scripts/maint/updateVersions.pl
+.PHONY: callgraph
+callgraph:
+ $(top_builddir)/scripts/maint/run_calltool.sh
+
version:
@echo "Tor @VERSION@"
@if test -d "$(top_srcdir)/.git" && test -x "`which git 2>&1;true`"; then \
diff --git a/changes/19037 b/changes/19037
@@ -0,0 +1,7 @@
+ o Minor features (development support):
+ - Developers can now generate a call-graph for Tor using the
+ "calltool" python program, which post-processes object dumps. It
+ should work okay on many Linux and OSX platforms, and might work
+ elsewhere too. To run this, install calltool from
+ https://gitweb.torproject.org/user/nickm/calltool.git and run
+ "make callgraph". Closes ticket 19307.
diff --git a/scripts/maint/run_calltool.sh b/scripts/maint/run_calltool.sh
@@ -0,0 +1,29 @@
+#!/bin/sh
+
+# You can find calltool at https://gitweb.torproject.org/user/nickm/calltool.git
+
+set -e
+
+if test "x$CALLTOOL_PATH" != "x"; then
+ PYTHONPATH="${CALLTOOL_PATH}:${PYTHONPATH}"
+ export PYTHONPATH
+fi
+
+mkdir -p callgraph
+
+SUBITEMS="fn_invgraph fn_scc fn_scc_weaklinks module_graph module_invgraph module_scc module_scc_weaklinks"
+
+for calculation in $SUBITEMS; do
+ echo "======== $calculation"
+ python -m calltool $calculation > callgraph/$calculation
+done
+
+echo <<EOF > callgraph/README
+This directory holds output from calltool, as run on Tor. For more
+information about each of these files, see the NOTES and README files in
+the calltool distribution.
+
+You can find calltool at
+ https://gitweb.torproject.org/user/nickm/calltool.git
+EOF
+