トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 トレース解析を支援するためのプログラムを記録した記録媒体及びプログラム製品
【発明者】 【氏名】小野 展弘

【要約】 【課題】プログラムの動作理解の向上および不具合原因の特定、さらには改善点の発見を容易にするトレース解析支援システムを提供する。

【解決手段】ユーザが求めるプログラム動作の調査範囲について必要かつ十分なトレース情報を連続して抽出し、記録する。プログラム実行時の動作をソースコードレベルのトレースで仮想的に再現し、その際にトレース情報を表示する。プログラム構造情報を基にしたトレース情報のカテゴライズ及び情報の隠蔽により、注目箇所に限った提示情報の詳細化或いは概略化といった情報量の調節を実現する。またプログラムのシーケンシャルな制御の流れ若しくはデータの流れをイベントトレースチャートにより視覚化し、これをソースコードと連動して表示する。
【特許請求の範囲】
【請求項1】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されている情報に基づいて、前記トレース解析の対象となるプログラムを構成するプログラム要素および該プログラムの実行中のイベントのカテゴライズ情報を管理するカテゴライズ情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段と、を具備することを特徴とするトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項2】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されている情報に基づいて、前記トレース解析の対象となるプログラムを構成するプログラム要素および該プログラムの実行中のイベントのカテゴライズ情報を管理するカテゴライズ情報管理手段と、前記トレース解析情報記録手段に記録されているトレース解析情報の少なくとも一部に基づいて、前記トレース解析の対象となるプログラムの実行時の動作を視覚化するプログラム動作視覚化手段と、を具備することを特徴とするトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項3】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段と、前記トレース解析情報記録手段に記録されているトレース解析情報の少なくとも一部に基づいて、前記トレース解析の対象となるプログラムの実行時の動作を視覚化するプログラム動作視覚化手段と、を具備することを特徴とするトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項4】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段と、を具備することを特徴とするトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項5】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されているトレース解析情報の少なくとも一部に基づいて、前記トレース解析の対象となるプログラムの実行時の動作を視覚化するプログラム動作視覚化手段と、を具備することを特徴とするトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項6】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部に基づいて、前記トレース解析の対象となるプログラムの実行時の動作を視覚化するプログラム動作視覚化手段と、を具備することを特徴とするトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項7】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段と、を具備することを特徴とするトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項8】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部に基づいて、前記トレース解析の対象となるプログラムの実行時の動作を視覚化するプログラム動作視覚化手段と、を具備することを特徴とするプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項9】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録された情報に基づいて、前記トレース解析の対象となるプログラムを構成するプログラム要素および該プログラムの実行中のイベントをカテゴライズするカテゴライズ情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段と、トレース解析情報記録手段に格納されているトレース解析情報に基づいて、前記解析対象プログラムを構成するプログラム要素のプログラム実行時におけるトレース情報を、シーケンシャルなイベントのチャートとして視覚化するプログラム動作視覚化手段と、を具備することを特徴とするプログラムを記録したコンピュータにより読み取り可能な記録媒体。
【請求項10】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録された情報に基づいて、前記トレース解析の対象となるプログラムを構成するプログラム要素および該プログラムの実行中のイベントのカテゴライズ情報を管理するカテゴライズ情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段と、を具備することを特徴とするトレース解析を支援するためのプログラム製品。
【請求項11】 トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段と、を具備することを特徴とするトレース解析を支援するためのプログラム製品。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明は、プログラムの動作に関する情報を整理して表示することによって、プログラムの実行過程を詳細かつ直感的に把握することをが可能なトレース解析支援に関する。
【0002】
【従来の技術】従来、プログラムの動作を把握するための手法として、デバッグ装置を用いてプログラムのコードを1つずつステップ実行させ、プログラムソースコード中の予想した箇所やプログラム要素の値を表示させ、或いはその履歴を記録させる手法が知られている。
【0003】しかしながら、ステップ実行を繰り返し行うことによって、プログラムの実行履歴を頭に思い描くことができるのは局所的な範囲に限定される。しかも、期待する実行履歴を探し当てるのも容易ではない。したがって、デバッグ作業者にとって多大な手間と負担が掛かるという問題点がある。
【0004】
【発明が解決しようとする課題】本発明は上記事情を考慮してなされたものであり、その目的は、プログラムの動作理解の向上および不具合原因の特定、さらには改善点の発見を容易にするトレース解析支援のためのプログラムを提供することを目的とする。
【0005】特に、注目したいトレース解析箇所を容易に絞り込むことができ、またトレース解析において提示される情報の表示におけるカスタマイズを容易に行える新たなトレース解析支援の仕組みを提供することを目的とする。
【0006】
【課題を解決するための手段】本発明のトレース解析支援では、対象プログラムを構成する各プログラム要素間の依存関係等を予め解析しておく。ユーザが求めるプログラム動作の調査範囲について、必要かつ十分なトレース情報を連続して抽出、および記録する。プログラム実行時の動作をソースコードレベルのトレースで仮想的に再現し、その際にトレース情報を表示する。プログラム構造情報を基にしたトレース情報のカテゴライズ及び情報の隠蔽により、情報の注目箇所に限った詳細化或いは概略化といった情報量調節を実現する。また、プログラムのシーケンシャルな制御の流れ若しくはデータの流れをイベントトレースチャートにより視覚化し、これをソースコードと連動して表示する。
【0007】より詳しくは、本発明は次のように構成される。
(1)本発明のトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体は、トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されている情報に基づいて、前記トレース解析の対象となるプログラムを構成するプログラム要素および該プログラムの実行中のイベントのカテゴライズ情報を管理するカテゴライズ情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段とを具備する。
【0008】(2)本発明のトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体は、トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されている情報に基づいて、前記トレース解析の対象となるプログラムを構成するプログラム要素および該プログラムの実行中のイベントのカテゴライズ情報を管理するカテゴライズ情報管理手段と、前記トレース解析情報記録手段に記録されているトレース解析情報の少なくとも一部に基づいて、前記トレース解析の対象となるプログラムの実行時の動作を視覚化するプログラム動作視覚化手段とを具備する。
【0009】(3)本発明のトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体は、トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段とを具備する。
【0010】(4)本発明のトレース解析を支援するためのプログラムを記録したコンピュータにより読み取り可能な記録媒体は、トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されているトレース解析情報の少なくとも一部に基づいて、前記トレース解析の対象となるプログラムの実行時の動作を視覚化するプログラム動作視覚化手段とを具備する。
【0011】(5)本発明のトレース解析を支援するためのプログラム製品は、トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段とを具備する。
【0012】(6)本発明のトレース解析を支援するためのプログラム製品は、トレース解析の対象となるプログラムに関する諸情報の入力を受けるトレース解析対象プログラム情報入力手段と、前記トレース解析の対象となるプログラムの実行中に取得されたトレース情報から、トレース解析の対象として注目する箇所としてのプログラム要素群に関連するトレース情報を選別抽出するトレース情報入力解析手段と、前記トレース解析の対象となるプログラムに関する諸情報、前記トレース情報、及びトレース解析に伴って生成および取得される情報をトレース解析情報として格納するトレース解析情報記録手段と、記録された前記トレース解析情報の管理を行うトレース解析情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の個々の情報についての表示/非表示、又は該トレース解析情報から二次的に生成される情報の抽出及びその表示/非表示を管理する表示情報管理手段と、前記トレース解析情報記録手段に記録されたトレース解析情報の少なくとも一部の情報に基づいて、ソースコードレベルで前記トレース情報を表示することで、前記トレース解析の対象となるプログラムの実行時の振る舞いを仮想的に再現する仮想プログラム実行トレース手段とを具備する。
【0013】
【発明の実施の形態】以下、図面を参照しながら本発明の実施形態を説明する。
【0014】図1は、本発明の一実施形態に係るトレース解析支援システムの概略構成を示すブロック図である。
【0015】図1に示すように本実施形態のトレース解析支援システムは、トレース解析対象プログラム情報入力手段1、トレース解析情報記録手段2、トレース情報入力解析手段3、トレース解析情報管理手段4、カテゴライズ情報管理手段5、表示情報管理手段6、仮想プログラム実行トレース解析手段7、プログラム動作視覚化手段8から構成される。
【0016】トレース解析対象プログラム情報入力手段1は、トレース解析の対処プログラムのソースファイル群を静的に解析して得られるプログラム構造情報や、トレース解析対象プログラムを構成するプログラム要素群の内、トレース解析においてユーザが注目するプログラム要素に関する情報など、トレース解析の対象となるプログラムに関する諸情報の入力を受け、トレース解析情報記録手段2にそれらの情報を渡す。トレース解析情報記録手段2は、トレース解析対象プログラム情報入力手段1から渡された情報を、プログラム構造データおよびトレース解析対象データとして記録する。
【0017】トレース情報入力解析手段3は、トレース解析対象プログラムの実行中にトレース情報を出力するような他システムからトレース解析対象プログラムのトレース情報を取得し、トレース解析情報記録手段2が保持しているプログラム構造データおよびトレース解析対象データを元にして、ユーザが注目したいトレース情報を供給できる必要かつ十分なトレース情報を選別、抽出し、トレース解析情報記録手段2に渡す。トレース解析情報記録手段2は、渡された情報をトレースデータとして記録する。
【0018】トレース解析情報管理手段4は、トレース解析時に、カテゴライズ情報管理手段5、表示情報管理手段6、仮想プログラム実行トレース解析手段7、プログラム動作視覚化手段8などの他の手段からの要請を受けてトレース解析情報記録手段2にアクセスし、トレース解析情報記録手段2に蓄えられているデータをもとに、情報の検索、参照、およびトレース解析に伴う情報の整理若しくは記録等を行い、その結果として得られた情報を要請元の各手段に渡す。
【0019】カテゴライズ情報管理手段5は、トレース解析情報記録手段2に格納されているトレースデータを自動的にカテゴライズする。このカテゴライズは、トレース解析情報記録手段2に格納されているプログラム構造データを基に、解析対象プログラムを構成するプログラム要素、解析対象プログラムのプログラム実行中の例えば関数呼び出しや変数参照などのイベントに対して行う。さらに、カテゴライズの結果として生成された各カテゴリにカテゴリ名称を付加する(カテゴリ設定)。
【0020】また、カテゴライズ情報編集部によって、ユーザの指定による入れ子となるような新たなカテゴリ設定を許容する(カテゴリの詳細化)。この際に、カテゴリ整合管理部によって、カテゴリ重複度の整合がとられる。もちろん、カテゴライズされた情報は、そのカテゴリの構成要素単位に戻すことも可能である。そして、カテゴライズ情報管理手段5は、カテゴリ設定に伴って生成されたカテゴライズ情報を、トレース解析情報管理手段4を介してトレース解析情報記録手段2にカテゴライズデータとして記録させる。
【0021】表示情報管理手段6は、ユーザが注目したいトレース情報を供給できる必要かつ十分なトレース情報として、トレース解析情報記録手段2に記録されているトレースデータの中から、さらにトレース解析時における解析情報の表示を行わないプログラム要素の指定をユーザから受け、該指定されたプログラム要素に係る情報をトレース解析時に隠蔽するような隠蔽表示を行う。この処理は、情報隠蔽管理部により行われる。もちろん、隠蔽された情報を再度表示するように設定することも可能である。
【0022】また、表示情報管理手段6は、メトリクス情報管理部によって、トレース解析時に隠蔽されずに表示される解析対象プログラムを構成するプログラム要素と、それらが関わるプログラム実行中のイベントに関してのメトリクス情報(プログラムの特徴を示す数)を算出する。表示情報管理手段6は、こうして生成される表示及び非表示に関する情報と、表示される情報群から算出される情報とを、トレース解析情報管理手段4を介してトレース解析情報記録手段2のトレースデータに追加する。
【0023】仮想プログラム実行トレース解析手段7は、トレース解析情報記録手段2に格納されているトレースデータに基づいて、あたかもトレース解析対象プログラムをステップ実行しているかのような仮想的なプログラムの実行状態を作り出し、指定したトレース解析範囲のトレース情報を表示させる手段である。このとき、プログラムの仮想的な実行の流れに従って、オリジナルのソースファイルにおいて対応するステートメントを連動表示し、ウォッチデータ表示部にトレース解析情報を表示する。ここでトレース解析情報とは、トレース解析情報記録手段2に格納されているトレースデータから抽出された情報であって、トレース情報入力解析手段3に入力されたトレース情報に対して、他のデータからの情報が付加された情報である。
【0024】また、仮想プログラム実行トレース解析手段7は、イベントトレースチャート連動表示部によって、ユーザ指定位置に対応する視覚化情報の連動表示をプログラム動作視覚化手段8に要請することが可能である。
【0025】プログラム動作視覚化手段8は、トレース解析情報記録手段2に格納されているトレースデータに基づいて、解析対象プログラムを構成するプログラム要素のプログラム実行時のトレース情報を、シーケンシャルなイベントのチャートとして視覚化(イベントトレースチャート化)する。トレース解析情報記録手段2にカテゴライズデータが存在する場合は、各カテゴリ毎に複数のチャート構成要素をまとめて表現することで、より概略的なチャートを表現することが可能となる。またプログラム動作視覚化手段8は、チャートを表示するために生成した情報を、トレース解析情報管理手段4を介してトレース解析情報記録手段2にイベントトレースチャートデータとして記録させる。またプログラム動作視覚化手段8は、ソースコード連動表示部によって、仮想プログラム実行トレース解析手段7に、ユーザ指定位置に対応するプログラムのステートメントの連動表示、およびトレース解析情報の表示の要請を行うことも可能である。
【0026】図2は、図1に示したトレース解析支援システムに対して結合される他システムを示すブロック図である。同図に示される他システムは、トレース解析対象プログラム情報とトレース情報との両者もしくはいずれか一方をトレース解析支援システムに提供するものである。この図に示される他システムはあくまで一例である。
【0027】以下、このような他システムの一例について説明する。他システムは、図2に示すように、ソースファイル群9、プログラム解析手段10、トレース解析対象指定手段11、ログ出力命令挿入手段12、ログ出力命令挿入済みソースファイル群13、コンパイラ14、ログ出力命令挿入済み実行ファイル群15、及びログファイル群16から構成される。トレーサー17については後述する。
【0028】プログラム解析手段10は、解析対象プログラムのソースファイル群9を読み込んでこれを解析し、解析対象プログラムを構成するソースファイルのファイル情報(ファイル名、ディレクトリ情報など)および、全プログラム要素(クラス、関数、変数など)のプログラム構造情報(宣言位置、識別子名称、型名、引数情報、依存関係情報など)を抽出する。プログラム解析手段10はその処理結果をトレース解析対象プログラム情報入力手段1に渡す。ここで、依存関係とは、例えば、変数に値が代入されている、変数の値が条件式で参照されている、関数の戻り値が参照されている、といった情報のことである。
【0029】トレース解析対象指定手段11は、解析対象プログラムを構成するプログラム要素群の幾つかをユーザがトレース解析対象として指定するための手段である。なお、すでに抽出された解析対象プログラムのプログラム構造情報に基づいて、指定された各プログラム要素に依存関係を持つプログラム要素群についてもこれをトレース解析対象として指定することも可能である。トレース解析対象指定手段11により得られた指定情報は、トレース解析対象プログラム情報入力手段1に入力される。
【0030】トレース解析対象プログラム情報入力手段1は、他システムに属するプログラム解析手段10とトレース解析対象指定手段11からの入力情報として、解析対象プログラムを構成するソースファイルのファイル情報および全プログラム要素についてのプログラム構造情報と、トレース解析対象のプログラム要素の指定情報とを受け取り、トレース解析情報記録手段2にそれらの情報を記録させる。
【0031】トレース解析情報記録手段2は、解析対象プログラムを構成するソースファイルのファイル情報および全プログラム要素のプログラム構造情報と、トレース解析対象のプログラム要素の指定情報とを、図3に示すようなテーブルによって管理する。なお、本実施形態では、解析対象のプログラムの記述言語を例えばC言語としている。その他のプログラム言語を解析対象とする場合には管理する情報は異なることは言うまでもない。例えばC++言語であれば、クラスに関する情報が付加される。
【0032】図3(a)は、ファイル情報のテーブルを示している。このテーブルはソースファイル名にファイルIDを振り当て、さらにソースファイルが存在するディレクトリのパス名を格納するテーブルである。ファイルIDから、ソースファイル名およびそのソースファイルが存在するデイレクトリのパス名を参照できる。例えば、ソースファイル名「file1」にはファイルID「A」が割り振られ、当該ファイルが存在するディレクトリのパス名は、「directry1」である。
【0033】図3(b)は識別子情報を管理するためのテーブルを示している。このテーブルは、識別子名に識別子IDを割り当て、その識別子の依存関係情報、さらにその識別子の宣言に関する属性を格納するテーブルである。識別子の依存関係情報には、その識別子と依存関係を有する他の識別子の識別子IDと、それぞれの依存関係内容とがある。識別子の宣言に関する属性としては、その識別子を宣言しているソースファイルのファイルID、行番号、関数の識別子ID(ローカル変数の場合)、関数か否か、静的宣言されているか否か、そしてトレース解析対象として指定されているか否かがある。これにより、識別子IDから、識別子名やその識別子の宣言に関する属性を参照することができる。例えばこのテーブルにおいて、識別子名「symbol1」に対して識別子ID「a」が振られ、その識別子が宣言されているのは、ファイルIDに「fileID1」が振られたファイルであり、宣言行は「line1」であり、その識別子が関数でなくローカル変数であれば、「funcID1」には、その識別子が宣言されている関数の識別子の識別子IDが割り振られ、その識別子がグローバル変数であれば、「funcID1」はどの関数中でも宣言されていないことを示す値(例えば−1など)を有する。なお、その識別子が関数であり、解析対象プログラム内に宣言された識別子ではない場合、「funcID1」には識別子IDがないことを示す値(例えば−1など)を有する。そして、その識別子が関数か否かを示す「bFunc1」は、これを区別可能な値(例えば1と0など)を値として持ち、その識別子が静的宣言されているか否かを示す「bStatic1」にもこれを区別可能な値(例えば1と0など)を値として有する。さらにその識別子がトレース解析対象として指定されているか否かを示す「bTrace1」についてもこれを区別可能な値(例えば1と0など)を値として有する。
【0034】他システムは、トレース解析対象として指定した全てのプログラム要素に対して、解析対象のプログラムの実行中にトレース情報をログとして出力するための仕組みとして、ソースファイル群のそれぞれにログ出力命令を挿入するためのログ出力命令挿入手段12を有する。
【0035】ログ出力命令挿入手段12によりログ出力命令が挿入されたソースファイル群13は、コンパイラ14によりコンパイルされる。ユーザは、最終的に生成されたログ出力命令挿入済み実行ファイル群15を、トレース解析の目的に添うように実行させ、これによりトレース情報としてのログファイルが得られる。
【0036】ここでトレース情報入力解析手段3は、得られたログファイルを読み込むことによりトレース情報を取得し、トレース解析情報記録手段2に対し選別抽出されたトレース情報を渡す。ここでトレース情報とは、プロセッサが処理するプログラムの命令毎の、処理が行われた前および後に、その処理が関わる様々な情報の値の集合を指す。処理が関わる様々な情報の例としては、処理の内容、型名、ポインタ情報、識別子文字列、アドレス、サイズ、スコープ情報、時間情報などが挙げられる。
【0037】ところで、トレース情報入力解析手段3は、トレース情報をログファイル群16から入力するのみならず、他の装置から直接的かつ動的に入力することも可能なように構成されている。
【0038】例えば、トレース解析対象プログラムの実行中に、トレース解析対象プログラムを構成する全てのプログラム要素についてのトレース情報(先に述べたトレース情報と同程度である必要がある)を次々に出力するトレーサー17(図2参照)に対しトレース情報入力解析手段3を結合し、同トレーサー17からトレース情報を直接的かつ動的に取り込むようにしてもよい。この場合、トレース情報入力解析手段3によって不必要なトレース情報を選別して除外する必要がある。
【0039】トレース情報を選別して抽出する流れを図4のフローチャートを参照して説明する。まず、指定されたトレース解析対象に関する情報をユーザが確認し、トレース解析情報記録手段2に格納されているトレース解析対象データを参照する(ステップ400)。トレース解析対象データとは、例えば図3のテーブルにあるような識別子IDの内、トレース解析対象として指定された識別子IDのみが抽出されたデータである。このようなトレース解析対象データは、配列もしくはリスト等の形式で保持される。後の処理では、入力されるトレース情報の内から不要なものを無視するように、トレース解析対象データに基づいてフィルタリングが行われる。
【0040】プログラム命令の処理の前後それぞれに得られるトレース情報を単位として連続して出力されるトレース情報を、その出力順に取得する(ステップ401)。
【0041】そして、取得できるトレース情報があるかを調べ(ステップ402)、なければトレース情報の入力解析を終了し、ある場合には取得したトレース情報がトレース解析対象であるかを調べる(ステップ403)。対象外であればステップ401へジャンプし、対象に該当する場合には、これをユーザがトレース解析情報として必要なトレース情報とし、トレース解析情報記録手段2に渡し、トレースデータとして記憶させる(ステップ404)。なお、入力されるトレース情報が全てトレース解析対象であることが明白な場合には、図4のフローチャートの処理を行わず、入力されるトレース情報をトレース解析情報記録手段2に直接渡し、トレースデータとしてもよい。また、トレース解析対象ではなくても、ライブラリ関数などのトレース情報に対しては情報取得を行うという具合に、特定の情報については意図的にトレース解析対象とみなすように構成してもよい。
【0042】トレース解析情報記録手段2に格納されたトレースデータは、プログラムの処理の流れに従って、そのプログラムの処理毎のトレース情報と、プログラム構造データ内の対応するプログラム構造データ参照用のアクセスポインタ(ここでは識別子ID)とを組合わせた情報として順次スタックされる。図5はトレースデータのテーブルの一例を示す。
【0043】図5に示すトレースデータテーブルにおいては、識別子ID、処理情報、型情報、ポインタ情報、アドレス情報、サイズ情報、値情報、時間情報などの要素の持つトレース情報が、時系列な順序で配置されている。識別子IDとは、図3で示したテーブルが保有する情報へアクセスするためのポインタのことであり、このような識別子IDにより対応する情報の参照を可能にする。
【0044】処理情報は、例えば変数の値の参照、変数に値を書込む直前、変数に値を書き込んだ直後、関数からの呼び出し、戻り値を伴う関数の復帰など、それぞれの処理内容について例えば数字を割り振ったものである。同様に、型情報は、int型、unsigned int型、char型、unsigned char型などといった、各種データ型に対して、例えば数字を割り振ったものである。またポインタ情報は、実体か、ポインタか、またはポインタのポインタというように複数回のポインタ参照であるか、について例えば数字を割り振ったものである。
【0045】また、アドレス情報は、対象識別子のアドレス値を、サイズ情報は対象識別子のサイズを、値情報は対象識別子の値を意味する。また時間情報とは、その処理がなされたタイムスタンプを意味する。
【0046】トレース情報の取得が終了したら、まずカテゴライズ情報管理手段5によって、トレース解析情報記録手段2に格納されているトレースデータ内の解析対象プログラムを構成するプログラム要素や、解析対象プログラムのプログラム実行中のイベントに対して自動的にカテゴライズが行われる。
【0047】自動で行うカテゴライズの流れを図6のフローチャートを参照して説明する。
【0048】まず、トレース解析情報記録手段2が保持しているトレースデータをカテゴライズ対象として取得し、およびカテゴライズの参照情報としてプログラム構造データを取得しておく(ステップ600)。次にトレースデータからプログラムの処理の流れに沿って、順次にトレース情報を取得する(ステップ601)。取得できるトレース情報がある場合には(ステップ602)、まずその情報の識別子が関数であるかを調べ(ステップ603)、関数でなければその識別子は変数であるからグローバル変数であるかを調べ(ステップ604)る。グローバル変数であればグローバル変数のカテゴリ情報を付加し(ステップ605)、グローバル変数でなければローカル変数としてローカル変数カテゴリ情報を付加する(ステップ606)。また、識別子が関数であった場合には、関数の識別子IDの有無を調べ(ステップ607)、関数の識別子IDが存在しない場合には、解析対象プログラムの外で定義された関数(例えばライブラリ関数)であると判断し、解析対象プログラム外定義関数情報を付加する(ステップ608)。その後識別子が関数であるものに対して、関数カテゴリ情報を付加する(ステップ609)。そしてその識別子のファイル情報を取得し(ステップ610)、そのファイル情報を元にして出現ファイル順に各カテゴリ毎にまとめ、バッファにスタックする(ステップ611)。このステップ601からステップ611までを、取得できるトレース情報がなくなるまで繰り返し行う。取得できるトレース情報がなくなれば(ステップ602)、各ローカル変数を、所属する関数ごとにソートし(ステップ612)、各カテゴリにそれぞれ自動的に生成されるカテゴリ名称を与えて(ステップ613)、自動カテゴライズを終了する。以上の処理により得られた情報を、トレース解析情報管理手段4を介してトレース解析情報記録手段2にカテゴライズデータとして記憶させる。
【0049】カテゴライズ情報管理手段5は、ユーザ指定による入れ子となるような新たなカテゴリ設定を許容する。よって、カテゴリ情報を例えばディレクトリ情報のような木構造で保持する。
【0050】図7はカテゴリ情報を保持するテーブルの一例を示している。
【0051】図7に示すカテゴリテーブルは、図6により説明した自動カテゴライズ後に生成されたカテゴライズデータを、関数カテゴリテーブル(a)、解析対象プログラム外宣言関数カテゴリテーブル(b)、グローバル変数カテゴリテーブル(c)、ローカル変数カテゴリテーブル(d)からなる4つのテーブルによって管理する。
【0052】ユーザからのカテゴライズ操作に伴って、各テーブルにはカテゴリ設定情報が付加される。各テーブルでは、例えば「/」を区切りとして、一番左に位置するカテゴリをルートとし、各識別子のカテゴリ情報が記述されている。なお、テーブル内は、ローカル変数カテゴリテーブル(d)のように、各識別子のカテゴリ情報をもとに自動的にソートが行われるものとしている。例えば関数カテゴリテーブル(a)において、識別子IDが「A」と「B」の識別子については「file1」カテゴリの入れ子のカテゴリとし、「UserDef_Input」が新たにユーザにより設定されている。「file1」にはその識別子が属するファイルのファイル情報を識別するための値が入り(例えばファイルID)、「UserDef_Input」には、例えばユーザが設定したカテゴリ名称などが入る。図6の自動カテゴライズ後には、各テーブルはトレース情報に登場するファイル順にソートされているが、解析対象プログラム外宣言関数カテゴリテーブル(b)とグローバル変数カテゴリテーブル(c)における「UserDef_SysLib」や「UserDef_Important」のように、ルート位置にカテゴリ情報を付加することも可能である。カテゴライズ情報管理手段5においては、原則としてユーザが任意にカテゴライズを行うことが可能であるが、異なる関数内で定義されているローカル変数群を同じカテゴリになるように新たに設定し直すことなどに関しては警告、もしくは禁止したり、同時に複数のカテゴリに所属する設定は行えないようする。これによってカテゴリの整合を図ることができる。
【0053】表示情報管理手段6は、トレース解析情報記録手段2が保持するトレースデータを元に、トレースデータ内に出現する全ての識別子IDについての表示・非表示に関するテーブルを生成し、ユーザの指定に応じて、トレース解析時に指定された識別子のトレース解析情報を隠蔽するフラグを立て、その結果をトレース解析情報管理手段4を介してトレース解析情報記録手段2の表示関連データに記憶させる。また表示情報管理手段6は、トレースデータより算出される各識別子のメトリクス情報(例えば、変数への参照や書込みのカウントや関数の呼出のカウントなど)についてもトレース解析情報管理手段4を介してトレース解析情報記録手段2の表示関連データに記憶させる。隠蔽する識別子の増減に応じて、各識別子のメトリクス情報は変化する。この場合は、その都度再計算を行って表示関連データの更新が行われる。
【0054】図8は、トレース解析情報記録手段2の表示関連データの一例を示すテーブルである。
【0055】仮想プログラム実行トレース解析手段7は、トレース解析情報記録手段2に格納されているトレースデータに基づいて仮想的にプログラムの実行を行い、プログラムの対応ステートメントの表示、およびトレース解析情報の表示を行う。
【0056】仮想プログラム実行トレース解析手段7は、トレース解析情報記録手段2に格納されているトレースデータを参照する事によって、仮想的にプログラム実行を再現する。つまり、トレースデータが存在する範囲においては自由にトレース解析情報を参照できる。このトレース解析情報を参照するユーザの操作をトレース解析装置と呼ぶことにする。
【0057】仮想的なプログラム実行時における画面表示例を図9に示す。
【0058】ユーザは、フレームウィンドウ20の上部に設置されているトレース解析操作ボタン群21をマウス等の入力手段により押下操作することにより、トレース解析操作を行える。トレース解析操作の例としては、実際のプログラムの処理の流れに対して順方向へのステップ実行、逆方向へのステップバック実行、さらには仮想的なブレークポイント設定によるジャンプ実行などが挙げられる。
【0059】フレームウィンドウ20に属するソースコード表示部22には、現在のトレース解析位置を含むソースコードの一定範囲がスクロール表示される。現在のトレース解析位置に対応するステートメント23は、同図からわかるように強調表示される。
【0060】また、フレームウィンドウ20に属するウォッチデータ表示部24には、現在のトレース解析位置に対応するトレース解析情報が表示される。
【0061】ユーザがトレース解析操作を行った際の仮想プログラム実行トレース解析手段7の動作について図10のフローチャートを用いて説明する。
【0062】まず、ユーザのトレース解析操作の内容を識別する(ステップ1000)。そして、トレース解析操作に応じて表示すべきトレース解析情報のうちの先頭のトレース解析情報を、トレース解析情報管理手段4を介してトレース解析情報記録手段2のトレースデータから1つ取得する(ステップ1001)。取得できるトレース解析情報が存在する場合には(ステップ1002)、そのトレース解析情報をバッファにスタック格納し(ステップ1003)、そのトレース解析情報からファイル情報およびトレース解析位置に対応するステートメントの位置を確認する(ステップ1004)。トレース解析情報が存在しなければ終了する。次にバッファに格納されたトレース解析情報の次にスタックされているトレース解析情報を1つ取得し(ステップ1005)、トレース解析情報が取得できたら(ステップ1006)、そのトレース解析情報が、先だってバッファに格納されたトレース解析情報と同じステートメント内に属する識別子に関するものであるかを判別し(ステップ1007)、同じステートメント内のものであればステップ1003へジャンプする。そしてステップ1003からステップ1007までの処理を、ステップ1006においてトレース解析情報が取得できなくなるまで繰り返す。ステップ1006においてトレース解析情報が取得できなくなったら、バッファにスタックされているトレース解析情報を全てウォッチデータ表示部24に出力する(ステップ1008)。なお、トレース解析開始時は、トレース解析位置はトレースデータの先頭位置が属するステートメントとなり、そのステートメントに含まれる全てのトレース解析情報がウォッチデータ表示部24に出力されていることとする。
【0063】また、仮想プログラム実行トレース解析手段7は、プログラム動作視覚化手段8と連動するために、図10に示した処理の終了後に、現在のトレース解析位置の情報を渡す。
【0064】なお、ブレークポイント毎のジャンプトレース解析については、例えば、ユーザがブレークポイントを設定したいステートメントの情報を保持しておき、そのステートメント情報を持つトレース解析情報の位置まで走査し、見つけた位置からトレース解析情報を表示するなどの方法により実現できる。
【0065】プログラム動作視覚化手段8は、先に述べたトレース解析情報記録手段2に格納されているトレースデータを元に、カテゴライズデータによってトレース情報をカテゴライズした結果をシーケンシャルなイベントのチャートとして視覚化する。視覚化の例として、各カテゴリを時間軸方向に延びる線で表し、各カテゴリ間の相互のプログラムデータのやりとりをイベントと捉え、それらをカテゴリ間を横断する矢印のような線で表す。また、各線の隣接した位置にアイコン、文字列、もしくは情報表示用ウィンドウなどを配置することで、各線の付帯情報を表示することも可能である。結果的に表示されたチャートをイベントトレースチャートと呼ぶ。図11にイベントトレースチャートの一例を示す。
【0066】図11に示すイベントトレースチャートにおいては、ウィンドウ30内に4つのビューが分かれて表示される。上部2つのビューはそれぞれ、関数カテゴリ名称を表示するビュー31、および変数カテゴリ名称を表示するビュー32からなる。下部2つのビューは各カテゴリ毎のチャートおよびプログラムのイベントを表す線で構成されたイベントトレースチャートを表示するビュー33,34からなる。
【0067】なお、それぞれのビューを表示するための情報は、トレース解析情報管理手段4を介してトレース解析情報記録手段2のイベントトレースチャートデータとして記憶される。描画情報の更新毎にイベントトレースチャートデータは更新され、描画の高速化や、チャート画像の保存などに利用可能となる。
【0068】カテゴリ名称を表示するビュー31,32には、カテゴリ名称を示すシンボル(アイコンで表示してもよい)が表示されており、カテゴリは階層毎に整理して表示可能である。例えば、左上のビューの「カテゴリA」はルートのカテゴリを示しており、その下に「main0」と「Sub」が従属している。さらに「Sub」にはより下位の階層の存在を「+」の記号により示すアイコン35が表示される。なお、「−」で示されるアイコン36は、直下の階層が表示されている事を示し、「+」と「−」の切替操作によって、カテゴリ内の要素の表示の切替を容易に行うことが可能となる。
【0069】イベントトレースチャートを表示するビュー33,34では、解析対象プログラムのプログラム実行時におけるプログラムの制御のフローを太実線の折れ線37により表示する。プログラム実行時のイベントにあたるデータのフローは、左下のビューと右下のビューを横断する矢印で表示される。これらの表示に基づいてユーザは直感的なフローの把握が可能になる。
【0070】なお、トレース解析情報管理手段4を介してトレース解析情報記録手段2の表示関連データ内のメトリクス情報に基づき、その数値を直接表示したり、あるいはこれを参照可能にしたり、さらには、数値に規定を設け、その数値に対応するチャート表示の変更(例えばある変数に対して、ある一定数を超えた書込みがある場合には書き込みを示す線の色を変更するなど)を行うことも可能である。そして、現在のトレース解析位置については、イベントトレースチャート上の対応する領域を強調することによって、トレース解析時の視認性を向上させる。また、情報提示を意味する各種アイコンも適所に配置される。例えば、アイコン38は、イベントトレースチャート上において、データの書き込みや参照が行われていることを示す他に、そのポイント上でデータの値参照が可能である。また、アイコン39は関数の戻り値が返ったことを示す他に、そのポイント上でその戻り値の参照が可能である。
【0071】また、プログラム動作視覚化手段8は、ユーザがカテゴリの編集を行う際のインタフェースとして用いることも可能である。一例を挙げると、図11の上部のビューのカテゴリ名称を示すシンボルを、例えばマウス操作などで移動する事によって、表示するカテゴリの順番を変更したり、カテゴリの階層内容を編集可能とするなど、である。もちろん、カテゴリの追加および解除もカテゴリ名称を示すシンボルにサブメニューを実装することにより可能となる。同様にして情報を隠蔽したい識別子もしくはカテゴリを指定することも可能となる。なお、データフローを示す線についても、例えばループなどによる同じ変数への書き込みや参照などの繰り返しをグループ化するといったカテゴライズ、若しくは情報隠蔽なども可能である。このようなユーザによるカテゴリ編集や情報隠蔽識別子の指定による情報は、それぞれカテゴライズ情報管理手段5と表示情報管理手段6に渡される。そしてプログラム動作視覚化手段8は、これに応じてイベントトレースチャートの更新作業を行う。
【0072】図11の例では、ユーザは、フレームウィンドウ30上部に設置されているトレース解析操作ボタン群40によって、仮想プログラム実行トレース解析手段7が提供するトレース解析操作と同等の操作が可能となる。たとえば、プログラム動作視覚化手段8は、ユーザによるトレース解析操作ボタンの押下操作の内容を仮想プログラム実行トレース解析手段7に通知することによって、互いの連動が可能となる。
【0073】なお、本発明は上述した実施形態に限定されず種々変形して実施可能である。
【0074】
【発明の効果】以上説明したように、本発明によれば、膨大になりがちなプログラム実行履歴情報を、ユーザが注目したいトレース情報を供給できる必要かつ十分なトレース情報として確実に抽出することができる。また、プログラムの実行時の振る舞いに関する調査、およびデバッグなど、トレース解析時に必要となる情報収集作業を軽減することができる。さらに、トレース情報のカテゴライズやトレース情報の視覚化を行うことが可能になり、抽出されたトレース情報をユーザが容易に把握可能な表現で提供できる。したがって、トレース解析の大幅な効率向上を図ることができる。
【出願人】 【識別番号】000003078
【氏名又は名称】株式会社東芝
【出願日】 平成12年9月29日(2000.9.29)
【代理人】 【識別番号】100058479
【弁理士】
【氏名又は名称】鈴江 武彦 (外6名)
【公開番号】 特開2002−108649(P2002−108649A)
【公開日】 平成14年4月12日(2002.4.12)
【出願番号】 特願2000−301470(P2000−301470)