1

Python PDB Debugger と SciTE で記述したコードに問題があります。

だから私は「func」と呼ばれるクラスを持っています。このクラスには「hermite」というメソッドがあります。PDB デバッガーを使用して、このメソッドを実行しているときにプログラムがフリーズする理由を突き止めています。

私はから始めます:

pdb.set_trace()
func.hermite(a,b,c) 

「n」を押してデバッガーの次の行に移動すると、プログラムがフリーズします。

pdb.set_trace()メソッド「hermite」の中に入れると、次のようになります。

def hermite(a,b,c):
    pdb.set_trace()
    .... (stuff here)

デバッガーでは、メソッドは完全に実行され、問題はまったくありません。

メソッドが呼び出されたときにデバッガーがフリーズする理由はわかりませんが、 set_traceメソッド内に配置すると、プログラムは正常に実行されます。また、SciTEでは何 where set_trace()を入れてもプログラムは動きません。そのため、何らかの理由で、メソッド内に set_trace を使用して、プログラムがデバッガーからのみ実行されるかのようです。

問題が何であるかについてのアイデアはありますか?「hermite」のコードを貼り付けますが、非常に長いです。重要な部分は、メソッド内では完全に正常に実行されますが、メソッド外ではset_traceフリーズすることだと思います。set_trace

更新:問題を解決したことは気にしないでください。私のエルミート法では、微分方程式の時間ステップを行っていて、時間ステップ間隔として (15 - (-15)) / 100 を使用していました。Python はその値を 0 に設定していたため、無期限に実行されていました。プログラムがデバッガーで機能した理由は、実行時間を短くするために時間ステップをゼロ以外の値に強制していたためです。とにかくこれを見た人に感謝します。

4

0 に答える 0