【问题标题】:Pycharm - Watch call stackPycharm - 观察调用堆栈
【发布时间】:2014-01-28 06:05:08
【问题描述】:

我需要详细分析我的 python 模块,尤其是我的代码中执行非常奇怪的一部分。是否可以在 Pycharm 中观察 - 从哪些模块调用了哪些函数/方法(如果是 *.pyd 或 *.dll 文件 - 那么它们的名称是什么,从它们调用了哪些函数)?

所以我需要了解我的代码。

谢谢。

【问题讨论】:

  • 您在寻找调用图?调用堆栈只是暂时的...但是如果您在其中设置断点并使用调试模式,您应该会在遇到断点时看到调用堆栈正常
  • 如果您的意思是“框架”选项卡,则只有我的模块的功能列表。如果函数调用另一个,很遗憾它不会显示在选项卡中。

标签: python pycharm callstack


【解决方案1】:

对于来电,您可以使用inspect.getgframeinfo 并在遇到断点时记录评估的内省表达式。

这是相关的 SO 问题:Python: How to get the caller's method name in the called method?

你也可以看看 Python 的profilers:cProfile 和 profile。

如果您想在运行后获得调用图表,您可能需要使用第三方工具,例如 pycallgraph

另一个相关的 SO 问题:How can you profile a Python script?

【讨论】:

  • 安德烈,谢谢。我选择了cProfile,但看起来很奇怪,因为我无法在标准模式下对我的函数列表进行排序,即第一个被调用的函数,然后是第二个,第三个......至少我没有找到它。跨度>
  • @Dmitriy_Cert 不幸的是,我对 cProfile 没有太多经验,在这里无法为您提供帮助。
猜你喜欢
  • 2011-03-08
  • 2019-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
  • 2017-07-24
  • 2011-04-17
  • 2013-10-04
相关资源
最近更新 更多