1. 說明
一般我們使用try方法來過濾報錯資訊;不過能報錯資訊只顯示報錯;
不能定位到**哪行報錯,報個檔案報錯
2. 正常顯示報錯
def func():try:
i = 123
for i in range(10):
pass
int('aaa')
except exception as e:
print(e)
func()
"""錯誤顯示:
invalid literal for int() with base 10: 'aaa'
"""
3. 使用錯誤堆疊資訊
import tracebackdef func2():
try:
i = 123
for i in range(10):
pass
int('aaa')
except exception as e:
print(traceback.format_exc())
func2()
"""錯誤顯示:
traceback (most recent call last):
file "e:/development/autoclient/錯誤的堆疊.py", line 28, in func2
int('aaa')
valueerror: invalid literal for int() with base 10: 'aaa'
"""
錯誤堆疊資訊記錄錯誤日誌
任何 執行前都需要考慮 bug,當出現錯誤資訊時需要展示其錯誤資訊 def f1 result 123int asdf 故意設定乙個錯誤的 源 return result defrun try ret f1 print ret except exception as e print e run vi...
使用backtrace獲取堆疊資訊
一些記憶體檢測工具如valgrind,除錯工具如gdb,可以檢視程式執行時函式呼叫的堆疊資訊,有時候在分析程式時要獲得堆疊資訊,借助於backtrace是很有幫助的,其原型如下 include int backtrace void buffer,int size char backtrace sym...
使用backtrace獲取堆疊資訊
gdb將當前函式的棧幀編號為0,為外層函式的棧幀依次加1,這些編號將成為一些gdb命令的引數,以指明將要操作的是哪乙個函式的棧幀。gdb還支援使用address作為棧幀的識別符號,可在棧幀編號被破壞的情況下使用。1.在棧幀之間切換 gdb中有很多針對呼叫堆疊的命令,都需要乙個目標棧幀,例如列印區域性...