美文网首页
查看函数调用链

查看函数调用链

作者: ThomasYoungK | 来源:发表于2018-12-15 22:15 被阅读44次

最近在学twisted,它的event loop嵌套很深,有什么方法查看回调函数是怎样被调用的吗?
可以在回调函数里面调用traceback.print_stack(),如下图所示,而且也不会中断代码的运行:

import traceback

def stack():
    print 'The python stack:'
    traceback.print_stack()

from twisted.internet import reactor
reactor.callWhenRunning(stack)
reactor.run()

输出结果如下(most recent call last):

The python stack:
  File "/Users/thomas_young/Documents/git_download/introduction-python/twisted-intro-master/basic-twisted/stack.py", line 10, in <module>
    reactor.run()
  File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 1266, in run
    self.startRunning(installSignalHandlers=installSignalHandlers)
  File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 1246, in startRunning
    ReactorBase.startRunning(self)
  File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 759, in startRunning
    self.fireSystemEvent('startup')
  File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 710, in fireSystemEvent
    event.fireEvent()
  File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 434, in fireEvent
    DeferredList(beforeResults).addCallback(self._continueFiring)
  File "/Library/Python/2.7/site-packages/twisted/internet/defer.py", line 322, in addCallback
    callbackKeywords=kw)
  File "/Library/Python/2.7/site-packages/twisted/internet/defer.py", line 311, in addCallbacks
    self._runCallbacks()
  File "/Library/Python/2.7/site-packages/twisted/internet/defer.py", line 654, in _runCallbacks
    current.result = callback(current.result, *args, **kw)
  File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 447, in _continueFiring
    callable(*args, **kwargs)
  File "/Users/thomas_young/Documents/git_download/introduction-python/twisted-intro-master/basic-twisted/stack.py", line 6, in stack
    traceback.print_stack()

相关文章

  • 查看函数调用链

    最近在学twisted,它的event loop嵌套很深,有什么方法查看回调函数是怎样被调用的吗?可以在回调函数里...

  • 函数和函数调用

    函数和函数调用: help(函数对象):查看函数帮助文档 abs:函数对象 abs():函数调用 abs():绝对...

  • 作用域链(2018-04-24)

    分为 调用子函数 和 嵌套函数 的情况 1、嵌套函数,在函数调用的时候会生成作用域链,作用域链的最上层为最里层变量...

  • Vue $mount函数

    这里看到$mount的函数在Vue的原型链上,Vue的任何实例都可以直接调用这个方法 接下来我们来查看返回的函数m...

  • 函数基础与lambda函数

    主要包括: 函数的定义 函数的多文件调用 必须参数和关键字参数 匿名函数 函数的定义 调用: 函数名(实参) 查看...

  • Jest Mocks入门

    一、介绍 Mocks可以捕获对函数的调用(以下用法一)使用mock function,可以查看函数的调用次数,以及...

  • 有关Android View 绘制流程 & 自定义Vie

    View绘制流程调用链图 记清楚函数调用的顺序才能准确地进行调用。 根据调用链,可将整个绘制过程分为三部分:Mea...

  • Python学习笔记06 调用和定义函数

    关于函数 Python内置了很多函数。 要调用函数,需要知道函数的名称和参数。 可以通过help(函数名)查看函数...

  • SQL Server 设置默认数据库

    STEP 1 调用系统函数 查看SQL Server的当前用户名 NOTE : 系统函数的调用跟sql语句执行一样...

  • 1.1概念

    1.闭包 创建 --> 作用域链 --> 函数作用区域(执行时可以拿到变量或函数的区域,调用时包括活动对象)调用 ...

网友评论

      本文标题:查看函数调用链

      本文链接:https://www.haomeiwen.com/subject/bxszhqtx.html