【发布时间】:2019-11-23 07:20:16
【问题描述】:
我手里有一段代码,我正在尝试调试。运行代码时,它会定期打印training loss : x.xxxx secs,但我在代码中找不到这样的行。我需要知道它来自哪里。因此,我想要的是发生一些事情,例如当出现编译错误时,它会回溯到最后一个调用的函数。有没有可能在没有错误的情况下做这样的事情?只是打印调用打印函数的时间和函数。
【问题讨论】:
-
你最好的办法是在你的 ide 中搜索字符串“training loss”,看起来它会使用字符串格式
-
我已经这样做了,只是这可能来自一个模块,而且有很多模块要搜索。
-
那么您将不得不进入兔子洞,您已经知道一个最终到达此打印的入口函数,所以现在只需要逐步完成代码流
-
您可以使用
sys.settrace()来跟踪对print()函数的调用,当检测到该函数时,检查它的参数是什么,并在您感兴趣的调用时打印回溯。有关示例,请参见 Tracing a Program As It Runs。
标签: python python-3.x