JSLデバッガーはネストされた関数またはスクリプトにステップインできますか?ネストした関数またはスクリプトにブレークポイントを設定しましたが、「ステップイン」は何もしないようです。
Re:JSLデバッガーはネストされた関数またはスクリプトにステップインできますか? @awoj 、
使用しているJMPのバージョンについて言及せず、サンプルスクリプトも提供していません。
以下は、JMPスクリプト言語の第2版のJSLコンパニオンアプリケーションの第11章用に記述されたサンプルスクリプトです。カスタムリスト関数にInclude()を使用します。関数が呼び出され、JMPデバッガーが含まれているファイルにステップインする19行目と20行目にブレークを設定できます。ローカル変数値を監視し、ブレークポイントを設定できます。これは簡単な例であり、JMP 12、13、14でテストされました。
Include()ステートメントでは何も起こりませんが、関数が呼び出される場所では何も起こりません。
Names Default to Here(1);
Delete Symbols();
Include( "$JSL_Companion/11_LCombine_Func.jsl" );
// usage
//--- example #1 --- numeric list arguments
l1 = {1, 2, 3, 4, 5, 3, 5,7};
l2 = {2, 3, 4, 6, 7, 8};
xx=LCombine(l1, l2, "union");
yy=LCombine(l1, l2, "intersect");
show(xx,yy);
さらにサポートが必要な場合は、詳細を入力する必要があります。
付属のスクリプトファイルが添付されます。
Re:JSLデバッガーはネストされた関数またはスクリプトにステップインできますか?回答ありがとうございます。私はJMP14を使用していますが、以下はネストされたスクリプトをステップインできない簡単な例です。デバッガーはユーザー入力(スクリプトをクリックする)を待たず、3行目に到達すると実行を終了します。このようなシナリオを継続的なワークフローとしてどのようにデバッグできますか?
dt = New Table( "Test", New Column( "Value", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 33, 239, 3, 4] ) ) );
dt << New Script( "Dummy Script",
For( i = 1, i <= NRows( dt ), i++,
If( dt:Value[i] < 50,
Show("Pass"),
Show("Fail");
);
);
);
Re:JSLデバッガーはネストされた関数またはスクリプトにステップインできますか? @awoj 、
デバッガを実行するときにブレークを設定する方法を知っていると思いますが、問題はスクリプトに関する混乱です。
指定したスクリプトの実行またはデバッグでは、単純なスクリプト「ダミースクリプト」は実行されません。以下は、スクリプトの変更のスクリーンショットです。スクリプトは、有効なJSLコード、データテーブルを付与されたテキスト文字列を書き込むだけですが、スクリプトはそれを実行しません。 スクリーンショットが表示されたら、JSL構文を追加してテーブルスクリプト「ダミースクリプト」を実行し、それに応じてブレークポイントを設定します。[グローバル]タブと[ログ]タブを参照してください。スクリーンショットは、Forループの2番目のパス、つまりi = 1を示しています。
混乱が解消されることを願っています。
Re:JSLデバッガーはネストされた関数またはスクリプトにステップインできますか?単純な答えは「いいえ」だと思います。
私の場合、ユーザーはダミースクリプトを実行する前にdtの内容を検査/操作します。ユーザーが完了する前に強制的に実行することはできません。
将来的には、JMPがより標準的なデバッガスレッド機能を含むことを願っています。