2010-09-27 39 views

回答

2

之前,你可以使用GDB的反向調試,你必須告訴它來記錄你的程序的執行(因此它可以回放)通過target record命令,如記錄here

我不知道這會幫助你,儘管調試Django應用程序 - GDB是非常適合調試「原生」的代碼(編譯C/C++),並且是適合用來做調試「解釋」的代碼(任正向或反向)。

0

這是一個非常好的問題。

我的第一個衝動是確保我使用IPython作爲我的django的shell,並且看看在這種情況下是否支持pdb。 Pdb應該有一個非常類似gdb的接口。我記得,gdb是用來調試C/C++程序的,而Django則是由python解釋器執行的。使用PDB是在這裏:

http://ericholscher.com/blog/2008/aug/31/using-pdb-python-debugger-django-debugging-series-/

你也可能要使用Django的擴展,用於訪問WERKZEUG調試視圖嘗試。

+1

gdb最近獲得了在源代碼級別調試Python程序的能力。至少,Fedora發佈的gdb可以做到這一點。我沒有對自己進行測試,因爲我傾向於不喜歡調試器。這與gdb如何知道STL字符串或向量的外觀是相似的,所以它可以很好地將它打印出來。它知道你已經連接到一個Python解釋器,除了調試解釋器外,它還可以調試解釋器正在運行的程序。 – Omnifarious 2010-09-27 11:51:13

1

RevDB

https://bitbucket.org/pypy/revdb

https://morepypy.blogspot.co.uk/2016/07/reverse-debugging-for-python.html

該項目旨在讓pdb般的逆轉調試,這很可能是你想要的,除非你正在調試的Python解釋器本身。

它仍處於2017年初期階段,您必須從源代碼構建。

如何質疑並沒有提及GDB:Is it possible to step backwards in pdb?

最後,GDB調試逆轉是相當不成熟的,例如不處理AVX擴展Disable AVX-optimized functions in glibc (LD_HWCAP_MASK, /etc/ld.so.nohwcap) for valgrind & gdb record,所以我強烈建議使用rr代替:https://github.com/mozilla/rr(RevDB聲稱從中獲得靈感)。

相關問題