Source code for bgdev.utils.debug

"""Utility functions for debugging.

Example:
    trace_this(crashing_function, "/user_data/maya_crash_report.txt")

"""
from __future__ import absolute_import

import sys
import trace


[docs]def trace_this(func, filepath): """Trace function.""" oldout = sys.stdout olderr = sys.stderr try: with open(filepath, "w") as stream: sys.stdout = stream sys.stderr = stream tracer = trace.Trace(count=False, trace=True) tracer.runfunc(func) finally: sys.stdout = oldout sys.stderr = olderr
[docs]def crashing_function(): """Function that forces Maya to crash.""" from maya.api import OpenMaya dagnode = OpenMaya.MFnDagNode() node = dagnode.create("transform") OpenMaya.MGlobal.deleteNode(node) # Do not run this. Yes, it actually crashes Maya dagnode.findPlug("translateX", True)