(57)【要約】      （修正有）【課題】複数のイベントを含む領域を表示することで、大量のイベントの実行状況をユーザに容易に把握させることが可能な情報処理システムを提供する。【解決手段】第１取得部４２２は、イベントの実行時間または実行順序に関する時系列情報を含むイベント情報を取得し、第２取得部４２３は、イベント時系列の第１座標軸を決定する第１軸情報を含む軸情報を取得し、第３取得部は、イベント情報を特定可能なイベント特定情報を取得し、第１生成部４０８は、軸情報に基づいて、第１座標軸を表す第１軸オブジェクトを生成する。第２生成部４０９は、イベント特定情報から特定されるイベント情報毎に、時系列情報と第１軸情報とに基づいて、第１座標軸におけるイベントの座標を決定し、イベント情報によって特定されるイベントに対応する領域の始点座標と終点座標とを決定し、始点座標と終点座標とで定義される領域を表す領域オブジェクトを生成する。【選択図】図４
2015043197.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも一つのイベントの実行時間または実行順序に関する時系列情報を含むイベント情報を取得する第１取得部と、
前記イベントの実行時間または実行順序に関する時系列の第１座標軸を決定する第１軸情報を含む軸情報を取得する第２取得部と、
前記イベント情報を特定可能なイベント特定情報を取得する第３取得部と、
前記軸情報に基づいて、前記第１座標軸を表す第１軸オブジェクトを生成する第１生成部と、
前記イベント特定情報から特定される前記イベント情報毎に、前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記イベントの座標を決定し、決定された前記イベントの座標に基づいて、前記イベント情報によって特定される前記イベントに対応する領域の始点座標と終点座標とを決定し、前記始点座標と前記終点座標とで定義される前記領域を表す領域オブジェクトを生成する第２生成部と、
を備える、情報処理システム。
【請求項２】
前記第２生成部は、決定された前記イベントの座標のうち、最小の前記座標に基づいて前記始点座標を決定し、最大の前記座標に基づいて前記終点座標を決定する、
請求項１記載の情報処理システム。
【請求項３】
前記イベントの実行結果を表すイベントオブジェクトを生成する第３生成部を更に備え、
前記イベント情報は、前記イベントの属性に関するイベント属性情報を更に含み、
前記軸情報は、前記イベントの属性に関する第２座標軸を決定する第２軸情報を更に含み、
前記軸オブジェクト生成部は、前記第２軸情報に基づいて、前記第２座標軸を表す第２軸オブジェクトを生成し、
前記第３生成部は、
前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記イベントオブジェクトの座標を決定し、
前記イベント属性情報と前記第２軸情報とに基づいて、前記第２座標軸における前記イベントオブジェクトの座標を決定する、
請求項１又は２に記載の情報処理システム。
【請求項４】
前記イベント情報は、第１イベントの前記時系列情報を含む第１イベント情報と、第２イベントの前記時系列情報を含む第２イベント情報とを含み、
前記イベント特定情報は、前記第１イベント情報を特定可能な第１イベント特定情報と、前記第２イベント情報を特定可能な第２イベント特定情報とを含み、
前記第２生成部は、
前記第１イベント特定情報から特定される前記第１イベントの前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記第１イベントの座標を決定し、
前記第２イベント特定情報から特定される前記第２イベントの前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記第２イベントの座標を決定し、
決定された前記第１座標軸における前記第１イベントの座標と、決定された前記第１座標軸における前記第２イベントの座標のうち、最小の座標に基づいて前記始点座標を決定するとともに、最大の座標に基づいて前記終点座標を決定する、
請求項３に記載の情報処理システム。
【請求項５】
前記時系列情報は、前記第１イベントの実行開始時刻および前記第２イベントの実行開始時刻を表すイベント始点情報と、前記第１イベントの実行終了時刻および前記第２イベントの実行終了時刻を表すイベント終点情報とを更に含み、
前記第３生成部は、
前記イベント始点情報と前記第１軸情報とに基づいて、前記第１座標軸における前記第１イベントの第１始点座標および第１終点座標と、前記第１座標軸における前記第２イベントの第２始点座標および第２終点座標とを決定し、
前記第１始点座標と、前記第１終点座標と、前記第２始点座標と、前記第２終点座標とに基づいて、前記第１イベントの実行結果を表す第１イベントオブジェクトと、前記第２イベントの実行結果を表す第２イベントオブジェクトとを生成し、
前記第２生成部は、
前記第１始点座標と前記第２始点座標とから、前記領域の前記始点座標を決定し、
前記第１終点座標と前記第２終点座標とから、前記領域の前記終点座標を決定し、
前記領域オブジェクトを生成する、
請求項４に記載の情報処理システム。
【請求項６】
前記イベント情報の前記イベント属性情報を特定可能な属性選択情報を含む指定条件を取得する第４取得部と、
前記イベント特定情報を生成する第４生成部を更に備え、
前記第４生成部は、前記指定条件に基づいて、少なくとも１つの領域に対応する前記イベント特定情報を生成する、
請求項５に記載の情報処理システム。
【請求項７】
前記イベント情報の前記イベント属性情報をユーザが選択可能なユーザインタフェースであるヒントオブジェクトを生成する第５生成部を更に備え、
前記第４取得部は、前記ヒントオブジェクトを介して選択された少なくとも１つの前記イベント情報の前記イベント属性情報を、前記指定条件として取得する、
請求項５に記載の情報処理システム。
【請求項８】
前記領域情報は、前記領域に含まれる複数の前記イベントの属性に関する領域属性情報を更に含み、
前記第２生成部は、各々の前記領域の前記領域属性情報を表現する前記領域オブジェクトを生成する、
請求項５に記載の情報処理システム。
【請求項９】
前記第２生成部は、異なる２つの領域オブジェクトにおいて、第１の領域オブジェクトに関する前記始点座標から前記終点座標までの間に、第２の領域オブジェクトに関する前記始点座標が存在する場合、前記第１の領域オブジェクトと前記第２の領域オブジェクトとが前記第２座標軸における異なる位置に配置されるように前記第１の領域オブジェクトおよび第２の領域オブジェクトを生成する、
請求項５に記載の情報処理システム。
【請求項１０】
前記領域情報は、各々の前記領域に含まれる複数の前記イベント属性情報に関する領域属性情報を更に含み、
前記第２軸情報は、前記イベント属性情報を表現するイベント属性軸情報と、前記領域属性情報を表現する領域属性軸情報とを含み、
前記第２生成部は、前記領域属性情報が付与された前記領域オブジェクトを生成し、
前記第２軸オブジェクトは、前記イベント属性情報を表現するイベント属性軸オブジェクトと、前記領域属性情報を表現する領域属性軸オブジェクトとを含む、
請求項５に記載の情報処理システム。
【請求項１１】
少なくとも一つのイベントの実行時間または実行順序に関する時系列情報を含むイベント情報を取得し、
前記イベントの実行時間または実行順序に関する時系列の第１座標軸を決定する第１軸情報を含む軸情報を取得し、
前記イベント情報を特定可能なイベント特定情報を取得し、
前記軸情報に基づいて、前記第１座標軸を表す第１軸オブジェクトを生成し、
前記イベント特定情報から特定される前記イベント情報毎に、前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記イベントの座標を決定し、
決定された前記イベントの座標に基づいて、前記イベント情報によって特定される前記イベントに対応する領域の始点座標と終点座標とを決定し、
前記始点座標と前記終点座標とで定義される前記領域を表す領域オブジェクトを生成する、
ことを含む、プログラム情報生成方法。
【請求項１２】
複数のイベントを含むプログラムの情報を生成するコンピュータを機能させるためのプログラム情報生成プログラムであって、
少なくとも一つのイベントの実行時間または実行順序に関する時系列情報を含むイベント情報を取得する第１取得処理と、
前記イベントの実行時間または実行順序に関する時系列の第１座標軸を決定する第１軸情報を含む軸情報を取得する第２取得処理と、
前記イベント情報を特定可能なイベント特定情報を取得する第３取得処理と、
前記軸情報に基づいて、前記第１座標軸を表す第１軸オブジェクトを生成する第１生成処理と、
前記イベント特定情報から特定される前記イベント情報毎に、前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記イベントの座標を決定し、決定された前記イベントの座標に基づいて、前記イベント情報によって特定される前記イベントに対応する領域の始点座標と終点座標とを決定し、前記始点座標と前記終点座標とで定義される前記領域を表す領域オブジェクトを生成する第２生成処理と、
を前記コンピュータ群に実行させる、プログラム情報生成プログラム。
【請求項１３】
請求項１に記載の情報処理システムと、
前記軸オブジェクトで表現された座標系に前記領域オブジェクトを配置することで前記プログラムの情報を可視化する表示部と、
を備えるプログラム情報表示システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システムに関する。
【背景技術】
【０００２】
従来、プログラムの実行トレースに基づいて実行されたスレッドを表すスレッドオブジェクトとイベントとを、時間軸とスレッドの軸とからなる２次元平面に表示するプログラム実行状況表示に関する技術がある。この技術は、プログラムの全実行状況のアクティビティを表示する領域と、特定範囲の詳細実行状況をスレッド軸と時間軸とを用いて表示する領域とを持ち、全実行状況を表示する領域から特定範囲を指定する機能をユーザに提供する。これにより、対話的にプログラムの全実行状況から特定箇所の詳細情報を表示することを可能としている。
【０００３】
プログラム開発者がプログラム開発時にプログラムの実行状況を表示することで動作の確認や性能最適化等を行う場合、表示装置にプログラムの実行状況を表示するが、その場合、実行状況の表示領域が表示装置の画面サイズに制限される。そのため、プログラムの詳細実行状況を表示する領域に大量のイベントを表示する場合には、プログラムの詳細実行状況の把握が困難となる場合がある。例えば、表示装置の表示サイズ制約から全イベントの情報を同時に表示できない場合がある。また、全イベントの情報を同時に表示した際に、イベントを表すオブジェクトの表示サイズが目視により視認できない程度に極めて小さいサイズとなる場合や、表示装置の描画性能で識別可能に表示できない場合などが存在する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２０１０／７６９８６８６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
以下の実施形態では、複数のイベントを含む領域を表示することで、大量のイベントの実行状況をユーザに容易に把握させることが可能な情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態にかかる情報処理システムは、少なくとも一つのイベントの実行時間または実行順序に関する時系列情報を含むイベント情報を取得する第１取得部と、前記イベントの実行時間または実行順序に関する時系列の第１座標軸を決定する第１軸情報を含む軸情報を取得する第２取得部と、前記イベント情報を特定可能なイベント特定情報を取得する第３取得部と、前記軸情報に基づいて、前記第１座標軸を表す第１軸オブジェクトを生成する第１生成部と、前記イベント特定情報から特定される前記イベント情報毎に、前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記イベントの座標を決定し、決定された前記イベントの座標に基づいて、前記イベント情報によって特定される前記イベントに対応する領域の始点座標と終点座標とを決定し、前記始点座標と前記終点座標とで定義される前記領域を表す領域オブジェクトを生成する第２生成部と、を備えてもよい。
【０００７】
実施形態にかかるプログラム情報生成方法は、少なくとも一つのイベントの実行時間または実行順序に関する時系列情報を含むイベント情報を取得し、前記イベントの実行時間または実行順序に関する時系列の第１座標軸を決定する第１軸情報を含む軸情報を取得し、前記イベント情報を特定可能なイベント特定情報を取得し、前記軸情報に基づいて、前記第１座標軸を表す第１軸オブジェクトを生成し、前記イベント特定情報から特定される前記イベント情報毎に、前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記イベントの座標を決定し、決定された前記イベントの座標に基づいて、前記イベント情報によって特定される前記イベントに対応する領域の始点座標と終点座標とを決定し、前記始点座標と前記終点座標とで定義される前記領域を表す領域オブジェクトを生成する、ことを含んでもよい。
【０００８】
実施形態にかかるプログラム情報生成プログラムは、コンピュータを機能させるためのプログラム情報生成プログラムであって、少なくとも一つのイベントの実行時間または実行順序に関する時系列情報を含むイベント情報を取得する第１取得処理と、前記イベントの実行時間または実行順序に関する時系列の第１座標軸を決定する第１軸情報を含む軸情報を取得する第２取得処理と、前記イベント情報を特定可能なイベント特定情報を取得する第３取得処理と、前記軸情報に基づいて、前記第１座標軸を表す第１軸オブジェクトを生成する第１生成処理と、前記イベント特定情報から特定される前記イベント情報毎に、前記時系列情報と前記第１軸情報とに基づいて、前記第１座標軸における前記イベントの座標を決定し、決定された前記イベントの座標に基づいて、前記イベント情報によって特定される前記イベントに対応する領域の始点座標と終点座標とを決定し、前記始点座標と前記終点座標とで定義される前記領域を表す領域オブジェクトを生成する第２生成処理と、を前記コンピュータに実行させてもよい。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施形態１で用いるプログラム例。
【図２】図２は、図１に示すプログラムの実行状況の表示例。
【図３】図３は、図１に示すプログラムの実行状況の他の表示例。
【図４】図４は、実施形態１に係るプログラム実行状況表示装置の構成例。
【図５】図５は、実施形態１に係るプログラム実行状況表示装置の動作例。
【図６】図６は、実施形態１に係るイベント情報の一例。
【図７】図７は、実施形態１に係る軸情報の一例。
【図８】図８は、実施形態１に係る領域指定条件候補情報の一例。
【図９】図９は、実施形態１に係るヒントオブジェクトの表示例。
【図１０】図１０は、実施形態１に係る領域指定条件情報の一例。
【図１１】図１１は、実施形態１に係る領域情報の一例。
【図１２】図１２は、実施形態１に係る条件選択後のプログラム実行状況の表示例。
【図１３】図１３は、実施形態２で用いるプログラム例。
【図１４】図１４は、図１３に示すプログラムの実行状況例。
【図１５】図１５は、図１３に示すプログラムの実行状況の表示例。
【図１６】図１６は、図１３に示すプログラムの実行状況の他の表示例。
【図１７】図１７は、実施形態２に係るイベント情報の一例。
【図１８】図１８は、実施形態２に係る軸情報の一例。
【図１９】図１９は、実施形態２に係る領域指定条件候補情報の一例。
【図２０】図２０は、実施形態２に係るヒントオブジェクトの表示例。
【図２１】図２１は、実施形態２に係る領域指定条件情報の一例。
【図２２】図２２は、実施形態２に係る領域情報の一例。
【図２３】図２３は、実施形態２に係る条件選択後のプログラム実行状況の表示例。
【図２４】図２４は、図１３に示すプログラムの実行状況の表示例。
【図２５】図２５は、図１３に示すプログラムの実行状況の他の表示例。
【図２６】図２６は、図１３に示すプログラムの実行状況のさらに他の表示例。
【図２７】図２７は、実施形態３に係るイベント情報の一例。
【図２８】図２８は、実施形態３に係る軸情報の一例。
【図２９】図２９は、実施形態３に係る領域指定条件情報の一例。
【図３０】図３０は、実施形態３に係る領域情報の一例。
【図３１】図３１は、実施形態３に係る条件選択後のプログラム実行状況の表示例。
【図３２】図３２は、実施形態４に係る条件選択後のプログラム実行状況の表示例。
【発明を実施するための形態】
【００１０】
以下、例示する実施形態にかかる情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システムを、図面を用いて詳細に説明する。
【００１１】
実施形態１
まず、実施形態１にかかる情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システムについて説明するにあたり、以下で使用する用語の定義について、いくつか説明する。
【００１２】
実施形態１では、図１に例示するソフトウエアプログラム（以下、ソフトウエアプログラムを単にプログラムという）１０１を４５個のプロセッサコアを持つハードウェアで実行した際の実行状況を表示する場合を例に挙げる。図１に示すように、プログラム１０１には、“ｔａｓｋＡ”１０２、“ｔａｓｋＢ”１０３、“ｔａｓｋＣ”１０４、“ｔａｓｋＤ”１０５、および“ｔａｓｋＥ”１０６の合計５種類のイベントが含まれている。
【００１３】
プログラムの実行状況とは、プログラムの実行時に発生するイベントの発生時点とイベントの移り変わりを示すことである。また、情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システムとは、それぞれ、時系列軸と属性軸とで表現される座標系にプログラムの実行状況を描画して表示するシステム、方法およびプログラムを示す。実施形態１では、時系列軸として、実行時刻を要素とする軸を用い、属性軸として、イベントを実行したプロセッサコア名を要素とする軸を用いる。
【００１４】
また、イベントとは、プログラムやプロセスの実行時に発生する処理の単位である。これは、関数やループや条件分岐等のプログラムの構成単位であってもよいし、メモリアクセス、命令実行、スレッド生成、同期処理等の特定の処理であってもよい。
【００１５】
また、時系列軸オブジェクトとは、時系列の点の座標を決める基準となる図である。これは、基準となり得ればよく、例えば、線であってもよいし、点であってもよいし、数字や文字列であってもよし、その他時系列の点の座標を決める基準となる図形であれば如何様にも変形することができる。
【００１６】
また、属性軸オブジェクトとは、属性の点の座標を決める基準となる図である。これは、基準となり得ればよく、例えば、線であってもよいし、点であってもよいし、数字や文字列であってもよし、その他属性の点の座標を決める基準となる図形であれば如何様にも変形することができる。
【００１７】
また、領域オブジェクトとは、時系列軸方向の領域を表す図形であり、例えば、線であってもよいし、長方形であってもよいし、その他領域を表す図形であれば如何様にも変形することができる。
【００１８】
また、イベントオブジェクトとは、イベントを表現する図であり、例えば、線であってもよいし、長方形であってもよいし、その他イベントを表現する図形であれば如何様にも変形することができる。
【００１９】
表示装置である表示画面サイズもしくは表示ウインドウサイズには限りがある。そのため、一度に表示可能な属性軸の要素の数には限りがある。そこで、本実施形態では、イベントを実行したプロセッサコア名を要素に持つ属性軸を表示領域の軸に用いる。その場合、属性軸の全要素数はプロセッサコア数と等価となるため、４５となる。
【００２０】
図２および図３に、従来技術を用いてプログラムの実行状況を表示した場合の例を示す。図２は、属性軸要素の表示サイズを固定した場合の表示例を示す図である。図２に示すように、同時に表示可能な属性軸要素２０４の数を３とすると、属性軸２０３の全要素を同時に表示することができない。そのため、表示可能なイベントは、属性“ｃｏｒｅ０”，“ｃｏｒｅ１”および“ｃｏｒｅ２”に関するイベント２０５、２０６、２０７および２０９となり、属性“ｃｏｒｅ３”の以降の属性軸要素については、イベント（たとえばイベント３０８以降のイベント）を正確に表示することができない。これは、時系列軸２０２についても同様である。そのような場合、従来技術では、スクロールバーなどで特定範囲を移動させることで、目的の領域を表示する。しかしながら、スクロールバーなどを利用した特定範囲の表示方法では、表示されていない属性軸の要素部を見ることができない場合が存在する。
【００２１】
図３は、属性軸の全要素を同時に表示する場合の表示例を示す図である。図３に示すように、この場合、従来技術では、属性軸要素の表示サイズを表示画面サイズもしくは表示ウインドウサイズから決定することで全体を表示する。そのため、描画性能によっては文字やイベントが潰れて表示されてしまい、イベントを可視できない場合が存在する。例えば、図３に示す例では、イベントが実行されたプロセッサコアの情報を得ることが困難である。
【００２２】
そこで、実施形態１では、１つ以上のイベントを含む領域を追加表示することで、大量のイベントの実行状況をユーザに容易に把握させることを可能にする。その際、実施形態１では、イベント情報の実行期間情報に基づいて領域を決定する場合を例に挙げる。
【００２３】
（構成）
図４は、実施形態１に係るプログラム実行状況表示システム４０１の概要構成を機能ブロックで示したものである。プログラム実行状況表示システム４０１は、イベント情報取得部４２２、軸情報取得部４２３、領域指定条件候補情報取得部４２４、領域指定条件情報取得部４２５、領域情報取得部４２６、イベント情報格納部４０２、軸情報格納部４０３、領域指定条件候補情報格納部４０４、領域指定条件情報格納部４０５、領域情報格納部４０６、イベントオブジェクト生成部４０７、軸オブジェクト生成部４０８、領域オブジェクト生成部４０９、表示部４１０、領域指定条件選択部４１１、領域指定条件情報更新部４１２、領域情報生成部４１３、ヒントオブジェクト生成部４１４、および、入力部４１５を備える。なお、各部の詳細については、後述において説明する。
【００２４】
（動作）
図５は、図４に示すプログラム実行状況表示システム４０１の動作例を示すフローチャートである。図４に示すように、本動作では、まず、軸情報取得部４２３が軸情報格納部４０３から軸情報を取得し、軸オブジェクト生成部４０８が取得された軸情報に基づいて軸オブジェクトを生成する（ステップＳ５０１）。また、軸情報取得部４２３が軸情報格納部４０３から軸情報を取得するとともに、イベント情報取得部４２２がイベント情報格納部４０２から少なくとも１つのイベント情報を取得し、イベントオブジェクト生成部４０７が取得された軸情報とイベント情報とに基づいてイベントオブジェクトを生成する（ステップＳ５０２）。次に、表示部４１０が、生成された軸オブジェクトとイベントオブジェクトを表示する（ステップＳ５０３）。
【００２５】
次に、領域指定条件候補情報取得部４２４が領域指定条件候補情報格納部４０４から少なくとも１つの領域指定条件候補情報を取得し、ヒントオブジェクト生成部４１４が取得された領域指定条件候補情報に基づいてヒントオブジェクトを生成する（ステップＳ５０４）。次に、表示部４１０が、生成されたヒントオブジェクトを表示する（ステップＳ５０５）。
【００２６】
次に、領域指定条件選択部４１１が、表示されたヒントオブジェクトに対してユーザが領域指定条件候補の選択情報を入力したか否かを判定する（ステップＳ５０６）。この入力は、たとえば入力部４１５を用いて行われる。選択情報が入力されていなかった場合（ステップＳ５０６；ＮＯ）、プログラム実行状況表示システム４０１は、ステップＳ５１１へ進む。一方、選択情報が入力されていた場合（ステップＳ５０６；ＹＥＳ）、領域指定条件候補情報取得部４２４が領域指定条件候補情報格納部４０４から少なくとも１つの領域指定条件候補情報を取得し、領域指定条件選択部４１１が、取得された領域指定条件候補情報と、ユーザによって入力された領域指定条件候補の選択情報とに基づき、領域指定条件情報を生成し、領域指定条件情報更新部４１２が領域指定条件情報格納部４０５の領域指定条件情報を更新する（ステップＳ５０７）。なお、領域指定条件候補情報格納部４０４内の領域指定条件候補情報は、たとえば入力部４１５からユーザによって予め登録された情報である。また、ステップＳ５０７では、たとえばユーザが入力部４１５を介して領域指定条件情報格納部４０５内の領域指定条件情報を直接更新してもよい。その場合、ステップＳ５０４〜Ｓ５０６にかかるヒントオブジェクトを生成して表示する処理を省略することが可能である。
【００２７】
次に、領域指定条件情報取得部４２５が領域指定条件情報格納部４０５から領域指定条件情報を取得し、領域情報生成部４１３が取得された領域指定条件情報に基づいて領域情報を生成する（ステップＳ５０８）。生成された領域情報は、領域情報格納部４０６に格納される。
【００２８】
次に、軸情報取得部４２３が軸情報格納部４０３から軸情報を取得するとともに、領域情報取得部４２６が領域情報格納部４０６から領域情報を取得し、領域オブジェクト生成部４０９が取得された軸情報と領域情報とに基づいて領域オブジェクトを生成する（ステップＳ５０９）。次に、表示部４１０が、生成された領域オブジェクトを表示する（ステップＳ５１０）。その後、プログラム実行状況表示システム４０１は、本動作を終了するか否かを判定し（ステップＳ５１１）、終了しない場合（ステップＳ５１１；ＮＯ）、ステップＳ５０６へリターンする。これにより、ステップＳ５０６以降のステップが、領域指定条件候補の選択が変更される度に実行される。一方、終了する場合（ステップＳ５１１；ＹＥＳ）、プログラム実行状況表示システム４０１は、本動作を終了する。
【００２９】
つぎに、図４に示す各部について、詳細に説明する。
【００３０】
（イベント情報取得部およびイベント情報格納部）
イベント情報取得部４２２は、たとえばイベントオブジェクト生成部４０７および領域情報生成部４１３からの要求に応じてイベント情報格納部４０２から少なくとも１つのイベント情報を取得する。イベント情報格納部４０２は、少なくとも１つのイベント情報を格納する記憶装置である。イベント情報とは、プログラム実行時に実行されたイベント情報であり、少なくともイベント固有情報とイベント時系列情報とイベント属性情報と含む情報である。
【００３１】
・イベント情報の一例
ここで、図１に示すプログラム１０１を実行した場合を用いてイベント情報について説明する。プログラム１０１は、次のように実行される。まず、“ｔａｓｋＡ”１０２は、プロセッサコア“ｃｏｒｅ０”で時刻“０”から時刻“２０００“まで実行される。次に、”ｔａｓｋＤ“１０５は、プロセッサコア“ｃｏｒｅ１”で時刻“２０００”から時刻“３０００”まで実行される。次に、“ｔａｓｋＥ”１０６は、プロセッサコア“ｃｏｒｅ２”で時刻“３０００”から時刻“４０００”まで実行される。次に、“ｔａｓｋＤ”２０５は、プロセッサコア“ｃｏｒｅ３”で時刻“４０００”から時刻“５０００”まで実行される。次に、“ｔａｓｋＥ”１０６は、プロセッサコア“ｃｏｒｅ４”で時刻“５０００”から時刻“６０００”まで実行される。次に、“ｔａｓｋＤ”１０５は、プロセッサコア“ｃｏｒｅ２０”で時刻“６０００”から時刻“７０００”まで実行される。次に、“ｔａｓｋＥ”１０６は、プロセッサコア“ｃｏｒｅ２１”で時刻“７０００”から時刻“８０００”まで実行される。次に、“ｔａｓｋＢ”１０３はプロセッサコア“ｃｏｒｅ０”で時刻“８０００”から時刻“１００００”まで実行される。最後に、“ｔａｓｋＣ”１０４は、プロセッサコア“ｃｏｒｅ０”で時刻“１００００”から時刻“１００１０”まで実行される。
【００３２】
以上のようなプログラムのイベント情報は、個別のイベント情報がリストアップされたイベント情報リストを用いて管理される。図６に、図１に示すプログラムを実行した際のイベント情報リスト６０１の一例を示す。図６に示すように、イベント情報リスト６０１の各イベント情報６０２〜６１０は、イベント固有情報を実行順に割当てた固有ＩＤとし、イベント時系列情報を実行開始時刻と実行終了時刻とからなる実行期間情報とし、属性情報をイベントが実行されたプロセッサコア名とプログラム構造情報と何回目のイタレーションであるかを表すイタレーション情報とを含む。図６に示す例では、イベント情報リスト６０１は、９つのイベント情報を保持しており、１行が１つのイベント情報を表している。例えば、イベント情報６０３は、イベント固有情報の固有ＩＤ、イベント実行期間情報の実行開始時刻、イベント実行期間情報の実行終了時刻、イベント属性情報の実行プロセッサコア、イベント属性情報のプログラム上の構造情報、イベント属性情報のイタレーション情報の順に、“１”、“２０００”、“３０００”、“ｃｏｒｅ１”、“ｆｕｎｃｔｉｏｎ１：ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ：ｔａｓｋＡ”、“１”という情報を持つ。イベント情報６０３のイベントは、固有ＩＤが“１”であり、イベントが“ｃｏｒｅ１”のプロセッサコアで、実行開始時刻“２０００”から実行終了時刻“３０００”の間に実行される。また、イベント情報６０３のイベントは、プログラム構造上“ｆｕｎｃｔｉｏｎ１”内の”ＬｏｏｐＡ”内のイテレーション内の“ｔａｓｋＡ”を示し、“ＬｏｏｐＡ”の１回目のイテレーションで実行されたイベントである。
【００３３】
なお、イベント固有情報は、イベント情報格納部４０２に含まれる複数のイベント情報から１つのイベントを特定可能な情報であり、例えば、イベント固有名であってもよいし、イベント固有ＩＤであってもよい。
【００３４】
イベント時系列情報は、時系列情報であり、例えば、イベント実行期間情報であってもよいし、イベント時系列順番情報であってもよい。
【００３５】
イベント実行期間情報は、イベントの実行開始時刻と実行期間が定義される情報であり、例えば、少なくとも実行開始時刻と実行期間を含む情報であってもよいし、少なくとも実行開始時刻と実行終了時刻を含む情報であってもよいし、少なくとも実行期間と実行終了時刻を含む情報であってもよいし、イベントの実行開始時刻であってもよいし、イベントの終了時刻であってもよい。
【００３６】
実行開始時刻、実行終了時刻および実行期間は、期間情報であり、例えば、プログラム実行時におけるプロセッサ時刻であってもよいし、プロセッサ時刻に基づいて生成した期間情報であってもよい。
【００３７】
イベント時系列順番情報は、イベントの実行された順を表す情報であり、例えば、プログラム全体で実行された順番情報であってもよいし、ループイテレーションを表すイベントの何番目のイテレーションであるかというイテレーション内順序情報等の繰り返し実行されるプログラム構造での順番情報を含む情報であってもよい。
【００３８】
イベント属性情報は、イベントに関する情報であり、例えば、実行トレース情報であってもよいし、プログラムの静的情報であってもよいし、プログラムの実行環境情報であってもよい。
【００３９】
実行トレース情報は、プログラム実行時に取得可能な実行時の状況を表す情報であり、例えば、イベントを実行したプロセッサコア情報であってもよいし、イベント実行した命令情報であってもよいし、イベント実行期間であってもよいし、イベントが実行したメモリアクセス情報であってもよいし、イベントが実行した関数コール回数であってもよいし、イベント内の変数の値であってもよいし、イベントがループイタレーションである場合において何回目のイタレーションであるかの情報であってもよいし、イベントが割り込み処理であるかの情報であってもよい。
【００４０】
プログラムの静的情報は、ソースコードもしくはソースコード管理システムから得られる静的な情報であり、例えば、ソースコード上の位置情報であってもよいし、プログラム構造情報であってもよいし、ソースコードのコンパイル情報であってもよいし、ソースコードのバージョン情報であってもよいし、プログラムがカーネルプログラムであるかの情報であってもよいし、プログラムがユーザプログラムであるかの情報であってもよい。
【００４１】
プログラムの実行環境情報は、プログラムを実行した際の環境の情報であり、例えば、プロセッサコア名であってもよいし、サーバ名であってもよいし、サーバの仕様情報であってもよい。
【００４２】
（軸情報取得部および軸情報格納部）
軸情報取得部４２３は、たとえばイベントオブジェクト生成部４０７、軸オブジェクト生成部４０８および領域オブジェクト生成部４０９からの要求に応じて軸情報格納部４０３から軸情報を取得する。軸情報格納部４０３は、時系列軸情報と、少なくとも１つの属性軸情報と、少なくとも１つの表示属性特定情報を含む軸情報を格納する記憶装置である。
【００４３】
ここで、軸情報とは、少なくとも時系列軸情報と、属性軸情報とを含む情報であり、さらに、表示属性特定情報を含んでいてもよい。時系列軸情報は表示装置の画面の１間隔当たりが表す期間を示す情報である。属性軸情報は、少なくとも軸の要素名と、その表示位置を表す座標を示す情報とを含む情報である。表示属性特定情報は、表示対象となる属性を特定可能な情報である。
【００４４】
・軸情報の一例
図７に、軸情報７０１の一例を示す。図７に示すように、軸情報７０１では、時系列軸情報７０２が表示間隔情報と表示間隔が示す期間情報とからなり、属性軸情報７０３〜７１１が要素名情報と表示位置を表す座標と表示属性特定情報とからなる。図７に示す例では、時系列軸情報７０２は、表示間隔情報を“１”とし、表示間隔が示す期間情報を“２”とする。また、属性軸情報７０３は、要素名情報を“ｃｏｒｅ０”とし、表示位置を表す座標を“０”とし、表示属性特定情報を“表示”とする。
【００４５】
なお、時系列軸情報は、表示装置の画面の１間隔当たりが表す情報を示す情報であればよい。例えば、１表示間隔当たりの期間情報であってもよいし、１期間当たりの表示間隔情報であってもよいし、少なくとも表示間隔とその表示間隔が表す期間情報を含む情報であってもよいし、１表示間隔当たりの実行順序情報数であってもよいし、１実行順序情報数当たりの表示間隔情報であってもよいし、表示間隔とその表示間隔が表す実行順序情報数から成る情報であってもよい。また、時系列軸情報は、プログラム実行状況表示システム４０１が事前に保持していてもよいし、ソフトウェア開発者が指定した情報であってもよいし、表示装置の画面サイズもしくはウインドウサイズと１画面で表示する実行期間情報に基づいて生成された情報であってもよい。
【００４６】
属性軸情報は、属性軸の要素名とその表示位置を表す座標である。イベント情報６０１に含まれるイベント情報のイベント属性情報は、１つの属性軸の要素名に対応する。属性軸の要素名は、プログラム実行状況表示システム４０１が事前に保持している情報であってもよいし、ソフトウェア開発者が指定した情報であってもよい。
【００４７】
表示位置を表す座標は、表示装置の画面上の属性軸の要素名を表示する位置を表す座標情報である。表示位置を表す座標は、プログラム実行状況表示システム４０１が事前に保持している情報であってもよいし、ソフトウェア開発者が指定した情報であってもよいし、表示装置の画面サイズもしくはウインドウサイズと１画面で表示する属性軸の要素数に基づいて生成された情報であってもよい。
【００４８】
（軸オブジェクト生成部）
軸オブジェクト生成部４０８は、軸情報取得部４２３によって軸情報格納部４０３から取得された軸情報７０１を入力し、入力した軸情報７０１に基づいて、プログラム実行状況を描画する座標系を形成する時系列軸オブジェクトと属性軸オブジェクトとを生成する。本説明では、座標系を２次元平面とするが、これに限らず、３次元以上の空間座標系であってもよいし、同一平面に２つ以上の２次元座標系を重ね合わせた座標系であってもよい。図７に示す軸情報７０１を用いた場合、軸オブジェクト生成部４０８は、まず、時系列軸情報７０２に基づいて表示装置の表示間隔１当たり時刻“２”を表す時系列軸オブジェクトを生成する。次に、属性軸情報から要素名をラベルとし、そのラベルの表示位置を表す座標に基づいて配置する属性軸オブジェクトを生成する。
【００４９】
（イベントオブジェクト生成部）
イベントオブジェクト生成部４０７は、イベント情報格納部４０２に格納されるイベント情報６０１と、軸情報格納部４０３に格納される軸情報７０１とを、それぞれイベント情報取得部４２２および軸情報取得部４２３を介して入力する。また、イベントオブジェクト生成部４０７は、イベント情報のイベント実行期間情報と軸情報の時系列軸情報とに基づいて時系列軸方向の表示位置を示す始点座標および終点座標と表示サイズとを決定するとともに、イベント情報の属性情報と軸情報の属性軸情報とに基づいて属性軸方向の表示位置を示す座標を決定し、イベントを表すイベントオブジェクトを生成する。
【００５０】
図６に示すイベント情報６０３におけるイベント固有ＩＤ“１”のイベントに着目して説明する。イベントオブジェクト生成部４０７は、まず、軸情報７０１の時系列軸情報７０２である“１表示間隔当たりの時刻は２”の情報と、イベントのイベント実行期間情報の実行開始時刻“２０００”とから、時系列軸方向の表示始点座標の式“実行開始時刻÷１表示間隔当たりの時刻”を用いて“２０００÷２＝１０００”を計算し、また、時系列軸方向の表示サイズの式“（実行終了時刻−実行開始時刻）÷１表示間隔当たりの期間”を用いて“（３０００−２０００）÷２＝１０００”を計算する。また、始点座標と表示サイズから表示終点座標を“２０００”と決定する。次に、イベント情報６０３のイベント属性情報の“ｃｏｒｅ１”と、“ｃｏｒｅ１”に対応する軸情報７０１の属性軸情報７０４とから、属性軸方向の表示座標を“１００”とする。次に、これらの時系列軸方向の表示位置を表す始点座標および終点座標、時系列軸方向の表示サイズ、および属性軸方向の表示位置を表す座標の情報を含むイベントオブジェクトを生成する。
【００５１】
（領域指定条件候補情報取得部および領域指定条件候補情報格納部）
領域指定条件候補情報取得部４２４は、たとえば領域指定条件選択部４１１およびヒントオブジェクト生成部４１４からの要求に応じて領域指定条件候補情報格納部４０４少なくとも１つの領域指定条件候補情報を取得する。領域指定条件候補情報格納部４０４は、少なくとも１つの領域指定条件候補情報を格納する記憶装置である。ここで、領域指定条件候補情報とは、少なくとも１つの領域指定条件情報を含む情報である。
【００５２】
領域指定条件情報は、１つの領域始点イベント特定情報と、１つの領域終点イベント特定情報とを含む情報である。領域始点イベント特定情報は、複数のイベント情報から属性情報に基づいて特定される領域始点イベントを特定する情報である。なお、領域始点イベントは、たとえば時系列軸方向で領域内の最小の実行開始期間情報を持つイベントである。領域終点イベント特定情報は、複数のイベント情報から属性情報に基づいて特定される領域終点イベントを特定する情報である。なお、領域終点イベントとは、時系列軸方向で領域内の最大の実行終了時間を持つイベントである。
【００５３】
領域指定条件情報は、例えば、イベント実行期間情報に関する条件であってもよいし、イベント属性情報に関する条件であってもよい。また、領域指定条件情報は、プログラム実行状況表示システム４０１が事前に保持している情報であってもよいし、ソフトウェア開発者の入力による情報であってもよいし、イベント情報に基づいて生成された情報であってもよい。
【００５４】
・領域指定条件候補情報の一例
以上のような領域指定条件候補情報は、個別の領域指定条件情報がリストアップされた領域指定条件候補情報リストを用いて管理される。ここで、図８に、領域指定条件候補情報リスト８０１の一例を示す。図８に示す例では、領域指定条件候補情報リスト８０１は、１５つの領域指定条件情報８０２〜８１６を含んでいる。
【００５５】
図８において、たとえば領域指定条件情報８１５は、イベント実行期間に関する条件であり、“実行期間が１０００未満のイベント”で１つ以上のイベントを特定する条件である。また、たとえば領域指定条件情報８０２は、イベント属性情報に関する条件であり、“ＬｏｏｐＡに属するイベント”はプログラム構造上“ＬｏｏｐＡに属するイベント“である１つ以上のイベントを特定する条件である。
【００５６】
イベント実行期間情報に関する条件は、イベントの実行開始時刻もしくは実行終了時刻もしくは実行期間が特定値と等しいもしくは大きいもしくは小さいイベント等の条件から、少なくとも１つのイベントを特定可能な条件である。また、イベント属性情報に関する条件は、イベント属性情報にある情報に対する条件から、少なくとも１つのイベントを特定可能な条件である。
【００５７】
このイベント属性情報に関する条件は、例えば、イベント属性情報がイベントを実行したプロセッサコア名である場合は、特定のプロセッサコア名であるか、もしくは、特定のプロセッサコア名でないか等の条件であってもよい。また、イベント属性情報がイベント実行した命令情報である場合は、特定の命令であるか、もしくは、特定の命令でないか等の条件であってもよい。さらに、イベント属性情報がメモリアクセス情報である場合は、特定アドレスにアクセスしたか等のアクセスアドレスに関する条件、特定回数以上アクセスしたか等のアクセス回数に関する条件、アクセス命令に関する条件、もしくは、これらの条件の組合せの条件であってもよい。さらにまた、イベント属性情報が関数コール回数である場合は、関数コール回数が特定値と等しい、特定値より大きい、特定値より小さい等の関数コールに関する条件であってもよい。さらにまた、イベント属性情報が変数の値の場合は、変数の値が特定値と等しい、特定値より大きい、特定値より小さい、特定の文字もしくは文字列を含む等の条件であってもよい。さらにまた、イベント属性情報がループイタレーションであって何回目のイタレーションであるかのイタレーション情報である場合は、イタレーション情報が特定値と等しい、特定値より大きい、特定値より小さい等の条件であってもよい。さらにまた、イベント属性情報が割り込みであるかの情報である場合は、割り込み処理であるか否かの条件であってもよい。さらにまた、イベント属性情報がソースコード上の位置情報である場合は、ソースコードの特定の位置に存在するか否か、特定のファイルに記述されているか否か等の条件であってもよい。さらにまた、イベント属性情報がプログラム構造情報である場合は、特定関数であるイベント、特定関数に属しているイベント、特定関数を呼び出すイベント、条件分岐に属しているイベント、特定ループに属しているイベント等の構造情報に関する条件であってもよい。さらにまた、イベント属性情報がソースコードのコンパイル情報である場合は、コンパイラのバージョンが特定値と等しい、コンパイラのバージョン特定値より大きい、コンパイラのバージョン特定値より小さい、コンパイラ時に特定のオプションが用いられたか否か等のコンパイル時及びコンパイラに関する条件であってもよい。さらにまた、イベント属性情報がソースコードのバージョン情報である場合は、バージョン情報が特定値と等しい、バージョン情報が特定値より大きい、バージョン情報が特定値より小さい等の条件であってもよい。さらにまた、イベント属性情報がカーネルプログラムであるか否かの情報である場合は、カーネルプログラムであるか否かの条件であってもよい。さらにまた、イベント属性情報がユーザプログラムであるか否かの情報である場合は、ユーザプログラムであるか否かの条件であってもよい。さらにまた、イベント属性情報がプロセッサコア名である場合は、プロセッサコア名が特定値と等しいか否かの条件であってもよい。さらにまた、イベント属性情報がサーバ名である場合は、サーバ名が特定値と等しいか否かの条件であってもよい。さらにまた、イベント属性情報がサーバの仕様情報である場合は、サーバのコア数が特定数と等しい、サーバのコア数が特定数より大きい、サーバのコア数が特定数より小さい、サーバのメモリ容量が特定値と等しい、サーバのメモリ容量が特定値より大きい、サーバのメモリ容量より小さい、サーバのディスク容量が特定値と等しい、サーバのディスク容量が特定値より大きい、サーバのディスク容量より小さい等のサーバの仕様に関する条件であってもよいし、これらの条件のうち１つ以上の条件の組合せであってもよい。
【００５８】
（ヒントオブジェクト生成部）
ヒントオブジェクト生成部４１４は、領域指定条件候補情報取得部４２４によって領域指定条件候補情報格納部４０４から取得された領域指定条件候補情報を入力し、入力した領域指定条件候補情報に基づいてイベントを特定する領域指定条件情報を表すヒントオブジェクトを生成する。図９に、実施形態１におけるヒントオブジェクトの一例を示す。なお、図９には、図８に示す領域指定条件候補情報リスト８０１から全ての領域指定条件情報８０２〜８１６を取得して生成されたヒントオブジェクト９０１の一例が示されている。図９に示すように、ヒントオブジェクト９０１には、取得した領域指定条件情報８０２〜８１６をメニュー表示する項目９０２〜９１６が含まれている。各項目９０２〜９１６には、これらのうちの何れか１つ以上をユーザに選択させるためのチェックボックス（選択オブジェクトまたは選択ユーザインタフェースともいう）９１７が対応づけられている。
【００５９】
（領域指定条件選択部）
領域指定条件選択部４１１は、領域指定条件候補情報取得部４２４によって領域指定条件候補情報格納部４０４から取得された領域指定条件候補情報を入力し、入力した領域指定条件候補情報から少なくとも１つの領域指定条件情報を選択する。実施形態１では、たとえばユーザインタフェースとして表示されたヒントオブジェクト９０１（図９参照）に対するユーザの入力に基づいて、入力した１つ以上の領域指定条件情報の中から目的の領域指定条件情報を選択する。例えば、ユーザがヒントオブジェクト９０１に表示された項目９０２〜９１６の中から“ＬｏｏｐＡに属するイベント”の項目を選択する場合、この“ＬｏｏｐＡに属するイベント”の横に配置された選択ユーザインタフェース９１７を選択する。以降では、“ＬｏｏｐＡに属するイベント”、“ｉｔｅｒａｔｉｏｎ１に属するイベント”、“ｉｔｅｒａｔｉｏｎ２に属するイベント”、および、“ｉｔｅｒａｔｉｏｎ３に属するイベント”の計４つの項目に対するチェックボックス９１７がユーザによって選択された場合を例示する。
【００６０】
ユーザによってチェックボックス９１７にチェックが付された項目についての領域指定条件情報は、領域指定条件情報の選択情報（図５のステップＳ５０６参照）として領域指定条件選択部４１１に入力される。したがって、本ケースでは、“ＬｏｏｐＡに属するイベント”９０２、“ｉｔｅｒａｔｉｏｎ１に属するイベント”９０３、“ｉｔｅｒａｔｉｏｎ２に属するイベント”９０４、および、“ｉｔｅｒａｔｉｏｎ３に属するイベント”９０５の計４つの項目に対する領域指定条件情報が選択情報として領域指定条件選択部４１１に入力される。
【００６１】
なお、チェックボックス９１７は、領域指定条件情報候補から領域指定条件情報を選択するための構成であればよく、図９のヒントオブジェクト９０１に例示したような、領域指定条件情報候補としての項目９０２〜９１６それぞれに選択オブジェクトとしてチェックボックス９１７を対応づけて同時表示する構成に限られない。たとえば、ファイルを用いて領域指定条件情報を選択する構成など、種々変形することが可能である。
【００６２】
（領域指定条件情報更新部）
領域指定条件更新部４１２は、領域指定条件選択部４１１で領域指定条件候補情報から選択された少なくとも１つの領域指定条件情報に基づいて、領域指定条件情報格納部４０５に格納されている領域指定条件情報リスト１００１を更新する。実施形態１では、“ＬｏｏｐＡに属するイベント”、“ｉｔｅｒａｔｉｏｎ１に属するイベント”、“ｉｔｅｒａｔｉｏｎ２に属するイベント”、および、“ｉｔｅｒａｔｉｏｎ３に属するイベント”の領域指定条件情報を用いて、領域指定条件情報格納部４０５に格納されている領域指定条件情報リスト１００１が更新される。
【００６３】
（領域指定条件情報取得部および領域指定条件情報格納部）
領域指定条件情報取得部４２５は、たとえば領域情報生成部４１３からの要求に応じて領域指定条件情報格納部４０５から少なくとも１つの領域指定条件情報を取得する。領域指定条件情報格納部４０５は、少なくとも１つの領域指定条件情報を格納する記憶装置である。図１０に、領域指定条件情報格納部４０５に格納される領域指定条件情報リストの一例を示す。本例では、領域指定条件選択部４１１によって更新された結果、図１０に示すように、領域指定条件情報リスト１００１が、“ＬｏｏｐＡに属するイベント”１００２、“ｉｔｅｒａｔｉｏｎ１に属するイベント１００３”、“ｉｔｅｒａｔｉｏｎ２に属するイベント”１００４、および、“ｉｔｅｒａｔｉｏｎ３に属するイベント”１００５の領域指定条件情報を含むように更新される。
【００６４】
（領域情報生成部）
領域情報生成部４１３は、イベント情報取得部４２２によってイベント情報格納部４０２から取得されたイベント情報リスト６０１を入力し、領域指定条件情報取得部４２５によって領域指定条件情報格納部４０５から取得された領域指定条件情報１００１を入力し、領域名を決定し、領域指定条件情報に基づいて１つ以上のイベント情報を選択する。次に、選択されたイベント情報から領域を決定し、選択されたイベント情報に基づいて領域期間情報を決定して、領域情報を生成する。領域情報とは、時系列軸方向の領域を定義する情報であり、少なくとも領域を識別する情報と領域期間情報とを含む情報である。領域を識別する情報とは、例えば、領域名であってもよいし、領域固有のＩＤであってもよい。
【００６５】
・領域情報の一例
図１１に、領域情報の一例を示す。図１１に示すように、領域情報１１０１は、領域の項目１１０２〜１１０５毎に、領域名と、領域期間情報とを含む。領域期間情報は、領域始点時刻情報と、領域終点時刻情報とからなる情報である。領域名は、プログラム実行状況表示システム４０１に表示される領域のラベルとなる情報である。領域期間情報は、時系列軸方向の領域を定義する情報である。例えば、項目１１０２は、領域名を“ＬｏｏｐＡに属するイベント”とし、領域始点時刻情報を“２０００”とし、領域終点時刻情報を“８０００”とする情報である。
【００６６】
なお、領域情報は、時系列軸方向の領域を定義する情報である。領域期間情報は、時系列軸方向の領域を定義する情報であればよく、少なくとも領域始点時刻情報と領域終点時刻情報とを含む情報に限らず、少なくとも領域始点時刻情報と領域の時間幅を表す領域期間情報とを含む情報であってもよい。
【００６７】
ここで、選択された２つ以上のイベントが連続している範囲を１つの領域とする例を説明する。イベント情報のプログラム構造情報に基づいて、“ＬｏｏｐＡ”を構造に持つ６つのイベント情報６０３、６０４、６０５，６０６、６０７、６０８が選択された場合、イベント情報６０３のプログラム構造情報が“ｆｕｎｃｔｉｏｎ０：ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ：ｆｕｎｃｔｉｏｎ１：ｔａｓｋＤ”であるため、イベント情報６０３が示すイベントは”ＬｏｏｐＡ”に属していると判定できる。そこで、領域情報生成部４１３は、領域を決定する。本例では連続するイベントが連続している範囲を１つの領域とするため、イベント情報６０３、６０４、６０５，６０６、６０７、６０８のイベントが実行された期間の範囲を１つの領域とする。
【００６８】
次に、領域情報生成部４１３は、選択されたイベント情報に含まれるイベント実行期間情報のイベント実行開始時刻に基づいて、領域始点時刻を決定する。選択されたイベント情報の実行開始時刻は、“２０００”、“３０００”、“４０００”、“５０００”、“６０００”、“７０００”であるため、最小実行開始時刻である”２０００”が領域始点時刻と決定される。
【００６９】
次に、領域情報生成部４１３は、選択されたイベント情報に含まれるイベント実行期間情報のイベント実行終了時刻に基づいて、領域終点時刻を決定する。選択されたイベント情報の実行終了時刻は“３０００”、“４０００”、“５０００”、“６０００”、“７０００”、”８０００”であるため、最大実行終了時刻である”８０００”が領域終点時刻と決定される。
【００７０】
次に、領域情報生成部４１３は、領域指定条件情報に基づいて領域名“ＬｏｏｐＡに属するイベント”を決定する。その後、領域情報生成部４１３は、領域名を“ＬｏｏｐＡに属するイベント”とし、領域始点時刻を“２０００”とし、領域終了時刻を“８０００”とする領域情報１１０２を生成し、これを領域情報格納部４０６に格納する。
【００７１】
また、領域情報生成部４１３は、領域指定条件情報１００３、１００４、１００５についても同様に、領域情報１１０３、１１０４、１１０５を生成し、これらを含む領域情報１１０１を領域情報格納部４０６に格納する。ここで、領域指定条件情報１００３は、“ｉｔｅｒａｔｉｏｎ１に属するイベント”を選定するため、領域指定条件情報１００３に基づく領域情報１１０３の生成では、イベント情報のイベント属性情報のプログラム上の構造情報と、イベント属性情報のイタレーション情報とが用いられる。
【００７２】
なお、領域とは、少なくとも１つのイベントを含む範囲である。そのため、例えば、領域指定条件情報に基づいて選択された１つのイベントを１つの領域としてもよいし、領域指定条件情報に基づいて選択された２つ以上のイベントが連続している範囲を１つの領域としてもよいし、領域指定条件情報に基づいて選択された２つ以上のイベントを全て包含する範囲を１つの領域としてもよい。
【００７３】
また、領域始点時刻の決定方法では、領域指定条件情報に基づいて選択されたイベントのイベント情報に含まれるイベント実行期間情報のイベント実行開始時刻に基づいて領域始点時刻が決定されてもよいし、選択されたイベントのイベント情報に含まれるイベント実行期間情報のイベント実行終了時刻に基づいて領域始点時刻が決定されてもよい。
【００７４】
また、領域終点時刻の決定方法では、領域指定条件情報に基づいて選択されたイベントのイベント情報に含まれるイベント実行期間情報のイベント実行終点時刻に基づいて領域終点時刻が決定されてもよいし、選択されたイベントのイベント情報に含まれるイベント実行期間情報のイベント実行始点時刻に基づいて領域終点時刻が決定してもよい。
【００７５】
また、領域指定条件情報に基づいて選択された１つのイベントを１つの領域とする場合の領域期間情報の生成では、領域始点時刻をイベントの実行開始時刻とし、領域終点時刻をイベントの実行終了時刻としてもよい。
【００７６】
さらに、イベントのイベント実行開始時刻とイベント実行終了時刻とが等しい場合は、実行開始時刻を実行終了時刻とみなし、実行終了時刻を実行開始時刻とみなしてもよい。
【００７７】
さらにまた、領域名の生成では、領域指定条件情報に基づいて領域名が決定されてもよいし、選択されたイベント情報に基づいて決定されてもよいし、外部の入力情報に基づいて決定されてもよい。
【００７８】
（領域情報取得部および領域情報格納部）
領域情報取得部４２６は、たとえば領域オブジェクト生成部４０９からの要求に応じて領域情報格納部４０６から少なくとも１つの領域情報を取得する。領域情報格納部４０６は、少なくとも１つの領域情報を格納する記憶装置である。
【００７９】
（領域オブジェクト生成部）
領域オブジェクト生成部４０９は、軸情報取得部４２３によって軸情報格納部４０３から取得された軸情報を入力し、領域情報取得部４２６によって領域情報格納部４０６から取得された領域情報を入力し、軸情報の時系列軸情報と領域情報の領域期間情報に基づいて領域を表す領域オブジェクトの時系列軸方向の表示位置を表す始点座標および終点座標と表示範囲を決定する。また、領域オブジェクト生成部４０９は、領域情報格納部４０６に格納される全ての領域情報の領域期間情報から少なくとも画面上に表示される始点座標と終点座標を決定する。この際、時系列軸方向の重複領域を判定し、重複がある場合は重複する領域情報とは異なる属性軸方向の表示位置を表す座標を決定する。さらに、実施形態１では、領域オブジェクトを長方形オブジェクトとするため、重複がある場合は重複する領域情報とは異なる属性軸方向の表示範囲も決定する。その後、領域オブジェクト生成部４０９は、時系列軸方向の表示位置を表す始点座標および終点座標と、時系列軸方向の表示範囲と、属性軸方向の表示位置を表す座標と、属性軸方向の表示範囲と、領域情報の領域名とを含む領域オブジェクトを生成する。
【００８０】
領域オブジェクト生成部４０９による領域オブジェクトの生成を、領域情報１１０２に着目して説明する。領域オブジェクト生成部４０９は、まず、軸情報７０１の時系列軸情報７０２である“１表示間隔当たりの期間は２”の情報と、領域情報１１０２の領域の領域始点時刻“２０００”とから、時系列軸方向の表示始点座標を式“（領域始点時刻）÷（１表示間隔当たりの期間）”を用いて“２０００÷２＝１０００”を計算し、時系列軸方向の表示サイズを式“（領域終点時刻-領域始点時刻）÷（１表示間隔当たりの期間）”を用いて“（８０００−２０００）÷２＝３０００”を計算する。また、始点座標と表示サイズから表示終点座標を“４０００”と決定する。また、領域オブジェクト生成部４０９は、画面サイズから属性軸方向の表示位置を表す座標を決定する。
【００８１】
次に、領域オブジェクト生成部４０９は、領域情報格納部４０６に格納されている領域情報の領域期間情報から、領域情報１１０２と重複する領域情報１１０３、１１０４、１１０５を判定する。そして、領域情報１１０２を表す第１の領域オブジェクトの属性軸方向の表示範囲が領域情報１１０３、１１０４、１１０５を包含していることに基づいて、領域情報１１０２の属性軸方向の表示範囲を領域情報１１０３、１１０４、１１０５を表す第２の領域オブジェクトの属性軸方向の表示範囲より大きい値に決定する。
【００８２】
次に、領域オブジェクト生成部４０９は、領域情報１１０２の領域名から領域名を“ＬｏｏｐＡに属するイベント”とする。その後、領域オブジェクト生成部４０９は、時系列軸方向の表示位置を表す始点座標および終点座標と時系列軸方向の表示範囲と属性軸方向の表示位置を表す座標と属性軸方向の表示範囲と領域名の情報とを含む領域オブジェクトを生成する。
【００８３】
なお、領域オブジェクトは、時系列軸方向の領域を表すオブジェクトであればよく、例えば、線オブジェクトであってもよいし、長方形オブジェクトであってもよいし、その他領域を表すオブジェクトであれば如何様にも変形することができる。
【００８４】
（表示部）
表示部４１０は、軸オブジェクトと、イベントオブジェクトと、ヒントオブジェクトと、領域オブジェクトとを表示する。以下では、図１２に示す領域指定条件情報選択後のプログラム実行状況表示領域１２０１の例を用いて説明する。なお、本説明では、画面上に表示可能な領域のみを表示し、スクロールバーにより表示領域を変更可能とする場合を例に挙げる。
【００８５】
・軸オブジェクト表示
表示部４１０は、軸オブジェクト生成部４０８から軸オブジェクトを入力し、軸オブジェクトが持つ表示情報に基づいて軸オブジェクトを画面上に描画する。軸オブジェクトのうち、時系列軸オブジェクトは一定区間ごとに時刻情報のラベルを表示し、属性軸オブジェクトは属性ラベルを表示する。図１２に示す例では、時系列軸は、たとえば“０”から“９０００“を表示する。その際、ラベルが１０００単位で表示される。表示部４１０は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。
【００８６】
・イベントオブジェクト表示
表示部４１０は、イベントオブジェクト生成部４０７からイベントオブジェクトを入力し、イベントオブジェクトが持つ表示位置を表す時系列軸方向の始点座標および終点座標と属性軸方向の座標に基づいてイベントオブジェクトを画面上に描画する。図１２に示すように、本例では、図６に示すイベント６０２、６０３、６０４、６０５、６０９を表すイベントオブジェクトが、それぞれ順にイベントオブジェクト１２０２、１２０３、１２０４、１２０５、１２０９として表示される。表示部１１０は、画面サイズやウインドウサイズ等の表示サイズを入力とし、表示可能なサイズのイベントオブジェクトを表示してもよいし、表示可能なサイズのイベントオブジェクトにサイズを変換して表示してもよい。
【００８７】
・ヒントオブジェクト表示
表示部４１０は、ヒントオブジェクト生成部４１４からヒントオブジェクトを入力し、ヒントオブジェクトが持つ表示位置を表す座標に基づいてヒントオブジェクト１２２０を画面上に描画する。図１２に示すように、ヒントオブジェクト１２２０は、イベントオブジェクトが表示されるプログラム実行情報表示領域１２０１とは別のウィンドウとして表示されてもよい。また、ヒントオブジェクト１２２０は、常時表示されていてもよいし、ユーザインタフェースからの指示により表示してもよい。なお、図１２に示す例では、“ＬｏｏｐＡに属するイベント”、“ｉｔｅｒａｔｉｏｎ１に属するイベント”、“ｉｔｅｒａｔｉｏｎ２に属するイベント”、“ｉｔｅｒａｔｉｏｎ３に属するイベント”が選択された場合が示されている。
【００８８】
・領域オブジェクト表示
表示部４１０は、領域オブジェクト生成部４０９から領域オブジェクトを入力し、領域オブジェクトが持つ表示位置を表す時系列軸方向の始点座標および終点座標と属性軸方向の座標に基づいて領域オブジェクトを画面上に描画する。また、領域オブジェクトが持つ領域名に基づいて領域名を表示する。図１２におけるプログラム実行状況表示領域１２０１は、領域指定条件選択後の表示例である。ヒントオブジェクト１２２０では、“ＬｏｏｐＡに属するイベント”、“ｉｔｅｒａｔｉｏｎ１に属するイベント”、“ｉｔｅｒａｔｉｏｎ２に属するイベント”、“ｉｔｅｒａｔｉｏｎ３に属するイベント”の領域指定条件が選択されているため、プログラム実行状況表示領域１２０１には、“ＬｏｏｐＡに属するイベント”を指し示す領域オブジェクト１２１１と、“ｉｔｅｒａｔｉｏｎ１に属するイベント”を指し示す領域オブジェクト１２１２と、“ｉｔｅｒａｔｉｏｎ２に属するイベント”を指し示す領域オブジェクト１２１３と、“ｉｔｅｒａｔｉｏｎ３に属するイベント”を指し示す領域オブジェクト１２１４とが表示される。
【００８９】
なお、領域オブジェクトは、領域の始点と終点を含む範囲を表現しているオブジェクトであれば、どのような表示オブジェクトとであってもよい。また、複数の領域オブジェクトの少なくとも一部分でも重なる場合、それぞれの領域オブジェクトを互いに識別可能な状態であれば、どのように表示されてもよい。
【００９０】
以上のように、実施形態１によれば、大量のイベントが実行されるプログラムの実行状況をユーザに対して有効に提示することが可能になる。その際、ヒントオブジェクトを併せて表示することで、ユーザに対して対話的かつ有効にプログラムの実行状況を提示することが可能になる。
【００９１】
実施形態２
つぎに、実施形態２にかかる情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システムについて、図面を参照して詳細に説明する。なお、実施形態２では、イベント情報の時系列順序情報に基づいて領域を決定する場合を例に挙げる。
【００９２】
実施形態２では、図１３に例示するプログラム１３０１を実行した際の実行状況を表示する場合を例に挙げる。図１３に示すように、プログラム１３０１には、“ＬｏｏｐＡ”１３０２、“ＬｏｏｐＢ”１３０３、および“ｔａｓｋＡ”１３０４の合計３種類のイベントが含まれている。
【００９３】
また、実施形態２にかかるプログラム実行状況表示において用いる軸は、時系列軸と属性軸とであるとする。ただし、実施形態２では、時系列軸がイベントの“ｔａｓｋＡ”の実行順序を表す軸とし、属性軸がイベントを実行した実行期間を要素とする軸とする。
【００９４】
そこで、実施形態２では、図１４に示すように、イベント“ｔａｓｋＡ”１４０６〜１４１４を表示するとともに、イベント“ＬｏｏｐＡ”１４０２と、イベント“ＬｏｏｐＢ“１４０３、１４０４および１４０５とを、時系列軸方向の範囲情報を持つように表示させることで、複数のイベントを同時表示する。
【００９５】
なお、イベントは、プログラムやプロセスの実行時に発生する処理の単位であり、関数やループや条件分岐等のプログラムの構成単位であってもよいし、メモリアクセス、命令実行、スレッド生成、同期処理等の特定の処理であってもよい。
【００９６】
ただし、表示装置である表示画面サイズもしくは表示ウインドウサイズには限りがあるため、一度に表示可能な属性軸の要素の数には限りがある。図１５および図１６に、表示装置である表示画面サイズもしくは表示ウインドウサイズに、図１４に例示するようなプログラムの実行状況が収まらなかった場合の表示例を示す。
【００９７】
図１５は、属性軸要素の表示サイズを固定した場合のプログラム実行状況表示領域１５０１の例を示す図である。図１５に示す例では、属性軸の実行時系列軸方向を全て表示できず、そのため、イベント“ＬｏｏｐＡ”および“ＬｏｏｐＢ”を同時に表示できない。この場合、スクロールバーなどを用いて表示範囲をシフトさせることも可能であるが、スクロールバーなどによる表示範囲のシフトでは、表示されていない属性軸の要素部を同時に見ることができないという課題が残る。
【００９８】
また、図１６は、属性軸の全要素を同時に表示する場合のプログラム実行状況表示領域１６０１を示す図である。図１６に示す例では、属性軸要素の表示サイズを表示画面サイズもしくは表示ウインドウサイズから決定し表示する。そのため、描画性能で表示できない表示は文字やイベントが潰れて表示されてしまい、その結果、イベントを可視できない場合が生じる。例えば、図１４におけるイベント“ｔａｓｋＡ”１４０６、１４０７および１４０８の実行期間では、“ｔａｓｋＡ”１４０６の実行期間より“ｔａｓｋＡ”１４０７の実行期間が大きく、“ｔａｓｋＡ”１４０７の実行期間より“ｔａｓｋＡ”１４０８の実行期間が大きいが、図１６に示す例では、“ｔａｓｋＡ”１４０６、１４０７および１４０８に対応するイベント“ｔａｓｋＡ”１６０６、１６０７および１６０８の実行期間が同じとして判別されてしまい、正しい判別が行えない可能が存在する。
【００９９】
そこで、実施形態２では、関連する１つ以上のイベントを領域として追加表示することで、大量のイベントの実行状況をユーザに容易に把握させることを可能にする。
【０１００】
実施形態２にかかるプログラム実行状況表示システムは、実施形態１で例示したプログラム実行状況表示システム４０１と同様の構成（図４参照）であってよい。また、実施形態２にかかるプログラム実行状況表示システムの動作は、実施形態１で例示した動作（図５参照）と同様であってよい。そこで、プログラム実行状況表示システムの構成および動作については、図４および図５を用いた説明を引用することで、ここでは詳細な説明を省略する。ただし、プログラム実行状況表示システムの各部の構成は、以下のようになる。
【０１０１】
（イベント情報取得部およびイベント情報格納部）
イベント情報取得部４２２は、たとえばイベントオブジェクト生成部４０７および領域情報生成部４１３からの要求に応じてイベント情報格納部４０２から少なくとも１つのイベント情報を取得する。イベント情報格納部４０２は、少なくとも１つのイベント情報を格納する記憶装置である。イベント情報とは、プログラム実行時に実行されたイベント情報であり、少なくともイベント固有情報とイベント時系列情報とイベント属性情報とを含む情報である。
【０１０２】
・イベント情報の一例
ここで、図１３に示すプログラム１３０１を実行した場合を用いてイベント情報について説明する。プログラム１３０１は、“ＬｏｏｐＡ”１３０２の期間に“ＬｏｏｐＢ”１３０３を３回実行し、“ＬｏｏｐＢ”１３０３の期間に“ｔａｓｋＡ”を３回実行するように構成されている。
【０１０３】
“ＬｏｏｐＡ”１３０２は、時刻“０”から時刻”１８００“まで実行される。この実行期間において、“ＬｏｏｐＢ“１３０３は３回実行される。各イタレーションの実行期間は、時刻“０“から時刻“６００“の期間と、時刻“６００”から時刻“１２００”の期間と、時刻“１２００”から時刻“１８００”の期間である。次に、“ＬｏｏｐＢ”の１回目のイタレーションでは“ｔａｓｋＡ”１３０４が３回実行され、その実行期間は、時刻“０”から時刻“１００”の期間と、時刻“１００”から時刻“３００”の期間と、時刻“３００”から時刻“６００”の期間である。また、２回目のイタレーションでは、“ｔａｓｋＡ”１３０４が３回実行され、その実行期間は、時刻“６００”から時刻“７００”の期間と、時刻“７００”から時刻“９００”の期間と、時刻“９００”から時刻“１２００”の期間である。また、３回目のイタレーションでは、“ｔａｓｋＡ”１３０４が３回実行され、その実行期間は、時刻“１２００”から時刻“１３００”の期間と、時刻“１３００”から時刻“１５００”の期間と、時刻“１５００”から時刻“１８００”の期間である。
【０１０４】
図１７に、実施形態２にかかるイベント情報を管理するイベント情報リストの一例を示す。図１７に示すように、イベント情報リスト１７０１は、イベント固有情報を実行順に割当てた固有ＩＤと、イベント時系列情報を同一プログラム構造のイベント実行順序情報と実行期間とからなる時系列情報と、属性情報をイベントが実行されたプロセッサコア名とプログラム構造情報と何回目のイタレーションであるかを表すイタレーション情報とを含む。
【０１０５】
図１７に示す例では、イベント情報リスト１７０１は、１３つのイベント情報を保持しており、１行が１つのイベント情報を表している。例えば、イベント情報１７０５は、イベント固有情報の固有ＩＤ、イベント時系列情報のイベント実行順序情報、時系列軸の始点実行順序情報、時系列軸の終点実行順序情報、イベント時系列情報のイベント実行期間情報、イベント属性情報のプログラム上の構造情報、イベント属性情報の“ＬｏｏｐＡ”のイタレーション情報、イベント属性情報の“ＬｏｏｐＢ”のイタレーション情報の順に、“３”、“２”、“２”、“２”、“２００”、“ｆｕｎｃｔｉｏｎ０：ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ：ＬｏｏｐＢ：ｉｔｅｒａｔｉｏｎ：ｔａｓｋＡ”、“１”、“２”という情報を持つ。イベント情報１７０５は、固有ＩＤが“２”であり、同一プログラム構造を持つイベントは２回目の実行順序であり、実行期間が“２００“に実行されるイベントを示している。また、イベント情報１７０５は、イベントがプログラム構造上“ｆｕｎｃｔｉｏｎ０”内の”ＬｏｏｐＡ”内のイテレーション内の“ＬｏｏｐＢ”内のイテレーション内の“ｔａｓｋＡ”を示し、“ＬｏｏｐＡ”の１回目のイテレーションで実行された“ＬｏｏｐＢ”の２回目のイテレーションで実行された“ｔａｓｋＡ”イベントであることを示している。
【０１０６】
また、イベント情報１７０３は、イベント固有情報の固有ＩＤ、イベント時系列情報のイベント実行順序情報、時系列軸の始点実行順序情報、時系列軸の終点実行順序情報、イベント属性情報のイベント実行期間情報、イベント属性情報のプログラム上の構造情報、イベント属性情報の“ＬｏｏｐＡ”のイタレーション情報、イベント属性情報の“ＬｏｏｐＢ”のイタレーション情報の順に、“１”、“１”、“１”、“３”、“６００”、“ｆｕｎｃｔｉｏｎ０：ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ：ＬｏｏｐＢ、“１”、“０”という情報を持つ。イベント情報１７０３は、固有ＩＤが“１”であり、同一プログラム構造を持つイベントが１回目の実行順序であり、実行期間が“６００“に実行されるイベントを示している。また、イベント情報１７０３は、イベントがプログラム構造上“ｆｕｎｃｔｉｏｎ０”内の”ＬｏｏｐＡ”内の１回目のイテレーション内“ＬｏｏｐＢ”イベントであることを示す。また、時系列軸の始点実行順序情報“１”と時系列軸の終点実行順序情報“３”とから、“ｔａｓｋＡ”の実行順序情報においては１回目、２回目、３回目の実行に対応することを示している。
【０１０７】
なお、イベント固有情報は、イベント情報格納部４０２に含まれる複数のイベント情報から１つのイベントを特定可能な情報であり、例えば、イベント固有名であってもよいし、イベント固有ＩＤであってもよい。
【０１０８】
また、イベント時系列情報は、時間的変化を表す情報であり、例えば、イベント実行期間情報であってもよいし、イベント実行順序情報であってもよい。
【０１０９】
イベント実行期間情報は、イベントの実行開始時刻と実行期間が定義される情報であり、例えば、少なくとも実行開始時刻と実行期間とを含む情報であってもよいし、少なくとも実行開始時刻と実行終了時刻とを含む情報であってもよいし、少なくとも実行期間と実行終了時刻とを含む情報であってもよいし、イベントの実行開始時刻であってもよいし、イベントの終了時刻であってもよい。
【０１１０】
実行開始時刻、実行終了時刻および実行期間は、期間情報であり、例えば、プログラム実行時におけるプロセッサ時刻であってもよいし、プロセッサ時刻に基づいて生成した期間情報であってもよい。
【０１１１】
イベント実行順序情報は、イベントの実行された順を表す情報であり、例えば、同一のプログラム構造情報を持つイベントの実行順の情報であってもよいし、プログラム全体で実行された順番情報であってもよいし、ループイテレーションを表すイベントの何番目のイテレーションであるかというイテレーション内順序情報等の繰り返し実行されるプログラム構造での順番情報を含む情報であってもよい。
【０１１２】
イベント属性情報は、イベントに関する情報であり、例えば、実行トレース情報であってもよいし、プログラムの静的情報であってもよいし、プログラムの実行環境情報であってもよい。
【０１１３】
実行トレース情報は、プログラム実行時に取得可能な実行時の状況を表す情報であり、例えば、イベントを実行したプロセッサコア情報であってもよいし、イベント実行した命令情報であってもよいし、イベント実行期間であってもよいし、イベントが実行したメモリアクセス情報であってもよいし、イベントが実行した関数コール回数であってもよいし、イベント内の変数の値であってもよいし、イベントがループイタレーションである場合において何回目のイタレーションであるかの情報であってもよいし、イベントが割り込み処理であるかの情報であってもよい。
【０１１４】
プログラムの静的情報は、ソースコードもしくはソースコード管理システムから得られる静的な情報であり、例えば、ソースコード上の位置情報であってもよいし、プログラム構造情報であってもよいし、ソースコードのコンパイル情報であってもよいし、ソースコードのバージョン情報であってもよいし、プログラムがカーネルプログラムであるかの情報であってもよいし、プログラムがユーザプログラムであるかの情報であってもよい。
【０１１５】
プログラムの実行環境情報は、プログラムを実行した際の環境の情報であり、例えば、プロセッサコア名であってもよいし、サーバ名であってもよいし、サーバの仕様情報であってもよい。
【０１１６】
（軸情報取得部および軸情報格納部）
軸情報取得部４２３は、たとえばイベントオブジェクト生成部４０７、軸オブジェクト生成部４０８および領域オブジェクト生成部４０９からの要求に応じて軸情報格納部４０３から軸情報を取得する。軸情報格納部４０３は、時系列軸情報と少なくとも１つの属性軸情報と少なくとも１つの表示属性特定情報を含む軸情報を格納する記憶装置である。
【０１１７】
ここで、軸情報とは、少なくとも時系列軸情報と、属性軸情報とを含む情報であり、さらに、表示属性特定情報を含んでいてもよい。時系列軸情報は、表示装置の画面の１間隔当たりが表す“ｔａｓｋＡ”のイベントの実行順序を示す情報である。属性軸情報とは、少なくとも軸の要素名と、その表示位置を表す座標を示す情報とを含む情報である。表示属性特定情報とは、表示対象となる属性を特定可能な情報である。
【０１１８】
・軸情報の一例
図１８に、軸情報１８０１の一例を示す。図１８に示すように、軸情報１８０１では、時系列軸情報１８０２が表示間隔情報と表示間隔が示す期間情報とからなり、属性軸情報１８０３〜１８０８が要素名情報と表示位置を表す座標と表示属性特定情報とからなる。図１８に示す例では、時系列軸情報１８０２は、表示間隔情報を“１”とし、表示間隔が示す実行順序情報を“１”とする。また、属性軸情報１８０３は、要素名情報を“０”とし、表示位置を表す座標を“０”とし、表示属性特定情報を“表示”とする。
【０１１９】
なお、時系列軸情報は、表示装置の画面の１間隔当たりが表す情報を示す情報であればよい。例えば、１表示間隔当たりの期間情報であってもよいし、１期間当たりの表示間隔情報であってもよいし、少なくとも表示間隔とその表示間隔が表す期間情報を含む情報であってもよいし、１表示間隔当たりの実行順序情報であってもよいし、１実行順序情報当たりの表示間隔情報であってもよいし、少なくとも表示間隔とその表示間隔が表す実行順序情報を含む情報であってもよい。また、時系列軸情報は、プログラム実行状況表示システムが事前に保持していてもよいし、ソフトウェア開発者が指定した情報であってもよいし、表示装置の画面サイズもしくはウインドウサイズと１画面で表示する実行期間情報に基づいて生成された情報であってもよい。
【０１２０】
属性軸情報は、属性軸の要素名とその表示位置を表す座標である。属性軸の要素名としては、イベント情報リスト１７０１の各イベント情報のイベント属性情報に対応する情報が存在する。また、属性軸の要素名のいずれかは、属性軸に対応するイベント情報のイベント属性情報と一致する。属性軸の要素名は、プログラム実行状況表示システムが事前に保持している情報であってもよいし、ソフトウェア開発者が指定した情報であってもよい。
【０１２１】
表示位置を表す座標は、表示装置の画面上の属性軸の要素名を表示する位置を表す情報である。表示位置を表す座標は、プログラム実行状況表示システムが事前に保持している情報であってもよいし、ソフトウェア開発者が指定した情報であってもよいし、表示装置の画面サイズもしくはウインドウサイズと１画面で表示する属性軸の要素数に基づいて生成された情報であってもよい。
【０１２２】
（軸オブジェクト生成部）
軸オブジェクト生成部４０８は、軸情報取得部４２３によって軸情報格納部４０３から取得された軸情報１８０１を入力し、入力した軸情報１８０１に基づいて、プログラム実行状況を描画する座標系を形成する時系列軸オブジェクトと属性軸オブジェクトとを生成する。本説明では、座標系を２次元平面とするが、これに限らず、３次元以上の空間座標系であってもよいし、同一平面に２つ以上の２次元座標系を重ね合わせた座標系であってもよい。軸オブジェクト生成部４０８は、まず、時系列軸情報１８０２に基づいて表示装置の表示間隔１当たり１実行順序情報を表す時系列軸オブジェクトを生成する。次に、属性軸情報から要素名をラベルとし、そのラベルの表示位置を表す座標に基づいて配置する属性軸オブジェクトを生成する。
【０１２３】
（イベントオブジェクト生成部）
イベントオブジェクト生成部４０７は、イベント情報格納部４０２に格納されるイベント情報リスト１７０１と、軸情報格納部４０３に格納される軸情報１８０１とを、それぞれイベント情報取得部４２２および軸情報取得部４２３を介して入力する。また、イベントオブジェクト生成部４０７は、イベント情報のイベント実行順序情報と軸情報の時系列軸情報とに基づいて時系列軸方向の表示位置を表す座標と表示サイズとを決定するとともに、イベント情報の属性情報と軸情報の属性軸情報とに基づいて属性軸方向の表示位置を表す座標を決定し、イベントを表すイベントオブジェクトを生成する。
【０１２４】
図１７に示すイベント情報１７０３のイベント固有ＩＤ“１”のイベントに着目して説明する。イベントオブジェクト生成部１０７は、まず、軸情報１８０１の時系列軸情報１８０２である“１表示間隔当たりの１実行順序情報を表す”の情報と、イベント１７０３の時系列軸の始点実行順序情報“１”とから、式“実行順序情報÷１表示間隔当たりが表す実行順序情報数”を用いて“１÷１＝１”を計算して表示位置を表す座標を決定する。次に、時系列軸情報１８０２である“１表示間隔当たりの１実行順序情報を表す”の情報と、イベント１７０３の時系列軸の始点実行順序情報“１”と、時系列軸の終点実行順序情報“３”とから、式“実行順序情報数÷１表示間隔当たりが表す実行順序情報数”を用いて“３÷１＝３”を計算して表示サイズを決定する。次に、イベント情報１７０３のイベント属性情報の実行期間情報“６００”と、“６００”に対応する軸情報１８０１の属性軸情報１８０４とから、属性軸方向の表示位置を表す座標を“６００”とする。次に、これらの時系列方向の表示位置を表す座標、属性軸方向の表示位置を表す座標の情報を含むイベントオブジェクトを生成する。
【０１２５】
（領域指定条件候補情報取得部および領域指定条件候補情報格納部）
領域指定条件候補情報取得部４２４は、たとえば領域指定条件選択部４１１およびヒントオブジェクト生成部４１４からの要求に応じて領域指定条件候補情報格納部４０４少なくとも１つの領域指定条件候補情報を取得する。領域指定条件候補情報格納部４０４は、少なくとも１つの領域指定条件候補情報を格納する記憶装置である。ここで、領域指定条件候補情報とは、少なくとも１つの領域指定条件情報とを含む情報である。
【０１２６】
領域指定条件情報は、１つの領域始点イベント特定情報と、１つの領域終点イベント特定情報とを含む情報である。領域始点イベント特定情報は、複数のイベント情報から属性情報に基づいて特定される領域始点イベントを特定する情報である。なお、領域始点イベントは、たとえば時系列軸方向で領域内の最小の実行開始期間情報を持つイベントである。領域終点イベント特定情報は、複数のイベント情報から属性情報に基づいて特定される領域終点イベントを特定する情報である。なお、領域終点イベントとは、時系列軸方向で領域内の最大の実行終了時間を持つイベントである。
【０１２７】
領域指定条件情報は、例えば、イベント実行期間情報に関する条件であってもよいし、イベント属性情報に関する条件であってもよい。また、領域指定条件情報は、プログラム実行状況表示システムが事前に保持している情報であってもよいし、ソフトウェア開発者の入力による情報であってもよいし、イベント情報に基づいて生成された情報であってもよい。
【０１２８】
・領域指定条件候補情報の一例
以上のような領域指定条件候補情報は、個別の領域指定条件情報がリストアップされた領域指定条件候補情報リストを用いて管理される。ここで、図１９に、領域指定条件候補情報リスト１９０１の一例を示す。図１９に示す例では、領域指定条件候補情報リスト１９０１は、１０つの領域指定条件情報１９０２〜１９１１を含んでいる。
【０１２９】
図１９において、たとえば領域指定条件情報１９１０は、イベント実行期間に関する条件であり、“実行期間が１０００未満のイベント”で１つ以上のイベントを特定する条件である。また、たとえば領域指定条件情報１９０２は、イベント属性情報に関する条件であり、“ＬｏｏｐＡに属するイベント”はプログラム構造上“ＬｏｏｐＡに属するイベント“である１つ以上のイベントを特定する条件である。
【０１３０】
イベントの時系列情報に関する条件は、イベントの実行期間が特定値と等しいもしくは大きいもしくは小さいイベントなどの条件から少なくとも１つのイベントを特定可能な条件であってもよいし、イベントの実行順序情報が特定値と等しいもしくは大きいもしくは小さいイベントなどの条件から少なくとも１つのイベントを特定可能な条件であってもよい。
【０１３１】
イベント実行期間情報に関する条件は、イベントの実行開始時刻もしくは実行終了時刻もしくは実行期間が特定値と等しいもしくは大きいもしくは小さいイベント等の条件から少なくとも１つのイベントを特定可能な条件である。また、イベント属性情報に関する条件は、イベント属性情報にある情報に対する条件から少なくとも１つのイベントを特定可能な条件である。
【０１３２】
このイベント属性情報に関する条件は、例えば、イベント属性情報がイベントを実行したプロセッサコア名である場合は、特定のプロセッサコア名であるか、もしくは、特定のプロセッサコア名でない等の条件であってもよい。また、イベント属性情報がイベント実行した命令情報である場合は、特定の命令であるか、もしくは、特定の命令でない否か等の条件であってもよい。さらに、イベント属性情報がメモリアクセス情報である場合は、特定アドレスにアクセスしたか等のアクセスアドレスに関する条件、特定回数以上アクセスしたか等のアクセス回数に関する条件、アクセス命令に関する条件、もしくは、これらの条件の組合せの条件であってもよい。さらにまた、イベント属性情報が関数コール回数である場合は、関数コール回数が特定値と等しい、特定値より大きい、特定値より小さい等の関数コールに関する条件であってもよい。さらにまた、イベント属性情報が変数の値の場合は、変数の値が特定値と等しい、特定値より大きい、特定値より小さい、特定の文字もしくは文字列を含む等の条件であってもよい。さらにまた、イベント属性情報がループイタレーションであって何回目のイタレーションであるかのイタレーション情報である場合は、イタレーション情報が特定値と等しい、特定値より大きい、特定値より小さい等の条件であってもよい。さらにまた、イベント属性情報が割り込みであるかの情報である場合は、割り込み処理であるか否かの条件であってもよい。さらにまた、イベント属性情報がソースコード上の位置情報である場合は、ソースコードの特定の位置に存在するか否か、特定のファイルに記述されているか否か等の条件であってもよい。さらにまた、イベント属性情報がプログラム構造情報である場合は、特定関数であるイベント、特定関数に属しているイベント、特定関数を呼び出すイベント、条件分岐に属しているイベント、特定ループに属しているイベント等の構造情報に関する条件であってもよい。さらにまた、イベント属性情報がソースコードのコンパイル情報である場合は、コンパイラのバージョンが特定値と等しい、コンパイラのバージョン特定値より大きい、コンパイラのバージョン特定値より小さい、コンパイラ時に特定のオプションが用いられたか否か等のコンパイル時及びコンパイラに関する条件であってもよい。さらにまた、イベント属性情報がソースコードのバージョン情報である場合は、バージョン情報が特定値と等しい、バージョン情報が特定値より大きい、バージョン情報が特定値より小さい等の条件であってもよい。さらにまた、イベント属性情報がカーネルプログラムであるか否かの情報である場合は、カーネルプログラムであるか否かの条件であってもよい。さらにまた、イベント属性情報がユーザプログラムであるか否かの情報である場合は、ユーザプログラムであるか否かの条件であってもよい。さらにまた、イベント属性情報がプロセッサコア名である場合は、プロセッサコア名が特定値と等しいか否かの条件であってもよい。さらにまた、イベント属性情報がサーバ名である場合は、サーバ名が特定値と等しいか否かの条件であってもよい。さらにまた、イベント属性情報がサーバの仕様情報である場合は、サーバのコア数が特定数と等しい、サーバのコア数が特定数より大きい、サーバのコア数が特定数より小さい、サーバのメモリ容量が特定値と等しい、サーバのメモリ容量が特定値より大きい、サーバのメモリ容量より小さい、サーバのディスク容量が特定値と等しい、サーバのディスク容量が特定値より大きい、サーバのディスク容量より小さい等のサーバの仕様に関する条件であってもよいし、これらの条件のうち１つ以上の条件の組合せであってもよい。
【０１３３】
（ヒントオブジェクト生成部）
ヒントオブジェクト生成部４１４は、領域指定条件候補情報取得部４２４によって領域指定条件候補情報格納部４０４から取得された領域指定条件候補情報を入力し、入力した領域指定条件候補情報に基づいてイベントを特定する領域指定条件情報を表すヒントオブジェクトを生成する。図２０に実施形態２におけるヒントオブジェクトの一例を示す。なお、図２０には、図１９に示す領域指定条件候補リスト１９０１から全ての領域指定条件情報１９０２〜１９１１を取得して生成されたヒントオブジェクト２００１の一例が示されている。図２０に示すように、ヒントオブジェクト２００１には、取得した領域指定条件情報１９０２〜１９１１をメニュー表示する項目２００２〜２０１１の他に、“ｔａｓｋＡの実行順序１〜５までのイベント”という新たな項目２０１２が含まれている。各項目２００２〜２０１２には、これらのうちの何れか１つ以上をユーザに選択させるためのチェックボックス（選択オブジェクトまたは選択ユーザインタフェース）２０１７が対応づけられている。
【０１３４】
（領域指定条件選択部）
領域指定条件選択部４１１は、領域指定条件候補情報取得部４２４によって領域指定条件候補情報格納部４０４から取得された領域指定条件候補情報リスト１９０１を入力し、入力した領域指定条件候補情報から少なくとも１つの領域指定条件情報を選択する。実施形態２では、ユーザインタフェースとして表示されたヒントオブジェクト２００１（図２０参照）に対するユーザの入力に基づいて、入力した１つ以上の領域指定条件情報のなかから目的の領域指定条件情報を選択する。たとえばユーザがヒントオブジェクト２００１に表示された項目２００２〜２０１２の中から“ＬｏｏｐＡに属するイベント”２００２、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”２００３の項目を選択する場合、ユーザは、これらに対応付けられたチェックボックス２０１７をそれぞれ選択する。
【０１３５】
ユーザによってチェックボックス２０１７にチェックが付された項目についての領域指定条件情報は、領域指定条件情報の選択情報（図５のステップＳ５０６参照）として領域指定条件選択部４１１に入力される。したがって、本例では、“ＬｏｏｐＡに属するイベント”２００２、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”２００３の項目に対する領域指定条件情報が選択情報として領域指定条件選択部４１１に入力される。
【０１３６】
なお、チェックボックス２０１７は、領域指定条件情報候補から領域指定条件情報を選択するための構成であればよく、図２０のヒントオブジェクト２００１に例示したような、領域指定条件情報候補としての項目２００２〜２０１２それぞれに選択オブジェクトとしてチェックボックス２０１７を対応づけて同時表示する構成に限られない。たとえば、ファイルを用いて領域指定条件情報を選択する構成など、種々変形することが可能である。
【０１３７】
（領域指定条件情報更新部）
領域指定条件更新部４１２は、領域指定条件選択部４１１で領域指定条件候補情報リスト１９０１から選択された少なくとも１つの領域指定条件情報に基づいて、領域指定条件情報格納部４０５に格納されている領域指定条件情報リスト２１０１を更新する。実施形態２では、“ＬｏｏｐＡに属するイベント”１９０２、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”１９０３の領域指定条件情報を用いて、領域指定条件情報格納部４０５に格納されている領域指定条件リスト２１０１が更新される。
【０１３８】
（領域指定条件情報取得部および領域指定条件情報格納部）
領域指定条件情報取得部４２５は、たとえば領域情報生成部４１３からの要求に応じて領域指定条件情報格納部４０５から少なくとも１つの領域指定条件情報を取得する。領域指定条件情報格納部４０５は、少なくとも１つの領域指定条件情報を格納する記憶装置である。図２１に、領域指定条件情報格納部４０５に格納される領域指定条件情報リスト２１０１の一例を示す。図２１に示すように、更新後の領域指定条件情報リスト２１０１は、“ＬｏｏｐＡに属するイベント”２１０２、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”２１０３の領域指定条件情報を含む。
【０１３９】
（領域情報生成部）
領域情報生成部４１３は、イベント情報取得部４２２によってイベント情報格納部４０２から取得されたイベント情報リスト１７０１を入力し、領域指定条件情報取得部４２５によって領域指定条件情報格納部４０５から取得された領域指定条件情報２１０１を入力し、領域名を決定し、領域指定条件情報に基づいて１つ以上のイベント情報を選択する。次に、選択されたイベント情報から領域を決定し、選択されたイベント情報に基づいて領域実行順序情報を決定して、領域情報を生成する。領域情報とは、時系列軸方向の領域を定義する情報であり、少なくとも領域を識別する情報と領域期間情報を含む情報である。領域を識別する情報とは、例えば、領域名であってもよいし、領域固有のＩＤであってもよい。
【０１４０】
・領域情報の一例
図２２に、領域情報の一例を示す。図２２に示すように、領域情報２２０１は、領域の項目２２０２〜２２０５毎に、領域名と、領域時系列情報とを含む。領域時系列情報は、少なくとも領域始点実行順序情報と、領域終点実行順序情報とを含む情報である。領域名は、プログラム実行状況表示システムに表示される領域のラベルとなる情報である。領域時系列情報は、時系列軸方向の領域を定義する情報である。
【０１４１】
例えば、領域情報２２０２は、領域名を“ＬｏｏｐＡに属するイベント”、領域始点実行順序情報を“１”、領域終点実行順序情報を“９”とする情報である。
【０１４２】
また、１つの領域指定条件情報によって指定される領域が複数存在する場合、複数の領域それぞれについて領域情報が生成される。たとえば図２１に示す領域指定条件情報リスト２１０１に、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”２１０３のような、複数の領域指定条件情報１９０４〜１９０６を包含する領域指定条件情報が含まれている場合、それぞれの領域指定条件情報に対して領域情報２２０３〜２２０５が生成される。
【０１４３】
なお、領域情報は、時系列軸方向の領域を定義する情報であり、少なくとも領域名と領域時系列情報を含む情報である。領域時系列情報は、時系列軸方向の領域を定義する情報であり、少なくとも領域始点実行順序情報と領域終点実行順序情報とを含む情報に限らず、少なくとも領域実行順序情報と領域の時系列軸の幅を表す領域期間情報とを含む情報であってもよい。
【０１４４】
ここで、選択された２つ以上のイベントが連続している範囲を１つの領域とする例を説明する。イベント情報のプログラム構造情報に基づいて、“ＬｏｏｐＡ”を構造に持つ１２つのイベント情報１７０３、１７０４、１７０５、１７０６、１７０７、１７０８、１７０９、１７１０、１７１１、１７１２、１７１３、１７１４が選択された場合、イベント情報１７０５のプログラム構造情報が“ｆｕｎｃｔｉｏｎ０：ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ：ＬｏｏｐＢ：ｉｔｅｒａｔｉｏｎ：ｔａｓｋＡ”であるため、イベント情報１７０５が示すイベントは“ＬｏｏｐＡ”に属していると判定できる。そこで、領域情報生成部１１３は、領域を決定する。本例では、連続するイベントが連続している範囲を１つの領域とするため、イベント情報１７０３、１７０４、１７０５、１７０６、１７０７、１７０８、１７０９、１７１０、１７１１、１７１２、１７１３、１７１４のイベントの範囲を１つの領域とする。
【０１４５】
次に、領域情報生成部４１３は、選択されたイベント情報のイベント実行順序情報に基づいて、領域始点実行順序情報を大小関係から決定する。選択されたイベント情報の実行順序情報は“１”、“２”、“３”、“４”、“５”、“６”、“７”、“８”、“９”であるため、最小実行順序である“１”が領域始点実行順序情報と決定される。
【０１４６】
次に、領域情報生成部４１３は、選択されたイベント情報のイベント実行順序情報に基づいて、領域始点実行順序情報を大小関係から決定する。選択されたイベント情報の実行順序情報は“１”、“２”、“３”、“４”、“５”、“６”、“７”、“８”、“９”であるため、最大実行順序である“９”を領域終点実行順序情報と決定する。
【０１４７】
次に、領域情報生成部４１３は、領域指定条件情報に基づいて、領域名“ＬｏｏｐＡに属するイベント”と決定する。その後、領域情報生成部４１３は、領域名を“ＬｏｏｐＡに属するイベント”とし、領域始点実行順序情報を“１”とし、領域終点実行順序情報を“９”とする領域情報２２０２を生成し、これを領域情報格納部４０６に格納する。
【０１４８】
また、領域情報生成部４１３は、領域指定条件情報２１０３に基づいて領域情報２２０３、２２０４、２２０５を生成し、これらを含む領域情報２２０１を領域情報格納部４０６に格納する例を説明する。
【０１４９】
領域指定条件２１０３の“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”の条件を満足するイベントは、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１イベント”と“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ２イベント”と“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ３イベント”である。例えば、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１に属するイベント”はイベント情報１７０３、１７０４、１７０５であるため、これらの範囲を１つの領域とする。
【０１５０】
次に、選択されたイベント情報のイベント実行順序情報に基づいて、領域始点実行順序情報を大小関係から決定する。選択されたイベント情報の実行順序情報は“１”、“２”、“３”であるため、最小実行順序である“１”を領域始点実行順序情報と決定する。
【０１５１】
次に、選択されたイベント情報のイベント実行順序情報に基づいて、領域始点実行順序情報を大小関係から決定する。選択されたイベント情報の実行順序情報は“１”、“２”、“３”であるため、最大実行順序である“３”を領域終点実行順序情報と決定する。
【０１５２】
次に、領域指定条件情報に基づいて、領域名“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１”と決定する。その後、領域名を“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１”、領域始点実行順序情報を“１”、領域終点実行順序情報を“３”とする領域情報２２０３を生成し、これを領域情報格納部４０６に格納する。同様にして、ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ２に属するイベント”と“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ３に属するイベント”に基づいて、領域情報２２０４、２２０５を生成し、これらを領域情報格納部４０６に格納する。
【０１５３】
なお、領域とは、少なくとも１つのイベントを含む範囲である。そのため、例えば、領域指定条件情報に基づいて選択された１つのイベントを１つの領域としてもよいし、領域指定条件情報に基づいて選択された２つ以上のイベントが連続している範囲を１つの領域としてもよいし、領域指定条件情報に基づいて選択された２つ以上のイベントを全て包含する範囲を１つの領域としてもよい。
【０１５４】
また、領域始点実行順序情報の決定方法では、領域始点実行順序情報は、条件情報に基づいて選択されたイベントのイベント情報に含まれるイベント実行順序情報に基づいて決定することができる。
【０１５５】
また、領域終点実行順序情報の決定方法では、領域終点実行順序情報を条件情報に基づいて選択されたイベントのイベント情報に含まれるイベント実行順序情報に基づいて決定することができる。
【０１５６】
また、領域指定条件情報に基づいて選択された１つのイベントを１つの領域とする場合の領域時系列情報の生成では、領域始点実行順序情報をイベントの実行順序情報とし、領域終点順序情報をイベントの実行順序情報としてもよい。
【０１５７】
さらに、領域名の生成では、領域指定条件情報に基づいて領域名が決定されてもよいし、選択されたイベント情報に基づいて決定されてもよいし、外部の入力情報に基づいて決定されてもよい。
【０１５８】
（領域情報取得部および領域情報格納部）
領域情報取得部４２６は、たとえば領域オブジェクト生成部４０９からの要求に応じて領域情報格納部４０６から少なくとも１つの領域情報を取得する。領域情報格納部４０６は、少なくとも１つの領域情報を格納する記憶装置である。
【０１５９】
（領域オブジェクト生成部）
領域オブジェクト生成部４０９は、軸情報取得部４２３によって軸情報格納部４０３から取得された軸情報を入力し、領域情報取得部４２６によって領域情報格納部４０６から取得された領域情報を入力し、軸情報の時系列軸情報と領域情報の領域時系列情報とに基づいて領域を表す領域オブジェクトの時系列軸方向の表示位置を表す始点座標および終点座標と表示範囲を決定する。また、領域オブジェクト生成部４０９は、領域情報格納部４０６に格納される全ての領域情報の領域時系列情報から少なくとも画面上に表示される表示位置を表す始点座標および終点座標を決定する。この際、時系列軸方向の重複領域を判定し、重複がある場合は重複する領域情報とは異なる属性軸方向の表示位置を表す座標を決定する。さらに、実施形態２では、領域オブジェクトを長方形オブジェクトとするため、重複がある場合は重複する領域情報とは異なる属性軸方向の表示範囲も決定する。その後、領域オブジェクト生成部４０９は、時系列軸方向の表示位置を表す始点座標および終点座標と、時系列軸方向の表示範囲と、属性軸方向の表示位置を表す座標と、属性軸方向の表示範囲と、領域情報の領域名とを含む領域オブジェクトを生成する。
【０１６０】
ここで、領域オブジェクト生成部４０９による領域オブジェクトの生成を、領域情報２２０２に着目して説明する。領域オブジェクト生成部４０９は、まず、軸情報１８０１の時系列軸情報１８０２である“１表示間隔当たりが表す実行順序情報数は１”の情報と、領域情報２２０２の領域の領域始点実行順序情報”１”とから、時系列方向の表示始点座標を式“（領域始点実行順序情報）÷（１表示間隔当たりが表す実行順序情報数）”を用いて“１÷１＝１”を計算し、時系列軸方向の表示サイズを式“（領域始点実行順序情報と領域終点実行順序情報が含む実行順序情報数）÷（１表示間隔当たりが表す実行順序情報数）”を用いて“９÷１＝９”と計算する。また、始点座標と表示サイズに基づいて終点座標を“１０”と決定する。また、領域オブジェクト生成部４０９は、画面サイズから属性軸方向の表示位置を表す座標を決定する。
【０１６１】
次に、領域オブジェクト生成部４０９は、領域情報格納部４０６に格納されている領域情報の領域期間情報から、領域情報２２０２と重複する領域情報２２０３、２２０４、２２０５を判定する。そして、領域情報２２０２を表す第１の領域オブジェクトの属性軸方向の表示範囲が領域情報２２０３、２２０４、２２０５を包含していることに基づいて、領域情報２２０２の属性軸方向の表示範囲を領域情報２２０３、２２０４、２２０５を表す第２の領域オブジェクトの属性軸方向の表示範囲より大きい値に決定する。
【０１６２】
次に、領域オブジェクト生成部４０９は、領域情報２２０２の領域名から領域名を“ＬｏｏｐＡに属するイベント”とする。その後、領域オブジェクト生成部４０９は、時系列軸方向の表示位置を表す始点座標および終点座標と時系列軸方向の表示範囲と属性軸方向の表示位置を表す座標と属性軸方向の表示範囲と領域名の情報とを含む領域オブジェクトを生成する。
【０１６３】
なお、領域オブジェクトは、時系列軸方向の領域を表すオブジェクトであればよく、例えば、線オブジェクトであってもよいし、長方形オブジェクトであってもよいし、その他領域を表すオブジェクトであれば如何様にも変形することができる。
【０１６４】
（表示部）
表示部４１０は、軸オブジェクトと、イベントオブジェクトと、ヒントオブジェクトと、領域オブジェクトとを表示する。以下では、図２３に示す領域指定条件情報選択後のプログラム実行状況表示領域２３０１の例を用いて説明する。なお、本説明では、画面上に表示可能な領域のみを表示し、スクロールバーにより表示領域を変更可能とする場合を例に挙げる。
【０１６５】
・軸オブジェクト表示
表示部４１０は、軸オブジェクト生成部４０８から軸オブジェクトを入力し、軸オブジェクトが持つ表示情報に基づいて軸オブジェクトを画面上に描画する。軸オブジェクトのうち、時系列軸オブジェクトは一定区間ごとに実行順序情報のラベルを表示し、属性軸オブジェクトは実行期間ラベルを表示する。図２３に示す例では、時系列軸は、たとえば“１”から“９”までを表示してもよい。表示部４１０は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。
【０１６６】
・イベントオブジェクト表示
表示部４１０は、イベントオブジェクト生成部４０７からイベントオブジェクトを入力し、イベントオブジェクトが持つ表示位置を表す時系列軸方向の始点座標および終点座標と属性軸方向の座標に基づいてイベントオブジェクトを画面上に描画する。図２３に示すように、本例では、イベント１７０４、１７０５、１７０６、１７０８、１７０９、１７１０、１７１２、１７１３、１７１４を表すイベントオブジェクトが、それぞれ順にイベントオブジェクト２３０６〜２３１４として表示される。表示部４１０は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズのイベントオブジェクトを表示してもよいし、表示可能なサイズのイベントオブジェクトにサイズを変換して表示してもよい。
【０１６７】
・ヒントオブジェクト表示
表示部４１０は、ヒントオブジェクト生成部４１４からヒントオブジェクトを入力し、ヒントオブジェクトが持つ表示位置を表す座標に基づいてヒントオブジェクト２３２０を画面上に描画する。図２３に示すように、ヒントオブジェクト２３２０は、イベントオブジェクトが表示されるプログラム実行情報表示領域２３０１とは別のウィンドウとして表示されてもよい。また、ヒントオブジェクト２３２０は、常時表示されていてもよいし、ユーザインタフェースからの指示により表示してもよい。なお、図２３に示す例では、“ＬｏｏｐＡに属するイベント”、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”が選択された場合が示されている。
【０１６８】
・領域オブジェクト表示
表示部４１０は、領域オブジェクト生成部４０９から領域オブジェクトを入力し、領域オブジェクトが持つ表示位置を表す時系列軸方向の始点座標および終点座標と属性軸方向の座標に基づいて領域オブジェクトを画面上に描画する。また、領域オブジェクトが持つ領域名に基づいて領域名を表示する。図２３におけるプログラム実行情報表示領域２３０１は、領域指定条件選択後の表示例である。ヒントオブジェクト２３２０では、“ＬｏｏｐＡに属するイベント”、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”が選択されているため、プログラム実行状況表示領域２３０１には、“ＬｏｏｐＡに属するイベント”を指し示す領域オブジェクト２３０２と、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”から特定される“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１に属するイベント”を指し示す領域オブジェクト２３０３、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ２に属するイベント”を指し示す領域オブジェクト２３０４、および、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ３に属するイベント”を指し示す領域オブジェクト２３０５が表示される。
【０１６９】
なお、領域オブジェクトは、領域の始点と終点を含む範囲を表現しているオブジェクトであれば、どのような表示オブジェクトとであってもよい。また、複数の領域オブジェクトの少なくとも一部分でも重なる場合、それぞれの領域オブジェクトを互いに識別可能な状態であれば、どのように表示されてもよい。
【０１７０】
以上のように、実施形態２によれば、大量のイベントが実行されるプログラムの実行状況をユーザに対して有効且つ網羅的に提示することが可能になる。その際、ヒントオブジェクトを併せて表示することで、ユーザに対して対話的かつ有効にプログラムの実行状況を提示することが可能になる。なお、その他の構成、動作および効果は、上述した実施形態と同様であってよい。
【０１７１】
実施形態３
つぎに、実施形態３にかかる情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システムについて、図面を参照して詳細に説明する。なお、実施形態３では、領域オブジェクトが属性軸方向の表示範囲（棒グラフ版）を持つ場合を例に挙げる。
【０１７２】
実施形態３では、実施形態２と同様に、図１３に示すプログラム１３０１を実行した際の実行状況を表示する場合を例に挙げる。そこで、実施形態３では、図２４に示すように、イベント”ｔａｓｋＡ”２４０２を表示するとともに、イベント“ＬｏｏｐＡ”２４０３とイベント“ＬｏｏｐＢ“２４０４、２４０５、２４０６とを時系列軸方向の範囲情報を持つように表示させることで、複数のイベントを同時表示する。
【０１７３】
ただし、表示装置である表示画面サイズもしくは表示ウインドウサイズには限りがあるため、一度に表示可能な属性軸の要素の数には限りがある。図２５および図２６に、表示装置である表示画面サイズもしくは表示ウインドウサイズに、図２４に示す表示例が収まらなかった場合の表示例を示す。
【０１７４】
図２５は、属性軸要素の表示サイズを固定した例である。図２５に示す例では、属性軸の実行時系列軸方向を全て表示できず、そのため、イベント“ＬｏｏｐＡ”、“ＬｏｏｐＢ”を同時に表示できない。この場合、スクロールバーなどを用いて表示範囲をシフトさせることも可能であるが、スクロールバーなどによる表示範囲のシフトでは、表示されていない属性軸の要素部を同時に見ることができないという課題が残る。
【０１７５】
また、図２６は、属性軸の全要素を同時に表示する場合を示す例である。図２６に示す例では、属性軸要素の表示サイズを表示画面サイズもしくは表示ウインドウサイズから決定し表示する。そのため、描画性能で表示できない表示は文字やイベントが潰れて表示されてしまい、その結果、イベントを可視できない場合が生じる。例えば、図２４におけるイベント“ｔａｓｋＡ”２４０６、２４０７および２４０８の実行期間では、“ｔａｓｋＡ”２４０６の実行期間より“ｔａｓｋＡ”２４０７の実行時間が大きく、“ｔａｓｋＡ”２４０７の実行期間より“ｔａｓｋＡ”２４０８の実行期間が大きいが、図２６に示す例では、“ｔａｓｋＡ”２４０６、２４０７および２４０８に対応するイベント“ｔａｓｋＡ”２６０６、２６０７および２６０８の実行期間が同じとして判別されてしまい、正しい判別が行えない可能性が存在する。
【０１７６】
そこで、実施形態３では、関連する１つ以上のイベントを領域として追加表示することで、大量のイベントの実行状況をユーザに容易に把握させることを可能にする。
【０１７７】
実施形態３にかかるプログラム実行状況表示システムは、実施形態１で例示したプログラム実行状況表示システム４０１と同様の構成（図４参照）であってよい。また、実施形態３にかかるプログラム実行状況表示システムの動作は、実施形態１で例示した動作（図５参照）と同様であってよい。そこで、プログラム実行状況表示システムの構成および動作については、図４および図５を用いた説明を引用することで、ここでは詳細な説明を省略する。ただし、プログラム実行状況表示システムの各部の構成は、以下のようになる。
【０１７８】
（イベント情報取得部およびイベント情報格納部）
イベント情報取得部４２２は、たとえばイベントオブジェクト生成部４０７および領域情報生成部４１３からの要求に応じてイベント情報格納部４０２から少なくとも１つのイベント情報を取得する。イベント情報格納部４０２は、実施形態２と同様に、少なくとも１つのイベント情報を格納する記憶装置である。イベント情報とは、プログラム実行時に実行されたイベント情報であり、少なくともイベント固有情報とイベント時系列情報とイベント属性情報とを含む情報である。
【０１７９】
・イベント情報の一例
ここで、実施形態３で例示するイベント情報について説明する。実施形態３では、実施形態２と同様、図１３に示すプログラム１３０１を実行した場合を用いる。
【０１８０】
“ＬｏｏｐＡ”１３０２は、時刻“０”から時刻“１８００“まで実行される。この実行期間において、“ＬｏｏｐＢ”１３０３は３回実行される。各イタレーションの実行期間は、時刻“０”から時刻“１０００”の期間と、時刻“１０００”から時刻“１３００”の期間と、時刻“１３００”から時刻“１８００”の期間である。次に、“ＬｏｏｐＢ”の１回目のイタレーションでは、“ｔａｓｋＡ”１３０４が３回実行され、その実行期間は、時刻“０”から時刻“５００”の期間と、時刻“５００”から時刻“７００”の期間と、時刻“７００”から時刻“１０００”の期間である。また、２回目のイタレーションでは、“ｔａｓｋＡ”１３０４が３回実行され、その実行期間は、時刻“１０００”から時刻“１１００”の期間と、時刻“１１００”から時刻“１２００”の期間と、時刻“１２００”から時刻“１３００”の期間である。また、３回目のイタレーションでは、“ｔａｓｋＡ”１３０４が３回実行され、その実行期間は、時刻“１３００”から時刻“１４００”の期間と、時刻“１４００”から時刻“１５００”の期間と、時刻“１５００”から時刻“１８００”の期間である。
【０１８１】
図２７に、実施形態３にかかるイベント情報を管理するイベント情報リストの一例を示す。図２７に示すように、イベント情報リスト２７０１は、イベント固有情報を実行順に割当てた固有ＩＤと、イベント時系列情報を同一プログラム構造のイベント実行順序情報と実行期間とを含む時系列情報と、属性情報をイベントが実行されたプロセッサコア名とプログラム構造情報と何回目のイタレーションであるかを表すイタレーション情報とを含む。
【０１８２】
図２７に示す例では、１３つのイベント情報を保持しており、１行が１つのイベント情報を表している。例えば、イベント情報２７０５は、イベント固有情報の固有ＩＤ、イベント時系列情報のイベント実行順序情報、時系列軸の始点実行順序情報、時系列軸の終点実行順序情報、イベント時系列情報のイベント実行期間情報、イベント属性情報のプログラム上の構造情報、イベント属性情報の“ＬｏｏｐＡ”のイタレーション情報、イベント属性情報の“ＬｏｏｐＢ”のイタレーション情報の順に、“３”、“２”、“２”、“２”、“２００”、“ｆｕｎｃｔｉｏｎ０：ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ：ＬｏｏｐＢ：ｉｔｅｒａｔｉｏｎ：ｔａｓｋＡ”、“１”、“２”という情報を持つ。イベント情報２４０５は、固有ＩＤが“２”であり、同一プログラム構造を持つイベントは２回目の実行順序であり、実行期間が“２００“に実行されるイベントを示している。また、イベント情報２７０５は、イベントがプログラム構造上“ｆｕｎｃｔｉｏｎ０”内の“ＬｏｏｐＡ”内のイテレーション内の“ＬｏｏｐＢ”内のイテレーション内の“ｔａｓｋＡ”を示し、“ＬｏｏｐＡ”の１回目のイテレーションで実行された“ＬｏｏｐＢ”の２回目のイテレーションで実行された“ｔａｓｋＡ”イベントであることを示している。
【０１８３】
また、イベント情報２７０３は、イベント固有情報の固有ＩＤ、イベント時系列情報のイベント実行順序情報、時系列軸の始点実行順序情報、時系列軸の終点実行順序情報、イベント属性情報のイベント実行期間情報、イベント属性情報のプログラム上の構造情報、イベント属性情報の“ＬｏｏｐＡ”のイタレーション情報、イベント属性情報の“ＬｏｏｐＢ”のイタレーション情報の順に、“１”、“１”、“１”、“３”、“１０００”、“ｆｕｎｃｔｉｏｎ０：ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ：ＬｏｏｐＢ、“１”、“０”という情報を持つ。イベント情報２７０３は、固有ＩＤが“１”であり、同一プログラム構造を持つイベントが１回目の実行順序であり、実行期間が“１０００“に実行されるイベントを示している。また、イベント情報２７０３は、イベントがプログラム構造上“ｆｕｎｃｔｉｏｎ０”内の“ＬｏｏｐＡ”内の１回目のイテレーション内“ＬｏｏｐＢ”イベントであることを示す。また、時系列軸の始点実行順序情報“１”と時系列軸の終点実行順序情報“３”とから、“ｔａｓｋＡ”の実行順序情報においては１回目、２回目、３回目の実行に対応することを示している。
【０１８４】
なお、イベント固有情報、イベント時系列情報、イベント実行期間情報、実行開始時刻、実行終了時刻、実行期間、イベント実行順序情報、イベント属性情報、実行トレース情報、プログラムの静的情報、プログラムの実行環境情報は、上述した実施形態２と同様であってよい。
【０１８５】
（軸情報取得部および軸情報格納部）
軸情報取得部４２３は、たとえばイベントオブジェクト生成部４０７、軸オブジェクト生成部４０８および領域オブジェクト生成部４０９からの要求に応じて軸情報格納部４０３から軸情報を取得する。軸情報格納部４０３は、時系列軸情報と、少なくとも１つのイベントオブジェクト属性軸情報と、少なくとも１つの領域オブジェクト属性軸情報と、少なくとも１つの表示属性特定情報とを含む軸情報を格納する記憶装置である。
【０１８６】
ここで、軸情報とは、少なくとも時系列軸情報と、イベントオブジェクト属性軸情報と、領域オブジェクト属性軸情報とを含む情報であり、さらに、表示属性特定情報を含んでもよい。時系列軸情報は、表示装置の画面の１間隔当たりが表す“ｔａｓｋＡ”のイベントの実行順序を示す情報である。イベントオブジェクト属性軸情報および領域オブジェクト属性軸情報は、それぞれ、軸の要素名と、その表示位置を表す座標を示す情報とを含む情報である。表示属性特定情報は、表示対象となる属性を特定可能な情報である。
【０１８７】
・軸情報の一例
図２８に、軸情報２８０１の一例を示す。図２８に示すように、軸情報２８０１では、時系列軸情報２８０２が表示間隔情報と表示間隔が示す期間情報とからなり、イベントオブジェクト属性軸情報２８０３〜２８０８が要素名情報と表示位置を表す座標と表示属性特定情報とからなり、領域オブジェクト属性軸情報２８０９〜２８１１が要素名情報と表示位置を表す座標と表示属性特定情報からなる。図２８に示す例では、時系列軸情報２８０２は、表示間隔情報を“１”とし、表示間隔が示す実行順序情報を“１”とする。また、イベントオブジェクト属性軸情報２８０３は、要素名情報を“０”とし、表示位置を表す座標を“０”とし、表示属性特定情報を“表示”とする。さらに、領域オブジェクト属性軸情報２８０９は、要素名情報を領域実行期間“０”とし、表示位置を表す座標を“０”とし、表示属性特定情報を“表示”とする。
【０１８８】
なお、イベントオブジェクト属性軸情報は、属性軸の要素名とその表示位置を表す座標である。属性軸の要素名としては、イベント情報リスト２７０１の各イベント情報のイベント属性情報に対応する情報が存在する。また、属性軸の要素名のいずれかは、属性軸に対応するイベント情報のイベント属性情報と一致する。属性軸の要素名は、プログラム実行状況表示システムが事前に保持している情報であってもよいし、ソフトウェア開発者が指定した情報であってもよい。
【０１８９】
また、領域オブジェクト属性軸情報は、属性軸の要素名とその表示位置を表す座標である。属性軸の要素名としては、イベント情報リスト２７０１の各イベント情報のイベント属性情報に対応する情報が存在する。また、属性軸の要素名のいずれかは、属性軸に対応するイベント情報のイベント属性情報と一致する。属性軸の要素名は、プログラム実行状況表示システムが事前に保持していてもよいし、ソフトウェア開発者が指定した情報であってもよい。
【０１９０】
その他、時系列軸情報および表示位置を表す座標は、上述した実施形態２と同様であってよい。ただし、イベントオブジェクト属性軸情報は領域オブジェクト属性軸情報と同じであってもよい。
【０１９１】
（軸オブジェクト生成部）
軸オブジェクト生成部４０８は、軸情報取得部４２３によって軸情報格納部４０３から取得された軸情報２５０１を入力し、入力した軸情報２８０１に基づいて、プログラム実行状況を描画する座標系を形成する時系列軸オブジェクトと属性軸オブジェクトとを生成する。本説明では、座標系を２次元平面とするが、これに限らず、３次元以上の空間座標系であってもよいし、同一平面に２つ以上の２次元座標系を重ね合わせた座標系であってもよい。軸オブジェクト生成部４０８は、まず、時系列軸情報２８０２に基づいて表示装置の表示間隔１当たり１実行順序情報を表す時系列軸オブジェクトを生成する。次に、イベントオブジェクト属性軸情報および領域オブジェクト属性軸情報から要素名をラベルとし、そのラベルを表示位置を表す座標に基づいて配置する属性軸オブジェクトを生成する。ただし、属性軸オブジェクトは、イベントオブジェクトと領域オブジェクトとで共通でなくてもよい。たとえば、イベントオブジェクト属性軸要素情報に基づいてイベントオブジェクト用に属性軸オブジェクトが生成され、領域オブジェクト属性軸要素情報に基づいて領域オブジェクト用に属性軸オブジェクトが生成されてもよい。
【０１９２】
（イベントオブジェクト生成部）
イベントオブジェクト生成部４０７は、実施形態２と同様に、イベント情報格納部４０２に格納されるイベント情報リスト２７０１と、軸情報格納部４０３に格納される軸情報２８０１とを、それぞれイベント情報取得部４２２および軸情報取得部４２３を介して入力する。また、イベントオブジェクト生成部４０７は、イベント情報のイベント実行順序情報と軸情報の時系列軸情報に基づいて時系列軸方向の表示位置を表す始点座標および終点座標と表示サイズとを決定し、イベント情報の属性情報と軸情報のイベントオブジェクト属性軸情報または領域オブジェクト属性軸情報とに基づいて属性軸方向の表示位置を表す座標を決定し、イベントまたは領域を表すイベントオブジェクトまたは領域オブジェクトを生成する。
【０１９３】
図２７に示すイベント情報２７０３のイベント固有ＩＤ“１”のイベントに着目して説明する。イベントオブジェクト生成部４０７は、まず、軸情報２８０１の時系列軸情報２８０２である“１表示間隔当たりの１実行順序情報を表す”の情報と、イベント２７０３の時系列軸の始点実行順序情報“１”とから、式“実行順序情報÷１表示間隔当たりが表す実行順序情報数”を用いて“１÷１＝１”を計算して表示位置を表す始点座標を決定する。次に、時系列軸情報２８０２である“１表示間隔当たりの１実行順序情報を表す”の情報と、イベント２７０３の時系列軸の始点実行順序情報“１”と時系列軸の終点実行順序情報“３”とから式“実行順序情報数÷１表示間隔当たりが表す実行順序情報数”を用いて“３÷１＝３”を計算して表示サイズを決定する。さらに、始点座標と表示サイズから表示位置を表す終点座標を“４”と決定する。次に、イベント情報２７０３のイベント属性情報の実行期間情報“１０００”と、“１０００”に対応する軸情報２８０１のイベントオブジェクト属性軸情報２８０４と、から属性軸方向の表示位置を表す座標を“１０００”とする。次に、これらの時系列方向の表示位置を表す始点座標および終点座標、属性軸方向の表示位置を表す座標の情報を含むイベントオブジェクトを生成する。これは、領域オブジェクトについても同様である。
【０１９４】
（領域指定条件候補情報取得部および領域指定条件候補情報格納部）
領域指定条件候補情報取得部４２４は、たとえば領域指定条件選択部４１１およびヒントオブジェクト生成部４１４からの要求に応じて領域指定条件候補情報格納部４０４少なくとも１つの領域指定条件候補情報を取得する。領域指定条件候補情報格納部４０４は、実施形態２と同様に、少なくとも１つの領域指定条件候補情報を格納する記憶装置である。ここで、領域指定条件候補情報とは、少なくとも１つの領域指定条件情報を含む情報である。
【０１９５】
領域指定条件情報は、実施形態２と同様に、１つの領域始点イベント特定情報と、１つの領域終点イベント特定情報とを含む情報である。領域始点イベント特定情報は、複数のイベント情報から属性情報に基づいて特定される領域始点イベントを特定する情報である。なお、領域始点イベントは、たとえば時系列軸方向で領域内の最小の実行開始期間情報を持つイベントである。領域終点イベント特定情報は、複数のイベント情報から属性情報に基づいて特定される領域終点イベントを特定する情報である。なお、領域終点イベントとは、時系列軸方向で領域内の最大の実行終了時間を持つイベントである。
【０１９６】
領域指定条件情報は、プログラム実行状況表示システムが事前に保持している情報であってもよいし、ソフトウェア開発者の入力による情報であってもよいし、イベント情報に基づいて生成してもよい。
【０１９７】
また、実施形態３では、実施形態２において図１９を用いて説明した領域指定条件候補情報リスト１９０１が用いられる。その際、イベントの時系列情報に関する条件およびイベント実行期間情報に関する条件についても、実施形態２で例示した条件と同様であってよい。
【０１９８】
（ヒントオブジェクト生成部）
ヒントオブジェクト生成部４１４は、実施形態２と同様に、領域指定条件候補情報取得部４２４によって領域指定条件候補情報格納部４０４から取得された領域指定条件候補情報を入力し、入力した領域指定条件候補情報に基づいてイベントを特定する領域指定条件情報を表すヒントオブジェクトを生成する。生成されるヒントオブジェクトの一例は、図２０に示したヒントオブジェクト２００１と同様であってよい。
【０１９９】
（領域指定条件選択部）
領域指定条件選択部４１１は、実施形態２と同様に、領域指定条件候補情報取得部４２４によって領域指定条件候補情報格納部４０４から取得された領域指定条件候補情報リスト１９０１を入力し、入力した領域指定条件候補情報から少なくとも１つの領域指定条件情報を選択する。そこで、実施形態３においても、“ＬｏｏｐＡに属するイベント”２００２、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”２００３の項目に対する領域指定条件情報がユーザによって選択された場合を例に挙げる。
【０２００】
（領域指定条件情報更新部）
領域指定条件更新部４１２は、実施形態２と同様に、領域指定条件選択部４１１で領域指定条件候補情報リスト１９０１から選択された少なくとも１つの領域指定条件情報に基づいて、領域指定条件情報格納部４０５に格納されている領域指定条件情報リスト２９０１を更新する。したがって、実施形態３では、実施形態２と同様に、“ＬｏｏｐＡに属するイベント”１９０２、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”１９０３の領域指定条件情報を用いて、領域指定条件情報格納部４０５に格納されている領域指定条件リスト２９０１が更新される。
【０２０１】
（領域指定条件情報取得部および領域指定条件情報格納部）
領域指定条件情報取得部４２５は、たとえば領域情報生成部４１３からの要求に応じて領域指定条件情報格納部４０５から少なくとも１つの領域指定条件情報を取得する。領域指定条件情報格納部４０５は、少なくとも１つの領域指定条件情報を格納する記憶装置である。図２９に、領域指定条件情報格納部４０５に格納される領域指定条件リスト２９０１の一例を示す。図２９に示すように、更新後の領域指定条件情報リスト２９０１は、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１に属するイベント”２９０２と、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ２に属するイベント”２９０３と、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ３に属するイベント”２９０４との領域指定条件情報を含む。
【０２０２】
（領域情報生成部）
領域情報生成部４１３は、実施形態２と同様に、イベント情報取得部４２２によってイベント情報格納部４０２から取得されたイベント情報リスト２７０１を入力し、領域指定条件情報取得部４２５によって領域指定条件情報格納部４０５から取得された領域指定条件情報２９０１を入力し、領域名を決定し、領域指定条件情報に基づいて１つ以上のイベント情報を選択する。次に、選択されたイベント情報から領域を決定し、選択されたイベント情報に基づいて領域実行順序情報を決定して、領域情報を生成する。領域情報とは、時系列軸方向の領域を定義する情報であり、少なくとも領域を識別する情報と領域期間情報とを含む情報である。領域を識別する情報とは、例えば、領域名であってもよいし、領域固有のＩＤであってもよい。
【０２０３】
・領域情報の一例
図３０に、領域情報の一例を示す。図３０に示すように、領域情報３００１は、領域の項目３００２〜３００４毎に、領域名と、領域時系列情報と、領域属性情報とを含む。領域時系列情報は、領域始点実行順序情報と、領域終点実行順序情報とからなる情報である。領域名は、プログラム実行状況表示システムに表示される領域のラベルとなる情報である。領域時系列情報は、時系列軸方向の領域を定義する情報である。領域属性情報は、領域に属するイベントの属性情報に基づいた情報である。
【０２０４】
例えば、領域情報３００２は、領域名を“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１に属するイベント”とし、領域始点実行順序情報を“１”とし、領域終点実行順序情報を“３”とする情報である。したがって、領域情報３００２の領域属性情報は、領域に属する実行期間“１０００”である。この領域属性情報は、領域情報３００２に該当する領域に属するイベント２７０４、２７０５、２７０６の実行期間“５００”、“２００”、“３００”の総和である。
【０２０５】
なお、領域時系列情報は、実施形態２と同様に、時系列軸方向の領域を定義する情報であり、少なくとも領域始点実行順序情報と領域終点実行順序情報とを含む情報であってもよいし、少なくとも領域実行順序情報と領域の時系列軸の幅を表す領域期間情報とを含む情報であってもよい。
【０２０６】
また、領域属性情報は、領域に属するイベントの属性情報の集合情報であり、例えば、実行期間の総和であってもよいし、領域に属するイベントを実行した１つ以上報プロセッサコア情報であってもよいし、領域に属するイベントで実行された命令情報であってもよいし、領域に属するイベントで実行されたメモリアクセス情報であってもよいし、領域に属するイベントで実行された関数コール回数総和であってもよいし、領域に属するイベント内の変数の値であってもよいし、領域に属するイベントがループイタレーションである場合において何回目のイタレーションであるかの情報であってもよいし、領域に属するイベントのソースコード上の位置情報であってもよいし、領域に属するイベントのプログラム構造情報であってもよいし、領域に属するイベントのソースコードのコンパイル情報であってもよいし、領域に属するイベントのソースコードのバージョン情報であってもよいし、領域に属するイベントのプログラムがカーネルプログラムであるかの情報であってもよいし、領域に属するイベントのプログラムがユーザプログラムであるかの情報であってもよい。
【０２０７】
プログラムの実行環境情報は、プログラムを実行した際の環境の情報であり、例えば、プロセッサコア名であってもよいし、サーバ名であってもよいし、サーバの仕様情報であってもよい。
【０２０８】
ここで、実施形態２と同様、選択された２つ以上のイベントが連続している範囲を１つの領域とする例を説明する。イベント情報のプログラム構造情報とイタレーション回数を表す情報とに基づいて、“ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ”を構造に持ち、かつ、ＬｏｏｐＡのイタレーション回数が“１”のイベント情報２７０４、２７０５、２７０６が選択された場合、イベント情報２７０５のプログラム構造情報が“ｆｕｎｃｔｉｏｎ０：ＬｏｏｐＡ：ｉｔｅｒａｔｉｏｎ：ＬｏｏｐＢ：ｉｔｅｒａｔｉｏｎ：ｔａｓｋＡ”であり、かつ、ＬｏｏｐＡに対するイタレーション回数が“１”であるため、イベント情報２７０５が示すイベントは“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１に属するイベント”と判定できる。そこで、領域情報生成部４１３は、領域を決定する。本例では、連続するイベントが連続している範囲を１つの領域とするため、イベント情報２７０４、２７０５、２７０６のイベントの範囲を１つの領域とする。
【０２０９】
次に、領域情報生成部４１３は、選択されたイベント情報のイベント実行順序情報に基づいて、領域始点実行順序情報を大小関係から決定する。選択されたイベント情報の実行順序情報は、“１”、“２”、“３”であるため、最小実行順序である“１”が領域始点実行順序情報と決定される。
【０２１０】
次に、領域情報生成部４１３は、選択されたイベント情報のイベント実行順序情報に基づいて、領域始点実行順序情報を大小関係から決定する。選択されたイベント情報の実行順序情報は、“１”、“２”、“３”であるため、最大実行順序である“３”が領域終点実行順序情報と決定される。
【０２１１】
次に、領域情報生成部４１３は、領域指定条件情報に基づいて、領域名“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１にするイベント”と決定する。その後、領域情報生成部４１３は、領域名を“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１属するイベント”とし、領域始点実行順序情報を“１”とし、領域終点実行順序情報を“３”とし、領域に属するイベントの実行期間の総和を表す領域属性情報と“１０００”とする領域情報３００２を生成し、これを領域情報格納部４０６に格納する。
【０２１２】
なお、領域、領域始点実行順序情報の決定方法、領域終点実行順序情報の決定方法、領域指定条件情報に基づいて選択された１つのイベントを１つの領域とする場合の領域時系列情報の生成、および、領域名の生成は、上述した実施形態２と同様であってよい。
【０２１３】
（領域情報取得部および領域情報格納部）
領域情報取得部４２６は、たとえば領域オブジェクト生成部４０９からの要求に応じて領域情報格納部４０６から少なくとも１つの領域情報を取得する。領域情報格納部４０６は、実施形態２と同様に、少なくとも１つの領域情報を格納する記憶装置である。
【０２１４】
（領域オブジェクト生成部）
領域オブジェクト生成部４０９は、実施形態２と同様に、軸情報取得部４２３によって軸情報格納部４０３から取得された軸情報を入力し、領域情報取得部４２６によって領域情報格納部４０６から取得された領域情報を入力し、軸情報の時系列軸情報と領域情報の領域時系列情報に基づいて領域を表す領域オブジェクトの時系列軸方向の表示位置を表す始点座標および終点座標と表示範囲を決定する。また、領域オブジェクト生成部４０９は、領域情報格納部４０６に格納される全ての領域情報の領域時系列情報から少なくとも画面上に表示される表示位置を表す始点座標と終点座標を決定する。この際、時系列軸方向の重複領域を判定し、重複がある場合は重複する領域情報とは異なる属性軸方向の表示位置を表す座標を決定する。さらに、実施形態３では、領域オブジェクトを長方形オブジェクトとするため、重複がある場合は重複する領域情報とは異なる属性軸方向の表示範囲も決定する。その後、領域オブジェクト生成部４０９は、時系列軸方向の表示位置を表す始点座標および終点座標と時系列軸方向の表示範囲と、属性軸方向の表示位置を表す座標と、属性軸方向の表示範囲と、領域情報の領域名とを含む領域オブジェクトを生成する。
【０２１５】
ここで、領域オブジェクト生成部４０９による領域オブジェクトの生成を、領域情報３００２に着目して説明する。領域オブジェクト生成部４０９は、まず、軸情報２８０１の時系列軸情報２８０２である“１表示間隔当たりが表す実行順序情報数は１”の情報と、領域情報２８０２の領域の領域始点実行順序情報“１”とから、時系列方向の表示位置を表す始点座標を式“（領域始点実行順序情報）÷（１表示間隔当たりが表す実行順序情報数）”を用いて“１÷１＝１”を計算し、時系列軸方向の表示サイズを式“（領域始点実行順序情報と領域終点実行順序情報が含む実行順序情報数）÷（１表示間隔当たりが表す実行順序情報数）”を用いて“３÷１＝３”を計算する。始点座標と表示サイズに基づいて終点座標を“４”と決定する。また、領域オブジェクト生成部１０９は、画面サイズから属性軸方向の表示位置を表す座標を決定する。
【０２１６】
つぎに、領域オブジェクト生成部４０９は、領域情報３００２の領域の実行期間を表す領域属性情報と、軸情報２８０１の領域オブジェクト属性軸要素情報２８０９、２８１０、２８１１とに基づいて、属性軸方向の表示範囲を決定する。例えば、少なくとも属性軸方向の表示範囲が属性軸方向の表示始点情報と属性軸方向の表示終点情報とを含むため、属性軸方向の表示始点情報は、領域の実行期間“０”を表す領域オブジェクト属性軸要素情報２８０９から“０”と決定される。また、属性軸方向の表示終点情報は、領域の実行期間を表す領域属性情報“１０００”と、“１０００”に対応する領域オブジェクト属性軸要素情報２８１１とから、属性軸方向の表示終点情報“６００”と決定される。次に、領域情報３００２の領域名から領域名を”ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１に属するイベント”とする。その後、領域オブジェクト生成部１０９は、時系列軸方向の表示位置を表す始点座標および終点座標と時系列軸方向の表示範囲と属性軸方向の表示位置を表す座標と属性軸方向の表示範囲と領域名の情報を含む領域オブジェクトを生成する。
【０２１７】
なお、領域オブジェクトは、実施形態２と同様に、時系列軸方向の領域を表すオブジェクトであればよく、例えば、線オブジェクトであってもよいし、長方形オブジェクトであってもよいし、その他領域を表すオブジェクトであれば如何様にも変形することができる。
【０２１８】
（表示部）
表示部４１０は、実施形態２と同様に、軸オブジェクトと、イベントオブジェクトと、ヒントオブジェクトと、領域オブジェクトとを表示する。以下では、図３１に示す領域指定条件情報選択後のプログラム実行状況表示領域３１０１の例を用いて説明する。なお、本説明では、画面上に表示可能な領域のみを表示し、スクロールバーにより表示領域を変更可能とする場合を例に挙げる。
【０２１９】
・軸オブジェクト表示
表示部４１０は、軸オブジェクト生成部４０８から軸オブジェクトを入力し、軸オブジェクトが持つ表示情報に基づいて軸オブジェクトを画面上に描画する。軸オブジェクトのうち、時系列軸オブジェクトは一定区間ごとに実行順序情報のラベルを表示し、属性軸オブジェクトは実行期間ラベルを表示する。時系列軸は、たとえば“１”から“９”までを表示してもよい。表示部４１０は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズの軸オブジェクトを表示してもよいし、表示可能なサイズの軸オブジェクトにサイズを変換して表示してもよい。
【０２２０】
・イベントオブジェクト表示
表示部４１０は、イベントオブジェクト生成部４０７からイベントオブジェクトを入力し、イベントオブジェクトが持つ表示位置を表す始点座標および終点座標に基づいてイベントオブジェクトを画面上に描画する。図３１に示すように、実施形態３では、イベント２７０４、２７０５、２７０６、２７０８、２７０９、２７１０、２７１２、２７１３、２７１４を表すイベントオブジェクトをそれぞれ順にイベントオブジェクト２５０６〜２５１４として表示される。表示部１１０は、画面サイズもしくはウインドウサイズ等の表示サイズを入力とし、表示可能なサイズのイベントオブジェクトを表示してもよいし、表示可能なサイズのイベントオブジェクトにサイズを変換して表示してもよい。
【０２２１】
・ヒントオブジェクト表示
表示部４１０は、ヒントオブジェクト生成部４１４からヒントオブジェクトを入力し、ヒントオブジェクトが持つ表示位置を表す座標に基づいてヒントオブジェクト３１２０を画面上に描画する。図３１に示すように、ヒントオブジェクト３１２０は、イベントオブジェクトが表示されるプログラム実行情報表示領域３１０１とは別のウィンドウとして表示されてもよい。また、ヒントオブジェクト３１２０は、常時表示されていてもよいし、ユーザインタフェースからの指示により表示してもよい。
【０２２２】
・領域オブジェクト表示
表示部４１０は、領域オブジェクト生成部４０９から領域オブジェクトを入力し、領域オブジェクトが持つ表示位置を表す始点座標および終点座標に基づいて領域オブジェクト３１０３〜３１０５を画面上に描画する。また、領域オブジェクト３１０３〜３１０５が持つ領域名に基づいて領域名を表示する。図３１におけるプログラム実行情報表示領域３１０１は、領域指定条件選択後の表示例である。ヒントオブジェクト３１２０では、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎイベント”が選択されているため、プログラム実行状況表示領域３１０１には、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ１に属するイベント”を指し示す領域オブジェクト３１０３、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ２に属するイベント”を指し示す領域オブジェクト３１０４、および、“ＬｏｏｐＡのｉｔｅｒａｔｉｏｎ３に属するイベント”を指し示す領域オブジェクト３１０５が表示される。
【０２２３】
なお、実施形態２と同様に、領域オブジェクトは、領域の始点と終点を含む範囲を表現しているオブジェクトであれば、どのような表示オブジェクトとであってもよい。また、複数の領域オブジェクトの少なくとも一部分でも重なる場合、それぞれの領域オブジェクトを互いに識別可能な状態であれば、どのように表示されてもよい。
【０２２４】
以上のように、実施形態３によれば、大量のイベントが実行されるプログラムの実行状況をユーザに対して有効且つ網羅的に提示することが可能になる。その際、ヒントオブジェクトを併せて表示することで、ユーザに対して対話的かつ有効にプログラムの実行状況を提示することが可能になる。なお、その他の構成、動作および効果は、上述した実施形態と同様であってよい。
【０２２５】
実施形態４
つぎに、実施形態４にかかる情報処理システム、プログラム情報生成方法、プログラム情報生成プログラム、および、プログラム情報表示システムについて、図面を参照して詳細に説明する。なお、実施形態４では、領域オブジェクトが属性軸方向の表示範囲（プロット版）を持つ場合を例に挙げる。
【０２２６】
実施形態４では、実施形態３と同様に、図１３に示すプログラム１３０１を実行した際に、図２４に示すように、イベント”ｔａｓｋＡ”２４０２を表示するとともに、イベント“ＬｏｏｐＡ”２４０３とイベント“ＬｏｏｐＢ“２４０４、２４０５、２４０６とを時系列軸方向の範囲情報を持つように表示させることで、複数のイベントを同時表示する場合を例に挙げる。
【０２２７】
実施形態４にかかるプログラム実行状況表示システムは、実施形態１で例示したプログラム実行状況表示システム４０１と同様の構成（図４参照）であってよい。また、実施形態４にかかるプログラム実行状況表示システムの動作は、実施形態１で例示した動作（図５参照）と同様であってよい。そこで、プログラム実行状況表示システムの構成および動作については、図４および図５を用いた説明を引用することで、ここでは詳細な説明を省略する。ただし、プログラム実行状況表示システムの各部の構成は、以下のようになる。
【０２２８】
実施形態４において、イベント情報取得部４２２と、軸情報取得部４２３と、領域指定条件候補情報取得部４２４と、領域指定条件情報取得部４２５と、領域情報取得部４２６と、イベント情報格納部４０２と、軸情報格納部４０３と、軸オブジェクト生成部４０８と、イベントオブジェクト生成部４０７と、領域指定条件候補情報格納部４０４と、ヒントオブジェクト生成部４１４と、領域指定条件選択部４１１と、領域指定条件更新部４１２と、領域指定条件情報格納部４０５と、領域情報生成部４１３と、領域情報格納部４０６と、領域オブジェクト生成部４０９と、表示部４１０と、入力部４１５とは、実施形態３と同様であってよい。
【０２２９】
また、実施形態４において、プログラム１３０１の実行例（図１３）と、イベント情報と、イベント固有情報と、イベント時系列情報と、イベント実行期間情報と、実行開始時刻、実行終了時刻および実行期間と、イベント実行順序情報と、イベント属性情報と、実行トレース情報と、プログラムの静的情報と、プログラムの実行環境情報と、軸情報と、時系列軸情報と、属性軸情報と、表示属性特定情報と、イベントオブジェクト属性軸情報と、領域オブジェクト属性軸情報およびその属性軸の要素名と、表示位置を表す座標と、領域オブジェクト属性軸情報およびその属性軸の要素名と、属性軸オブジェクトと、領域指定条件候補情報と、領域指定条件情報と、イベントの時系列情報に関する条件と、イベント実行期間情報に関する条件と、イベント属性情報に関する条件と、ユーザインタフェース（ヒントオブジェクト）と、領域情報と、領域時系列情報と、領域名と、領域時系列情報と、領域属性情報と、プログラムの実行環境情報と、領域と、領域始点実行順序情報の決定方法と、領域終点実行順序情報の決定方法と、領域指定条件情報に基づいて選択された１つのイベントを１つの領域とする場合の領域時系列情報の生成と、領域名の生成と、領域オブジェクトの属性軸方向の表示サイズとは、実施形態３で例示したものと同様であってよい。
【０２３０】
ただし、実施形態４では、領域オブジェクト生成部４０９が生成する領域オブジェクトが、長方形オブジェクト（図３１参照）から楕円オブジェクトに変更されている。したがって、表示部４１０が表示するプログラム実行状況表示領域は、図３２に示すようになる。
【０２３１】
・軸オブジェクト、イベントオブジェクト、ヒントオブジェクト表示
図３２に示すように、実施形態４にかかるプログラム実行状況表示領域３２０１は、実施形態３と同様に、軸オブジェクト生成部１０８から軸オブジェクトを入力し、イベントオブジェクト生成部１０７からイベントオブジェクトを入力し、ヒントオブジェクト生成部４１４からヒントオブジェクトを入力し、それぞれが持つ表示位置を表す座標に基づいて、軸オブジェクト、イベントオブジェクト３２０６〜３２１４、ヒントオブジェクト３２２０を画面上に描画する。
【０２３２】
・領域オブジェクト表示
また、表示部４１０は、領域オブジェクト生成部４０９から領域オブジェクトを入力し、領域オブジェクトが持つ表示位置を表す始点座標と終点座標に基づいて領域オブジェクト３２０３〜３２０５を画面上に描画する。また、領域オブジェクト３２０３〜３２０５が持つ領域名に基づいて領域名を表示する。その結果、実施形態４では、領域オブジェクト３２０３〜３２０５として楕円オブジェクトが生成されているため、図３２に示すように、プログラム実行状況表示領域３２０１には、楕円形の領域オブジェクト３２０３〜３２０５が表示される。
【０２３３】
領域オブジェクト３２０３〜３２０５は、実施形態３のように、それぞれが対応するイベントオブジェクト３２０６〜３２１４を包含している必要はない。すなわち、領域オブジェクト３２０３〜３２０５は、各領域オブジェクト３２０３〜３２０５が対応するイベントオブジェクトをユーザが目視により判別可能な形態であれば、どのように表示されてもよい。なお、これは、上述した実施形態においても同様である。
【０２３４】
以上のように、実施形態４によれば、大量のイベントが実行されるプログラムの実行状況をユーザに対して有効且つ網羅的に提示することが可能になる。その際、ヒントオブジェクトを併せて表示することで、ユーザに対して対話的かつ有効にプログラムの実行状況を提示することが可能になる。なお、その他の構成、動作および効果は、上述した実施形態と同様であってよい。
【０２３５】
なお、上記実施形態およびその変形例は本発明を実施するための例にすぎず、本発明はこれらに限定されるものではなく、仕様等に応じて種々変形することは本発明の範囲内であり、更に本発明の範囲内において、他の様々な実施形態が可能であることは上記記載から自明である。例えば実施形態に対して適宜例示した変形例は、他の実施形態と組み合わせることも可能であることは言うまでもない。
【符号の説明】
【０２３６】
４０１…プログラム実行状況表示装置、４０２…イベント情報格納部、４０３…軸情報格納部、４０４…領域指定条件候補情報格納部、４０５…領域指定条件情報格納部、４０６…領域情報格納部、４０７…イベントオブジェクト生成部、４０８…軸オブジェクト生成部、４０９…領域オブジェクト生成部、４１０…表示部、４１１…領域指定条件選択部、４１２…領域指定条件情報更新部、４１３…領域情報生成部、４１４…ヒントオブジェクト生成部、４２２…イベント情報取得部、４２３…軸情報取得部、４２４…領域指定条件候補情報取得部、４２５…領域指定条件情報取得部、４２６…領域情報取得部
【図１】
2015043197.tif 000003
【図２】
2015043197.tif 000004
【図３】
2015043197.tif 000005
【図４】
2015043197.tif 000006
【図５】
2015043197.tif 000007
【図６】
2015043197.tif 000008
【図７】
2015043197.tif 000009
【図８】
2015043197.tif 000010
【図９】
2015043197.tif 000011
【図１０】
2015043197.tif 000012
【図１１】
2015043197.tif 000013
【図１２】
2015043197.tif 000014
【図１３】
2015043197.tif 000015
【図１４】
2015043197.tif 000016
【図１５】
2015043197.tif 000017
【図１６】
2015043197.tif 000018
【図１７】
2015043197.tif 000019
【図１８】
2015043197.tif 000020
【図１９】
2015043197.tif 000021
【図２０】
2015043197.tif 000022
【図２１】
2015043197.tif 000023
【図２２】
2015043197.tif 000024
【図２３】
2015043197.tif 000025
【図２４】
2015043197.tif 000026
【図２５】
2015043197.tif 000027
【図２６】
2015043197.tif 000028
【図２７】
2015043197.tif 000029
【図２８】
2015043197.tif 000030
【図２９】
2015043197.tif 000031
【図３０】
2015043197.tif 000032
【図３１】
2015043197.tif 000033
【図３２】
2015043197.tif 000034