我有这个Python应用程序不时被卡住,我无法找到在哪里.
有没有办法告诉Python解释器向您显示正在运行的确切代码?
某种即时堆栈跟踪?
相关问题:
我有一个常规的C#代码.我没有例外.我想以编程方式记录当前堆栈跟踪以进行调试.例:
public void executeMethod()
{
logStackTrace();
method();
}
Run Code Online (Sandbox Code Playgroud) 在Python中,如何从方法中打印当前调用堆栈(用于调试目的).
我正在寻找一种在PHP中打印调用堆栈的方法.
如果函数刷新IO缓冲区,则为奖励积分.
捕获将如此打印的异常:
Traceback (most recent call last):
File "c:/tmp.py", line 1, in <module>
4 / 0
ZeroDivisionError: integer division or modulo by zero
Run Code Online (Sandbox Code Playgroud)
我想将其格式化为:
ZeroDivisonError, tmp.py, 1
Run Code Online (Sandbox Code Playgroud) 如何获取e.printStackTrace()并将其存储到String变量中?我想使用e.printStackTrace()稍后在我的程序中生成的字符串.
我还是Java的新手,所以我不太熟悉StringWriter,我认为这将是解决方案.或者,如果您有任何其他想法,请告诉我.谢谢
我知道print(e)(其中e是异常)打印发生的异常但是,我试图找到相当于Java的python,e.printStackTrace()它确切地追踪它发生的行的异常并打印出它的整个痕迹.
有谁能告诉我相当于e.printStackTrace()Python?
我问,因为我在Visual Studio中找不到堆栈跟踪,同时调试发生的异常.
如果抛出异常,我想有办法向用户报告堆栈跟踪.做这个的最好方式是什么?是否需要大量的额外代码?
回答问题:
如果可能的话,我希望它是便携式的.我想要弹出信息,因此用户可以复制堆栈跟踪并在出现错误时通过电子邮件发送给我.
当我得到异常时,它通常来自调用堆栈中的深层.当发生这种情况时,通常会对我隐藏实际有问题的代码行:
tmp.rb:7:in `t': undefined method `bar' for nil:NilClass (NoMethodError)
from tmp.rb:10:in `s'
from tmp.rb:13:in `r'
from tmp.rb:16:in `q'
from tmp.rb:19:in `p'
from tmp.rb:22:in `o'
from tmp.rb:25:in `n'
from tmp.rb:28:in `m'
from tmp.rb:31:in `l'
... 8 levels...
from tmp.rb:58:in `c'
from tmp.rb:61:in `b'
from tmp.rb:64:in `a'
from tmp.rb:67
Run Code Online (Sandbox Code Playgroud)
那个"... 8级......"截断给我带来了很多麻烦.我在这方面没有太大的成功:我怎么告诉ruby我想要转储包含完整的堆栈?