diff options
author | Nick Mathewson <nickm@torproject.org> | 2017-09-07 10:51:02 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2017-09-07 10:51:02 -0400 |
commit | 283be00b0bf515ee80b4b1d809d99a2cd682c46b (patch) | |
tree | 2030831cb473293590f9b8745665bad7d11f983d | |
parent | 8421756da3fc3cc116d17fe96b50384c0d79af8b (diff) | |
download | tor-283be00b0bf515ee80b4b1d809d99a2cd682c46b.tar.gz tor-283be00b0bf515ee80b4b1d809d99a2cd682c46b.zip |
Add support for running "calltool" on Tor via "make callgraph".
Closes #19307.
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | changes/19037 | 7 | ||||
-rwxr-xr-x | scripts/maint/run_calltool.sh | 29 |
4 files changed, 41 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore index 0e0640de2d..e9992fd1af 100644 --- 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 index f1f64f2106..3982f1e8a4 100644 --- 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 new file mode 100644 index 0000000000..35f323f1b0 --- /dev/null +++ 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 new file mode 100755 index 0000000000..f7fa0c3056 --- /dev/null +++ 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 + |