當後台程式執行出錯時,我們需要堆疊資訊才能方便的定位到出錯時的具體資訊,traceback模組就可以很方便的幫助我們解決這個問題。該模組中有關於堆疊的很多方法,這裡我們只列出堆疊資訊的兩個方法。
traceback.print_exc([limit[, file]])
該方法將堆疊資訊直接列印到file中,如果不指定file,則預設列印到標準輸出中。實際上,該方法使用的是sys.exc_info()方法來獲取堆疊資訊。注意:該方法是執行緒安全的。
traceback.format_exc([limit])
該方法和print_exc類似,但卻是返回堆疊資訊的字串。
使用backtrace獲取堆疊資訊
一些記憶體檢測工具如valgrind,除錯工具如gdb,可以檢視程式執行時函式呼叫的堆疊資訊,有時候在分析程式時要獲得堆疊資訊,借助於backtrace是很有幫助的,其原型如下 include int backtrace void buffer,int size char backtrace sym...
使用backtrace獲取堆疊資訊
gdb將當前函式的棧幀編號為0,為外層函式的棧幀依次加1,這些編號將成為一些gdb命令的引數,以指明將要操作的是哪乙個函式的棧幀。gdb還支援使用address作為棧幀的識別符號,可在棧幀編號被破壞的情況下使用。1.在棧幀之間切換 gdb中有很多針對呼叫堆疊的命令,都需要乙個目標棧幀,例如列印區域性...
python 獲取物件資訊的方法
1 type 返回對應的class型別 例如 type 123 type 456 true type 123 int true type abc type 123 true type abc str true type abc type 123 false 2 isinstance 對於class的...