2

予期せず (一見) クラッシュするスクリプトがあります。再現方法が思いつきません。

Python はグローバル システム ログ ファイルを保持するので、戻ってどの例外が終了を引き起こしたかを調べることができますか? もしそうなら、それは Windows のどこにありますか? できればトレースバックも見たいです。

編集:スクリプト全体をブロック内に配置できることtry...exceptはわかっていますが、再びクラッシュするまでにどれくらい実行できるかわかりません。その情報がクラッシュの原因となった例外の種類にすぎない場合でも、少なくとも発生したクラッシュに関する大まかな情報を取得できるようにしたいと考えています。そうすれば、バグをより確実に再現することができます。

クラッシュの原因は、外部デバイスとの通信の失敗 (おそらく単純なケーブルの緩みなど) であると思われます。この種の障害は基本的にランダムで再現が難しいため、通信エラーなのか、本物のコード バグなのかを知りたいと考えています。

4

2 に答える 2

0

あなたは「キャッチ」できますexceptionか?はいの場合は、を使用tracebackしてスタックトレースを出力し、問題が発生した場所を特定できます。

次に、Eclipse を使用して問題のモジュールをデバッグできます (たとえそれが python lib の一部であっても、単純な読み取り可能な形式になります)。


import traceback
...
...

try:
    <your script>
except Exception as runtime_ex:
    print runtime_ex, traceback.format_exc()
于 2012-08-06T14:29:08.283 に答える
0

例外に関する情報を知りたい場合は、このコードを使用できます。

try:
    #do some stuff
    1/0 #stuff that generated the exception
except Exception as ex:
    print ex
    raw_input()

適切にデバッグするには、ツールwinpdbがあります。デバッグチュートリアルを使用してデバッグを学習するための非常に優れたチュートリアルがあります

于 2012-08-06T14:23:48.833 に答える