<< 目次を表示 >> ページ位置: プログラムの動作解析 > 動作の記録 > 記録マーカーの配置 > マーカーの種類 |
マーカーを利用すると、デバッグの実行時に特定の2点間の処理について自動的に履歴情報を取得します。この機能はマルチスレッドで動作する場合にも有効です。特に、イベント駆動(時間経過やマウスの操作で発生するイベント)のシーケンスを記録する場合には非常に便利に活用できます。なぜなら、ユーザー側の操作の必要なく履歴の記録が可能になるからです。
このマーカーはブレークポイントとして表現されますが、停止はしません。このマーカー(ブレークポイント)が記録開始点として設定されている場合、そのスレッドのその後の処理を記録します。スレッドが終了するか、記録停止点に到達すると記録は終了します。
ブレークポイントとマーカーが異なる点は、ブレークポイントは常に明示的に定義するのに対し、マーカーは実行を中断することなく、関連する処理を実施する点にあります。
これらのマーカーはソースコードエディタタブで設定します。記録を開始する場所の左端の余白で右クリックすると、コンテキストメニューが表示されます。
項目 |
参照 |
記録開始マーカーと記録終了マーカー |
ソースコードエディタの左端の余白で右クリックし、「記録開始マーカーの追加」を選択すると記録開始点の設定ができます。また、同様の操作で「記録終了マーカーの追加」を選択すると、記録終了点の設定ができます。 これらのマーカーは次のように表示されます。:
デバッガの実行中でスレッドが実行されているときには、スタック履歴を記録し続けます。ここで記録終了マーカーに達するかスレッドが終了すると記録を終了します。
スタックの深さを制限する方法は、アプリケーションの高レベルのコードから記録する場合に役に立ちます。必要以上に深い呼び出しは記録しません。その結果、概要を把握する際に役に立つシーケンス図を生成できます。 スタックの深さを指定する場合には、記録サブウィンドウかブレークポイントとマーカーサブウィンドウのツールバーにある入力場所で希望する深さを指定します。指定した深さの値は、相対的な値です。ブレークポイントや記録マーカーが存在する位置から、深さを測定します。以下は例です。
解析対象のシステムが非常に大きい場合には、この値を大きくすると記録内容が複雑になり、処理に時間がかかります。このような状況では、最初は上限値を2か3程度にして解析を実行し、必要に応じて徐々に数値を大きくすることをお勧めします。 |
スタック自動捕捉マーカー |
スタック自動捕捉マーカーを利用すると、アプリケーションの内部で発生するスタック情報を捕捉・記録できます。 コード内の特定のポイントにマーカーを追加するには、対象の行の左端の余白を右クリックして「スタック自動捕捉マーカーの追加」を選択します。 デバッガの実行時にこのマーカーに遭遇すると、スタック情報を記録します。もし、スタック情報が動作ログに含まれない場合には、動作ログにもコピーされます。その後、そのまま処理は継続されます。スタック自動捕捉マーカーは指定した時点で、どこから呼ばれているのかを把握するための便利な機能です。 |
操作記録マーカー |
操作記録マーカーを利用することで、デバッグ中に対象の操作(メソッド)が呼ばれた場合に自動的に動作を記録できます。 デバッガは、このマーカーがある場所より後の動作について、動作の内容をすべて記録し、マーカーが配置されている操作を抜けると記録も終了します。このマーカーは、記録開始マーカーと記録終了マーカーの機能が一つになったもの、と言えます。
例:
操作記録マーカーが入れ子になっている場合には、最後に通過した操作記録マーカーを基準にして、指定した深さの内容まで記録を行います。 |
トレースポイントマーカー |
トレースポイントマーカーについては「トレースポイント」のページをご覧ください。 |
アクションポイントマーカー |
アクションポイントマーカーは、指定した行に到達した場合に指定した処理を実行できます。
アクションポイントマーカーはを作成するには、ソースコードエディタ内の該当行を右クリックし、「ブレークポイント | アクションポイントの追加」を選択してください。
表示される「ブレークポイントのプロパティ」ダイアログにおいて「アクション定義」にチェックを入れ、アクション内容を記載してください。
|
参照: