Django アプリケーションで GDB のリバース デバッグを使用しようとしています。GDB で実行できますが、逆方向に実行することはできません。
Ctrl-Z で Django アプリを停止reverse-next
し、gdb プロンプトで入力すると、「ターゲット マルチスレッドはこのコマンドをサポートしていません」というエラー メッセージが表示されました。
私はそれを間違っていますか?これは可能ではありませんか?両方?
Django アプリケーションで GDB のリバース デバッグを使用しようとしています。GDB で実行できますが、逆方向に実行することはできません。
Ctrl-Z で Django アプリを停止reverse-next
し、gdb プロンプトで入力すると、「ターゲット マルチスレッドはこのコマンドをサポートしていません」というエラー メッセージが表示されました。
私はそれを間違っていますか?これは可能ではありませんか?両方?
リバース デバッグに GDB を使用する前に、ここtarget record
に記載されているように、コマンドを使用してプログラムの実行を記録する (再生できるようにする) ように指示する必要があります。
ただし、これがDjangoアプリケーションのデバッグに役立つかどうかはわかりません.GDBは「ネイティブ」コード(コンパイル済みC/C++
)のデバッグに適していますが、「解釈された」コードのデバッグには適していません(順方向または逆方向)。
それは驚くほど良い質問です。
私の最初の衝動は、django のシェルとして IPython を使用していることを確認し、この場合に pdb サポートが役立つかどうかを確認することです。Pdb は、gdb と非常によく似たインターフェイスを持つ必要があります。私が思い出したように、gdb は C/C++ プログラムのデバッグに使用され、django は Python インタープリターによって実行されます。Pdb の使用方法は次のとおりです。
http://ericholscher.com/blog/2008/aug/31/using-pdb-python-debugger-django-debugging-series-/
また、werkzeug デバッグ ビューにアクセスするために、django-extensions を使用してみてください。