summaryrefslogtreecommitdiff
path: root/test/farm/run/src/showtrace.py
blob: e97412e0f04b328e0eeeff8b1cef02d23a24336e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# Show the current frame's trace function, so that we can test what the
# command-line options do to the trace function used.

import sys

# Show what the trace function is.  If a C-based function is used, then f_trace
# may be None.
trace_fn = sys._getframe(0).f_trace
if trace_fn is None:
    trace_name = "None"
else:
    # Get the name of the tracer class.  Py3k has a different way to get it.
    try:
        trace_name = trace_fn.im_class.__name__
    except AttributeError:
        try:
            trace_name = trace_fn.__self__.__class__.__name__
        except AttributeError:
            # A C-based function could also manifest as an f_trace value
            # which doesn't have im_class or __self__.
            trace_name = trace_fn.__class__.__name__

print("%s %s" % (sys.argv[1], trace_name))