2017-08-02 7 views
5

デッドロックに問題があると思われるasyncio.semaphoreモジュールを頻繁に使用していたプロダクションコードがあります。 私はunix信号で実行中のPythonコードにどのように接続するか、ipdb.set_trace()でデバッグし、イベントループ上のすべてのタスクをasyncio.Task.all_tasks()でリストする方法をいくつか発見しました。各タスクのスタックフレームをさらに調べたり、現在未処理のコルーチンの各行をipdbに表示することはできますか?python asyncioで未処理のすべてのコルーチンをデバッグして一覧表示します

+1

すべてのタスクはメソッド 'Task.get_stackを()'有する

[*map(asyncio.Task.print_stack, asyncio.Task.all_tasks())] 

で得ることができます。多分、これはあなたが探しているものです。 – Qeek

+1

@Qeekありがとうございました。 '' '[* map(asyncio.Task.print_stack、asyncio.Task.all_tasks())]' ''はうまくいきます。 – RainJay

答えて

0

OPが観察されるように、更なる検査は(OPは確かself-answerに含まない。)

関連する問題