调试:如何查看幕后调用? - Python,PyQt

时间:2014-04-18 17:04:04

标签: python debugging pyqt

这似乎是一个有点简单的问题,我在寻找答案方面遇到了很多麻烦,也许我还没有找到程序员用来谈论这个问题的话。

我是一个相对缺乏经验的程序员,并且在对我所做的应用程序进行故障排除时遇到了一些困难。我的问题可能是一般的,因为我没有找到任何语言的答案,但对我来说,我特别使用python和PyQt4:

有没有办法查看执行方法/调用命令时所做的幕后调用?我可以使用调试软件(在我的情况下是winpdb)来跟踪我的代码中的哪些行被调用,但是,除了错误后给出的回溯信息之外,还没有弄清楚如何遵循程序的“幕后”步骤。这对于从编译器的角度来看没有编程错误的情况会有所帮助,但是行为是意外的,因为程序员没有完全理解模块的内部工作。

换句话说:我想了解我没写的代码。我想知道在调用一行代码后触发了什么。如果我调用像len()这样的方法,python会调用自己的方法,最终会向我返回一个整数。我希望有一种方法可以让我们看到python在我的代码行之间做了什么。

如果以前曾经问过这个问题,请告诉我,并接受我对重复这个问题的道歉,但我无法找到这个问题的答案,或者至少是最好的问题。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我不确定您的要求是什么,但将cProfileGprof2Dot一起使用会生成代码调用图的png以及每个函数/方法花费的时间。

只需:

  1. grab gprof2dot.py
  2. Use the given sample code