新しいJSLデバッガが好きな5つの理由そう、JMP 10には真新しいJSL Debuggerが同梱されています。さようならを古いものに、そしてこんにちは、新しいものに言いなさい!私はそれについてのブログ投稿で何が言えるか疑問に思っていたので、私はそれがJSLスクリプト作成者としての私の人生をより簡単にする方法について考え始めました。この記事では、いくつかの素晴らしい機能を紹介します。その後の記事では、詳細を拡大します。
JSLスクリプティングガイドには、JSLデバッガの完全な説明と、始めるための簡単な例がいくつかあります。それまでの間、ここで楽しみにしていることがいくつかあります。
5。できます!
それは少し厳しいかもしれませんが、私たちの以前のJSL Debuggerは機能が非常に限られていて使いにくいので、私はそれを使いませんでした。私は今、自分のコードにShow()、Print()、およびWrite()を自由に振りかけるという私の古い習慣を放棄していることに気付き、代わりに新しいデバッガに目を向けます。これは、私がいくつかのShow()をコメントアウトまたは削除するのを忘れたことを見つけるためだけに、同僚に自分のスクリプトを公開しないという追加の利点があります。
追加のボーナスとして、あなたはそれをデバッグするためにあなたのスクリプトの先頭に/ * debug step * /を追加する必要はありません。[スクリプトのデバッグ]ツールバーボタンをクリックできます(
)あなたのスクリプトのために - それはRun Scriptボタンの隣にあります。または、編集/スクリプトのデバッグを選択します。または、スクリプトウィンドウを右クリックして[スクリプトのデバッグ]を選択します。または、Ctrl + Shift + Rキー(Macintoshの場合はcommand + Shift + Rキー)を押します。簡単です!
4。Macintoshでも利用可能

