【问题标题】:python pdb: step into a function called from console [duplicate]python pdb:进入从控制台调用的函数[重复]
【发布时间】:2015-04-30 20:52:18
【问题描述】:

注意:为了快速解释这一点,我将从在 Spyder 工作的角度来谈谈这个。

如果在我的代码中调用了一个函数,我可以在调用它的位置旁边放置一个断点,然后当我的代码到达该点时,我可以单击“Step into function..”按钮来查看里面发生了什么这个函数。

假设我在某个任意断点处,并想查看不在我的代码中的函数内部发生了什么。有没有办法通过 pdb 控制台调用这个函数并“进入”所说的函数调用?

【问题讨论】:

    标签: python python-2.7 pdb spyder


    【解决方案1】:

    您可以使用ipdb。把ipdb.set_trace()放在你想调试的地方。然后按s进入该功能。

    【讨论】:

      【解决方案2】:

      你试过函数装饰器吗? (也许读过)

      def foo():
          print 'Hello pdb'
      
      def add_breakpoint(func):
          def func_wrapper(*args, **kwargs):
              pdb.set_trace()
              return func(*args, **kwargs)
          return func_wrapper
      
      foo = add_breakpoint(foo)
      

      这将在您的调试中添加一些调用,但它会完成工作。 希望听到是否有效!

      【讨论】:

      • 这不起作用,原因与上述解决方案对我不起作用的原因相同。当 pdb 已经位于断点处时,任何调用忽略断点的函数都会正常执行。
      • 您可以提供一些您提到的有用的链接来帮助解决问题,而不是让答案搁浅,比如“可能读到它”的陈述。
      猜你喜欢
      • 1970-01-01
      • 2021-10-22
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多