Skip to content

duk_debugger_pause()

1.5.0 debugger

プロトタイプ

c
void duk_debugger_pause(duk_context *ctx);

スタック

(バリュースタックに影響なし。)

要約

デバッガの一時停止をできるだけ早く要求し、ブロックせずに返します。一時停止は ECMAScript バイトコードが次に実行されたときにトリガーされ、通常はほぼ即座に実行されます。しかし、Duktape/C 関数のようなネイティブコールが進行中であったり、ECMAScript コードが現在実行されていない場合、一時停止が有効になるまでに時間がかかることがあります。

この呼び出しは、(1)デバッガ・サポートがコンパイルされていない、(2)デバッガが接続されていない、(3)Duktapeがすでに一時停止している、などの場合には実行できません。これは、ECMAScriptのデバッガ・ステートメントのセマンティクスを模倣しています。

他のDuktape APIコールと同様、このコールはスレッドセーフではありません。そのコンテキストのECMAScriptコードを実行しているスレッドとは別のスレッドから一時停止をトリガーしたくなるかもしれませんが、これは安全ではなく、現在サポートされていません。

c
/* In your event loop: */
if (key_pressed == KEY_F12) {
    duk_debugger_pause(ctx);
}