Add support for running "calltool" on Tor via "make callgraph".

Closes #19307.
This commit is contained in:
Nick Mathewson 2017-09-07 10:51:02 -04:00
parent 8421756da3
commit 283be00b0b
4 changed files with 41 additions and 0 deletions

1
.gitignore vendored
View File

@ -70,6 +70,7 @@ uptime-*.json
/Tor*Bundle.dmg
/tor-*-win32.exe
/coverage_html/
/callgraph/
# /contrib/
/contrib/dist/tor.sh

View File

@ -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 \

7
changes/19037 Normal file
View File

@ -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.

29
scripts/maint/run_calltool.sh Executable file
View File

@ -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