そこの。誤動作しているPython3.1用に記述されたコードがあります。それがCコードの場合は、gdbserver
最初に使用し、プロセスにアタッチし(Pythonプロセスがstdinで入力を受け取る、かなり洗練されたコマンドラインに含まれます)、お気に入りのGDBフロントエンドを起動します。なぜそれがうまくいかないのかを理解する準備をしてください。
しかし、それはpythonです。モジュールを試したばかりpdb
ですが、プロセスがオフになったときに中断できません。代わりに「KeyboardInterrupt」が表示されます(コマンドチェーンの残りの部分を変更して、実行できるようにする必要がありset_ptrace
ます)。
winpdbを試してみましたが、奇妙なエラーメッセージが表示されました
Unhandled Exception (in pyshared/rpdb2.py)
プロセスに接続する前に「パスワード」を要求しました。これは、winpdbがpython2専用であるという全体的な感覚を与えてくれます。
実行中のプロセスにアタッチするために試したところgdb __main__.py
、想像できるように「フォーマットが認識されません」と表示されます。
見逃したマンページはどこにありますか?
PS:ああ、それが重要なのであれば、それはマルチスレッドプロセスです。
最小限の例:
import pdb
pdb.set_trace() # press 'c' here to continue
while(True):
print("hi") # hit CTRL+C here ... will just kill the program with python 3.1
print("ooh")