2017-01-06 13 views
1

スレッドの1つがデバッガに入りました。私はそれに切り替える、スタックトレースを期待する、再起動を選択する、など...どのように私はそれを行うことができますか?スレッド内の例外の処理

私はbordeaux-threadsを使用しています。

+1

SLIMEを使用すると、自動的に動作するはずです。それ以外の場合は、実装によって異なります。 SBCLでは、 '(SB-THREAD:RELEASE-FOREGROUND)'は他のスレッドに端末を使用させるべきです。 – jkiiski

+0

'(SB-THREAD:RELEASE-FOREGROUND)'は美しく働いた。私は 'ボルドー糸'には移植可能な方法がないと仮定しています。あなたは答えとしてあなたのコメントを提出することができます。 – tsikov

答えて

4

SLIMEを使用すると、自動的に機能します。それ以外の場合は、実装によって異なります。 SBCLでは、(SB-THREAD:RELEASE-FOREGROUND)は、他のスレッドに端末を使用させる必要があります。単一セッション内

SBCL manual, 12.8 Sessions/Debugging

、スレッドは、ユーザの注意のために自分たちの間で調停。スレッドは、フォアグラウンド、バックグラウンド、または停止の3つの想定状態のいずれかになります。バックグラウンドプロセスがreplプロンプトを表示しようとしたり、デバッガに入ると、停止し、停止したことを示すメッセージが表示されます。ユーザーは余裕を持ってそのスレッドに切り替えて、必要なものを見つけることができます。バックグラウンドスレッドがデバッガに入ると、再起動を選択するとバックグラウンドに戻り、再開されます。入力ストリームのアービトレーションは、sb-thread:get-foreground(ブロックされる可能性があります)およびsb-thread:release-foregroundの呼び出しによって管理されます。