関数が何処から呼ばれたか、コールスタックを表示

こんなのは不要とされるべきと思う。

def stackdump():
    import inspect

    stacks = inspect.stack()

    del stacks[0]

    print '"%s" Call Stack:' % stacks[0][3]
    del stacks[0]

    for frame, filename, line, funcname, code, exc_idx in reversed(stacks):
        print '  File "%s", line %d in %s' % (filename, line, funcname, )
        print '    %s' % ''.join(code).strip()
        del frame