MPS デバッガーを使う
デバッグ
MPS デバッガーは、カスタム言語用のデバッガーを作成するための API を提供します。MPS ディストリビューションに含まれる Java デバッガープラグインを使用すると、最終的に基本言語 /Java に生成される言語で記述されたプログラムをデバッグできます。以下では、このプラグインを使用して MPS デバッガーの機能を説明します。これらの機能はすべて、API を介して他の言語でも利用可能です。
実行
まず、java アプリケーションのデバッグ方法について説明します。ユーザーが main メソッドを持つクラスを持っている場合、そのようなプログラムを実行 / デバッグするには、Java アプリケーション実行構成を使用する必要があります。
実行構成のインスタンスの作成
メインメソッドを持つクラス、または MPS プロジェクトに対して、それぞれ Java アプリケーションまたは MPS インスタンス実行構成を作成できます。実行→構成の編集メニューに移動し、下の図に示すように「+」ボタンを押してください。

メニューが表示されたら、そこから Java アプリケーションを選択すると、新しい Java アプリケーション設定が作成されます。

Java アプリケーションを選択した場合は、実行する Java クラスと、いくつかのオプションの構成パラメーターを指定できます。

各実行構成には名前を付け、メインノード(つまり、main メソッドを持つクラス)を指定する必要があります。また、構成内で VM およびプログラムのパラメーターを指定することもできます。実行構成の詳細については、「実行構成」の章を参照してください。
言語定義のデバッグ
MPS 言語定義コードをデバッグしたい場合は、MPS インスタンスを選択してください。MPS はあなたの言語を使うプロジェクトで MPS の新しいインスタンスを開始し(それは現在のプロジェクトかもしれません)、オリジナルの MPS インスタンスでブレークポイントを設定してデバッグします。
デバッグ構成ダイアログでは、新しい MPS インスタンスで開く MPS プロジェクトを指定する必要があります。現在のプロジェクトを開くチェックボックスをオンにして現在のプロジェクトを開くか、下のフィールドで任意のプロジェクトを指定します。両方とも空欄にして、新しい MPS インスタンスが起動した後にメニューからプロジェクトを作成 / 開くこともできます。

設定をデバッグする
実行構成をデバッグするには、設定メニューから実行構成を選択してデバッグボタンを押します。デバッガーが起動し、デバッガーツールウィンドウが下に表示されます。

ツールには 2 つのタブがあります。1 つはコンソールビュー用、もう 1 つはデバッガービュー用です。コンソールにはアプリケーションの出力が表示されます。
ブレークポイント
次のセクションではブレークポイントの使用箇所について説明します。
ブレークポイントを設定する
ブレークポイントは、ステートメント、フィールド、例外に設定できます。ブレークポイントを設定または削除するには、エディター内のノードで Ctrl + F8 キーを押すか、ノードの近くの左余白をクリックします。ブレークポイントは、左余白に赤いバブル、エディター内にピンクの線、ブレークポイントのノードの周囲に赤いフレームでマークされます。例外ブレークポイントは、ブレークポイントダイアログから作成されます。
プログラムが開始されると、デバッガーが停止できないブレークポイントが特別にハイライトされます。

デバッガーがブレークポイントで停止すると、現在のブレークポイント行は青色でマークされ、ブレークポイントの実際のノードはその周囲に黒い枠で装飾されます。

プログラムが停止しているノードのセルがテーブル内にある場合、テーブルセルは行ではなくハイライトされます。
ブレークポイントダイアログでブレークポイントを表示する
プロジェクトに設定されているすべてのブレークポイントは、ブレークポイントダイアログで表示できます。

Java ブレークポイント機能は次のとおりです。
フィールドウォッチポイント ;
例外のブレークポイント ;
java ブレークポイントのポリシーを一時停止します。
関連するブレークポイントデータ(スローされた例外や変更されたフィールド値など)は、変数ツリーに表示されます。
ブレークポイントでプログラムの状態を調べる
ブレークポイントにあるときは、デバッガータブを使用してプログラムの状態を調べることができます。利用可能な 3 つのパネルがあります。
コンボボックスを使用して選択された、スレッドのスタックフレームのリストを含む「フレーム」パネル。
選択されたスタックフレーム内に見えるウォッチ可能なもの(変数、パラメーター、フィールドおよび静的フィールド)を示す「変数」ツリー。
ウォッチとその値のリストを含む「ウォッチ」パネル。

java デバッガーでは、" 値のコピー " アクションは変数ツリーのコンテキストメニューから利用可能です。

ランタイム
プログラムの実行制御
ステップオーバーするには、実行 -> ステップオーバーまたは F8 を使用します。
メソッドからステップアウトするには、実行 -> ステップアウトまたは Shift-F8 を使用します。
メソッド呼び出しにステップインするには、Run-> ステップインまたは F7 を使用します。
プログラムの実行を再開するには、再開ボタンまたは実行 -> 再開または F9 を使用します。
プログラムを手動で一時停止するには、一時停止ボタンまたは実行 -> 一時停止を使用します。手動で、つまりブレークポイントではなく一時停止した場合、変数に関する情報は利用できません。
デバッガーウィンドウには、ステップアクションを利用できるツールバーがあります。

式
式評価
MPS Java デバッガーを使用すると、プログラムスタックの情報に基づいて、デバッグ中に式を評価できます。これは低レベル評価と呼ばれ、ユーザーは生成されたコードから純粋な java 変数 / フィールドのみを使用でき、高レベルのソースコードのエンティティは使用できません。
評価モードをアクティブにするには、プログラムをブレークポイントで停止する必要があります。Alt-F8 を押すと、ダイアログが表示されます。
ダイアログには、ステートメントリストを含む MPS エディターがあります。スタックフレームの変数とフィールドを使用するコードがそこに記述されている場合があります。このコードを評価するには、評価ボタンを押します。評価された値は、以下のツリービューに表示されます。

エディターからコードを評価するには、それを選択して Alt + F8 を押すと、コードが評価ウィンドウにコピーされます。

ウォッチ式
java デバッガー用のウォッチ API と低レベルウォッチが実装されます。「低レベル」とは、ユーザーがスタック上で使用可能な変数を使用して式を記述できることを意味します。ウォッチを編集するには、いわゆる「コンテキスト」(使用変数、静的コンテキスト型、その型)を指定する必要があります。スタックフレームが利用可能な場合は、コンテキストは自動的に設定されます。

ウォッチはデバッグツールウィンドウのウォッチツリーに表示できます。ウォッチは、コンテキストメニューまたはツールバーボタンを使って作成、編集、削除できます。

関連ページ:
デバッガー API
MPS は、MPS と連携するデバッガーエンジンを作成するための Java API を提供します。どこから始めれば:カスタムデバッガーエンジンの作成を開始する良い方法は、MPS での Java デバッガープラグインの実装を調べることです。ソースコードは、ソリューション jetbrains.mps.debugger.java.api および jetbrains.mps.debugger.java.runtime にあります。デバッガー API 自体は jetbrains.mps.debugger.api....
テスト言語
テスト言語:導入:テストは言語設計者の作業において不可欠な部分です。MPS が真に役立つためには、ベース言語コードと各言語の両方に対するテスト機能を提供する必要があります。jetbrains.mps.baselanguage.unitTest 言語は、JUnit-like ユニットテストを使用してベース言語コードをテストすることを可能にしますが、言語テスト言語の jetbrains.mps.lang.test は、言語テストを作成するための便利なインターフェースを提供します。クイックナビゲーショ...