Commit 283be00b authored by Nick Mathewson's avatar Nick Mathewson 🤹
Browse files

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

Closes #19307.
parent 8421756d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -70,6 +70,7 @@ uptime-*.json
/Tor*Bundle.dmg
/tor-*-win32.exe
/coverage_html/
/callgraph/

# /contrib/
/contrib/dist/tor.sh
+4 −0
Original line number Diff line number Diff line
@@ -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 \

changes/19037

0 → 100644
+7 −0
Original line number Diff line number Diff line
  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 −0
Original line number Diff line number Diff line
#!/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