ああ、幸せな一日!WindowsだけでなくMacintoshでもJSLスクリプトをデバッグできます。デバッガは両方のプラットフォームで同じです。同じ素晴らしい機能、同じ素晴らしい機能。私は、疲れた、古いデバッガはマッキントッシュでさえ利用できなかったので、私の仲間のマッキントッシュ愛好家がこれを歓迎することを知っています。
3。デバッグループとユーザー作成関数
ループ内の小さなコードを選択して(JSLエラーの原因となるコンマを選択しないようにしながら)それらを少しずつ実行していた時代は終わりました。ここから歓声が聞こえます。デバッガを通してコードを実行すると、反復変数の値が変更されるたびに自動的に更新されるのがわかります。ブレークポイントを使用して、機能していることがわかっているチャンクを迂回することができます。ブレークポイントに条件を追加して、1回のクリックで最初の200回の反復を実行してから、問題が発生した場所に焦点を合わせることができます。セント繰り返します。
関数のデバッグも簡単です。「渡された」変数が何かを別に宣言してから、その関数の一部を実行する必要はもうありません。スクリプトを関数に実行してステップインするだけです。デバッガは、渡された変数のすべての値と関数に対してローカルなものを表示します。
2。コードブロックへのステップイン、オーバー、アウト
あなたが呼んでいる表現が完璧であることをすでに知っていますか?ワンクリックで式を実行し、次の式で停止するには、デバッガの[ステップオーバー]をクリックします。あなたの機能に何か問題があると確信していますか?ステップインをクリックして関数を入力し、関数内で各式を1つずつ実行します。Include()ファイルを1行ずつ進めて問題が発生していることに気付いたのですか。ステップアウトをクリックして、含まれているスクリプトの残りの部分の実行を終了し、Include()に続く式のデバッグに戻ります。
1。変数を見る
これは古いデバッガがしていたことの1つでしたが、使用が困難で制限がありました。変数監視は新しいデバッガの喜びです。すべての単一変数の値は、存在する任意のスコープ(グローバル、ローカル、ここでは名前空間)で表示されます。あなたは物事をする必要はありません:それは常にそこにあります。新しい変数がコードに追加されると、それらは適切なリストに追加されます。新しい名前空間を追加すると、それに対する新しいリストが表示されます。
何十もの変数を使用する長いスクリプトを書くと、それらのリストは膨大になる可能性があります。そのため、[監視]タブに切り替えます。
注目したい変数をいくつか追加するだけで済みます。特定のJSLリストに値が追加されたときに監視したい場合は、添え字を付けることができます(たとえば、mylistを監視できます)。 ) 監視リスト内でスコープを設定できます(たとえば、ここで監視することができます:varとglobal:var)。ウォッチリストに変数名を入力することはできますが、デバッガのスクリプトペインで変数名を右クリックして[ウォッチの追加]を選択する方が簡単です。乞うご期待...
デバッガに関する他の記事については、このスペースを見てください。ここでは、特定の機能とユースケースについて詳しく説明します。特定のデバッガトピックに興味がありますか?コメントでそれを述べてください、そして私は今後の記事でそれに対処しようとします。
デューイは書いた:ÐxcellenntÑost。私はmaを扱っています...デューイ書きました:
Ðxcellennt n ost。私はこれらの多くに対処します
同様に問題..
John SallはJMP 10が書いたことについての意見を述べている。[...] inves ... John SallがJMP 10に意見を聞く書きました:
[...]スクリプトの作成に投資すると、JMP 10にはその分野で提供される多くの新機能があります。それは新しいJSLデバッガ、JMPログの分割画面サポート、ドラッグアンドドロップ編集、改良されたアドイン構築、そして[...]を持っています。
Melanie Drakeは書きました:あなたは一つずつあなたのスクリプトを実行しますか、...メラニードレイク書きました:
スクリプトを1つずつ実行してJMPを起動し、それぞれに対してJMPを終了しますか。それとも、JMPを一度起動してインクルードとしてスクリプトを実行しますか。前者の場合(スクリプトごとに1つのインスタンス)、show()がログに表示されます。2番目の方法では、コンテナスクリプトがJMPを終了するため、何も表示されません。同僚は、各スクリプトでログキャプチャを使用し、そのログキャプチャを後で見ることができるテキストファイルとして保存することを提案しました。私は以下の代替アプローチをしています。
エラーメッセージはそれほど変わっていません。
プラットフォームへの不適切な列参照を送信した場合、スクリプトはその場で失敗し、Is Scriptable(プラットフォーム)には到達しません。列参照が正しくない場合は、Try()を使用してすべてをスキップすることができます。例えば:
(plt = bivariate(x(:nonexistent_column))、y(:nonexistent_column_2))を試してください。
plt <<何かをする
//より多くのことをする
//上記の式のいずれかが失敗した場合は、代わりにこれを実行してください。
テキストファイルを保存( "c:/ error log.txt"、
"c:\ ben's script.jsl:最初の2変量の場合のエラー"、
モード( "追加")
)
;
追加する前に、まずテキストファイルを作成する必要があります。このようなアプローチはあなたの最初の問題も同様に軽減するのを助けるかもしれません。
あなたの面白い質問をありがとう!
ベンは書きました:簡単な質問 - 私は経由してたくさんのスクリプトを実行します...ベン書きました:
クイック質問 - 私はコマンドラインからたくさんのスクリプトを実行します。JMP 8または9は新しい "機能"を導入しました。これにより、スクリプトが実行されますが、表示されません。それで、私がコマンドラインで起動するスクリプトをbarfsで起動した場合、それは6のように表示されるでしょうか。9では、午前中に "N col(dtab) - dtabはデータテーブルの参照ではありません"というJMPウィンドウが開いたままになるなどの問題を抱えています。私は "show(" c:\ ben's script.jsl "の起動)"を追加しようとしましたが、これが起こると決して表示されないようです。
また、デバッグに便利です - スクリプトを実行したときのデフォルト設定 - JMPはまだ吐き出しますか
"不正な引数(x)に列が見つかりません"
?
( 'x'は時々数字として現れる)
のようなものを持っている
"コードeval(Bens_column_list_variable) 'のコード行1234で、テーブル" Bens_target_data_table "から列" Bens_column_name "を要求しましたが、そのような列がありません。"
はるかに便利なエラーです。
また、これが自動的に致命的になるとは思わないし、'bad column'に対してエラーをスローしないことがしばしば問題になります - 'catch'ステートメントは通常どこかに現れる必要があります:
plt = 2変量(x(:nonexistent_column)、y(:nonexistent_column_2));
plt <<何かをする
これを単に悪いコラムを飛ばしたいのであれば、
IsScriptable(plt)。
とにかく。
ありがとう。
ジェニーMは書いた:あなたはメルをロック!ジェニーM 書きました:
あなたはメルを揺るがす!
Lee Creightonは次のように書いています。リー・クレイトン書きました:
デバッガでローカル変数を表示するデモが欲しいのですが。