(57)【要約】【課題】ユーザに表示すべき情報を自動抽出できる信号選択方法、デバッグ支援装置及びプログラムを提供する。【解決手段】１以上のマスタ信号と、前記マスタ信号にそれぞれ関連付けられた従属信号群とを定義したアーキテクチャ信号リストと、前記アーキテクチャ信号リストで定義された信号を利用した処理を行うユーザープログラムとを入力し、前記ユーザープログラムにおいて利用される前記従属信号と、前記アーキテクチャ信号リストにおいて前記従属信号に関連付けられている前記マスタ信号とを抽出する表示信号候補抽出ステップと、前記従属信号及び前記マスタ信号の有効性を定義した有効信号情報を入力し、前記表示信号抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号から、前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号を抽出する表示信号リスト作成ステップとを実行する。【選択図】図１
2013254449.tif 000002
【特許請求の範囲】
【請求項１】
１以上のマスタ信号と、前記マスタ信号にそれぞれ関連付けられた従属信号群とを定義したアーキテクチャ信号リストと、
前記アーキテクチャ信号リストで定義された信号を利用した処理を行うユーザープログラムとを入力し、
前記ユーザープログラムにおいて利用される前記従属信号と、前記アーキテクチャ信号リストにおいて前記従属信号に関連付けられている前記マスタ信号とを抽出する
表示信号候補抽出ステップと、
前記従属信号及び前記マスタ信号の有効性を定義した有効信号情報を入力し、
前記表示信号抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号から、前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号を抽出する
表示信号リスト作成ステップとを有する
信号選択方法。
【請求項２】
前記表示信号リスト作成ステップにおいて抽出した前記従属信号及び前記マスタ信号を組として、
前記マスタ信号が有効となる時刻の順にソートする
順序関係リスト生成ステップをさらに有する
請求項１記載の信号選択方法。
【請求項３】
前記表示信号候補抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号が、
前記有効信号情報において有効と定義されていない場合、
第１の警告を発生する
第１の警告ステップをさらに有する
請求項１又は２記載の信号選択方法。
【請求項４】
前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号が、
前記表示信号候補抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号に含まれていない場合、
第２の警告を発生する
第２の警告ステップをさらに有する
請求項１乃至３いずれか１項記載の信号選択方法。
【請求項５】
１以上のマスタ信号と、前記マスタ信号にそれぞれ関連付けられた従属信号群とを定義したアーキテクチャ信号リストと、
前記アーキテクチャ信号リストで定義された信号を利用した処理を行うユーザープログラムとを入力し、
前記ユーザープログラムにおいて利用される前記従属信号と、前記アーキテクチャ信号リストにおいて前記従属信号に関連付けられている前記マスタ信号とを抽出する
表示信号候補抽出手段と、
前記従属信号及び前記マスタ信号の有効性を定義した有効信号情報を入力し、
前記表示信号抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号から、前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号を抽出する
表示信号リスト作成手段とを有する
デバッグ支援装置。
【請求項６】
前記表示信号リスト作成手段において抽出した前記従属信号及び前記マスタ信号を組として、
前記マスタ信号が有効となる時刻の順にソートする
順序関係リスト生成手段をさらに有する
請求項５記載のデバッグ支援装置。
【請求項７】
前記表示信号候補抽出手段において抽出した前記従属信号及び前記マスタ信号が、
前記有効信号情報において有効と定義されていない場合、
第１の警告を発生する
第１の警告手段をさらに有する
請求項５又は６記載のデバッグ支援装置。
【請求項８】
前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号が、
前記表示信号候補抽出手段において抽出した前記従属信号及び前記マスタ信号に含まれていない場合、
第２の警告を発生する
第２の警告手段をさらに有する
請求項５乃至７いずれか１項記載のデバッグ支援装置。
【請求項９】
コンピュータに、
１以上のマスタ信号と、前記マスタ信号にそれぞれ関連付けられた従属信号群とを定義したアーキテクチャ信号リストと、
前記アーキテクチャ信号リストで定義された信号を利用した処理を行うユーザープログラムとを入力し、
前記ユーザープログラムにおいて利用される前記従属信号と、前記アーキテクチャ信号リストにおいて前記従属信号に関連付けられている前記マスタ信号とを抽出する
表示信号候補抽出ステップと、
前記従属信号及び前記マスタ信号の有効性を定義した有効信号情報を入力し、
前記表示信号抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号から、前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号を抽出する
表示信号リスト作成ステップとを実行させる
プログラム。
【請求項１０】
前記表示信号リスト作成ステップにおいて抽出した前記従属信号及び前記マスタ信号を組として、
前記マスタ信号が有効となる時刻の順にソートする
順序関係リスト生成ステップをさらに有する
請求項９記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号選択方法、デバッグ支援装置及びプログラムに関し、例えばユーザーに表示すべき情報を抽出する技術に関する。
【背景技術】
【０００２】
マルチコアプロセッサ等複数の演算ユニットを持つシステムにおいて、演算ユニット間の協調を行いながら処理を進めるプログラム、すなわち分散プログラムが広く知られている。この分散プログラムは、１つの演算ユニットで実行されるプログラムそれぞれのほか、プログラム間の依存関係を考慮したデバッグが必要であるため、デバッグ作業が複雑である。そこで、このような分散プログラムのデバッグを支援する装置や方法が従来から提案されている。
【０００３】
例えば特許文献１には、複数のプロセス間で通信を行いながら処理を進める分散プログラムにおけるプロセス間通信を分かりやすくユーザーに提示することにより、デバッグを支援するデバッグ支援装置が記載されている。図２４を用いて、特許文献１のデバッグ支援装置について説明する。
【０００４】
このデバッグ支援装置は、複数のマシン１１〜１ｎを有し、これらのマシンはそれぞれ、被デバッグ分散プログラムであるユーザープログラム２と、ログデータを作成するためにユーザープログラム２に埋め込まれているプローブ３と、マシン内のログデータを収集するための中継コレクタ４を有する。
【０００５】
また、ホストマシン１０は、マシン１１〜１ｎよりログデータを収集するコレクタ５、コレクタ５のログデータを解析するアナライザ６、アナライザ６の解析結果を表示するビジュアライザ７を有する。アナライザ６は、ログデータを因果関係のある順に並び替えるログ並べ替え部８と、送信イベントと受信イベントの対応付けを行うストリーム対応付け部９を有する。
【０００６】
はじめに、ユーザープログラム２に埋め込まれているプローブ３が、ユーザープログラム２のログデータの採取を開始し、ログデータを採取すべき関数が終了した時点で中継コレクタ４に送信する。ここで、ログデータは、実行状況をリアルタイムでビジュアルライザ７に表示するためのデータと、イベントの因果関係を表示するためのデータから構成されている。
【０００７】
次に、中継コレクタ４は、蓄積したログデータが一定数に達した時点、又は一定時間毎に、蓄積したログデータをホストマシン１０のコレクタ５に送信する。ホストマシン１０のコレクタ５は、中継コレクタ４から収集したログデータをアナライザ６に送出する。アナライザ６は、到着順序の入れ替わったログデータを、ログ並び替え部８によって因果関係のある順に並べ替える。つづいて、ストリーム対応付け部９がプロセスＩＤ等を基に、取得したログデータをプロセス毎に整理し、受信データ量と、各送信イベントのデータ量を比較して、これらのデータ量が一致するものを対応付ける。この対応付けを行った結果を、ビジュアライザ７が因果関係のある実行順に（すなわち発生したイベント順に）リアルタイムユーザーに表示する。これにより、このデバッグ支援装置は、複数の送信イベントから送られたデータが、どの受信イベントによって受信されたかをユーザーに示すことができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平０５−２２４９８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記載のデバッグ支援装置では、装置がプロセスＩＤ等と組合せて表示すべき信号を、ユーザーが１つ１つ選ばなければならない。また、表示する信号を変更する際には、信号抽出プログラムの変更が必要になる。よって、表示すべき信号の決定や抽出に時間がかかる、すなわち信号の決定や抽出に際して工数がかさむという問題があった。
【００１０】
本発明は、このような問題点を解決するためになされたものであり、ユーザに表示すべき情報を自動抽出できる信号選択方法、デバッグ支援装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明に係る信号選択方法は、１以上のマスタ信号と、前記マスタ信号にそれぞれ関連付けられた従属信号群とを定義したアーキテクチャ信号リストと、前記アーキテクチャ信号リストで定義された信号を利用した処理を行うユーザープログラムとを入力し、前記ユーザープログラムにおいて利用される前記従属信号と、前記アーキテクチャ信号リストにおいて前記従属信号に関連付けられている前記マスタ信号とを抽出する表示信号候補抽出ステップと、前記従属信号及び前記マスタ信号の有効性を定義した有効信号情報を入力し、前記表示信号抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号から、前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号を抽出する表示信号リスト作成ステップとを有するものである。
【００１２】
本発明に係るデバッグ支援装置は、１以上のマスタ信号と、前記マスタ信号にそれぞれ関連付けられた従属信号群とを定義したアーキテクチャ信号リストと、前記アーキテクチャ信号リストで定義された信号を利用した処理を行うユーザープログラムとを入力し、前記ユーザープログラムにおいて利用される前記従属信号と、前記アーキテクチャ信号リストにおいて前記従属信号に関連付けられている前記マスタ信号とを抽出する表示信号候補抽出手段と、前記従属信号及び前記マスタ信号の有効性を定義した有効信号情報を入力し、前記表示信号抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号から、前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号を抽出する表示信号リスト作成手段とを有するものである。
【００１３】
本発明に係るプログラムは、コンピュータに、１以上のマスタ信号と、前記マスタ信号にそれぞれ関連付けられた従属信号群とを定義したアーキテクチャ信号リストと、前記アーキテクチャ信号リストで定義された信号を利用した処理を行うユーザープログラムとを入力し、前記ユーザープログラムにおいて利用される前記従属信号と、前記アーキテクチャ信号リストにおいて前記従属信号に関連付けられている前記マスタ信号とを抽出する表示信号候補抽出ステップと、前記従属信号及び前記マスタ信号の有効性を定義した有効信号情報を入力し、前記表示信号抽出ステップにおいて抽出した前記従属信号及び前記マスタ信号から、前記有効信号情報において有効と定義されている前記従属信号及び前記マスタ信号を抽出する表示信号リスト作成ステップとを実行させるものである。
【発明の効果】
【００１４】
本発明により、ユーザに表示すべき情報を自動抽出できる信号選択方法、デバッグ支援装置及びプログラムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】実施の形態１の構成を示す図である。
【図２】実施の形態１におけるマスタ信号と従属信号との関係を示す図である。
【図３】実施の形態１におけるアーキテクチャ信号リストの例を示す図である。
【図４】実施の形態１におけるシミュレーションデータの例を示す図である。
【図５】実施の形態１におけるユーザープログラムの例を示す図である。
【図６】実施の形態１の処理を示す図である。
【図７】実施の形態１における表示信号候補抽出処理を示す図である。
【図８】実施の形態１におけるシミュレーション解析処理を示す図である。
【図９】実施の形態１における表示信号リスト作成処理を示す図である。
【図１０】実施の形態１における表示信号候補の例を示す図である。
【図１１】実施の形態１における有効信号リストの例を示す図である。
【図１２】実施の形態１における表示信号リストの例を示す図である。
【図１３】実施の形態２の処理を示す図である。
【図１４】実施の形態２における順序関係リスト作成処理を示す図である。
【図１５】実施の形態２におけるシミュレーションデータの例を示す図である。
【図１６】実施の形態２における表示信号候補の例を示す図である。
【図１７】実施の形態２における有効信号リストの例を示す図である。
【図１８】実施の形態２における表示信号リストの例を示す図である。
【図１９】実施の形態２における順序関係リストの例を示す図である。
【図２０】実施の形態３の処理を示す図である。
【図２１】実施の形態３における警告生成処理を示す図である。
【図２２】その他の実施の形態におけるアーキテクチャ信号リストの例を示す図である。
【図２３】その他の実施の形態の概念を示す図である。
【図２４】従来のデバッグ支援装置を示す図である。
【発明を実施するための形態】
【００１６】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【００１７】
＜実施の形態１＞
はじめに、図１を用いて、本発明の実施の形態１にかかるデバッグ支援装置１００、及びデバッグ支援装置１００によるデバッグ支援方法について説明する。
【００１８】
デバッグ支援装置１００は、典型的にはコンピュータにより構成され、中央演算処理装置（ＣＰＵ）、記憶装置（揮発性メモリ、不揮発性メモリ等）、及び入出力装置等を有する。デバッグ支援装置１００は、ＣＰＵが記憶装置に格納された制御プログラムに基づいて各種処理を実行することにより、後述の各種手段を論理的に実現する。
【００１９】
デバッグ支援装置１００は、本発明に係る処理を実施するための論理的手段として、表示信号候補抽出手段１０１及び表示信号リスト作成手段１０２を有する。
【００２０】
デバッグ支援装置１００は、アーキテクチャ信号リスト、シミュレーションデータ（有効信号情報とも称する）、ユーザープログラムの３つを入力し、表示信号リストを出力する処理を行う。
【００２１】
具体的には、まず表示信号候補抽出手段１０１が、アーキテクチャ信号リストとユーザープログラムとを入力し、ユーザープログラムにおいて利用されている信号であって、アーキテクチャ信号リストに定義されている信号を抽出する表示信号候補抽出ステップを実行する。つづいて、表示信号リスト作成手段１０２が、表示信号候補抽出手段１０１が抽出した信号のうち、シミュレーションデータ（有効信号情報）において有効と定義されている信号を抽出する表示信号リスト作成ステップを実行する。
【００２２】
つづいて、図２乃至図５を用いて、デバッグ支援装置１００が使用する信号の例について説明する。なお、本発明が使用可能な信号はここで説明する形式に限定されるものでなく、同様の方法で用いることが可能であれば形式は問わないことに留意されたい。
【００２３】
アーキテクチャ信号リストは、マスタ信号及び従属信号を含む。図２を用いて、このマスタ信号及び従属信号について説明する。
【００２４】
図２は、Ｎ本の従属信号と、これら従属信号に対応するマスタ信号との関係を示している。ここで、従属信号に有効なデータが現れている、すなわち従属信号として何らかの値を含むデータが現れている間は、マスタ信号がＯＮになっている。すなわち、マスタ信号は、従属信号のいずれかに有効なデータが現れているかどうかを示す信号である。よって、例えばある信号のグループにおいて、その中の１つがマスタ信号であり、その他の信号は従属信号であるとすると、このグループに含まれる従属信号のいずれかに有効なデータが現れているかどうかは、ただマスタ信号のみを検査すれば判別することができることになる。
【００２５】
図３に、アーキテクチャ信号リストの一例を示す。なお、アーキテクチャ信号リストは、上述のようにマスタ信号の定義を含んでいることから、マスタ設定つきアーキテクチャ信号リストとも称することがある。
【００２６】
アーキテクチャ信号リストは、ユーザーに対して表示することが可能な全ての信号を、グループに分けて記述したものである。ここで、グループの分け方は問わないが、例えば、シミュレーション対象のプロセッサや装置の構成要素毎に分ける方法がある。以下、この信号のグループを単にモジュールと称する。
【００２７】
図３の例では、Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ、Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００、Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０の３つのモジュールと、これらの各モジュールに所属する信号とがリスト構造で示されている。ここで、これらの信号のうち、各モジュールのマスタ信号であるものを（Ｍ）で示している。例えば、Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅモジュールの信号ＭＣＰ１は、当該モジュールのマスタ信号である。
【００２８】
図４に、シミュレーションデータの一例を示す。図４の例では、シミュレーションデータは、マスタ設定つきアーキテクチャ信号リストの特定の信号に入力されるデータを、サイクル毎に示した形式としている。なお、本実施の形態ではシミュレーションの具体的な方法については特に説明しない。例えば、シミュレーションデータを入力として、デバッグ対象の装置等のシミュレーションをコンピュータ等で行うことにより、出力として、マスタ設定つきアーキテクチャ信号リストに記述された他の信号のサイクル毎の値が得られるものとする。
【００２９】
図５に、ユーザープログラムの一例を示す。図５の例では、表の各行が１つのプログラム要素を示す。１列目はプログラム要素が処理対象とするモジュールを示し、２列目は処理の内容、３列目はその処理のトリガとなる信号名と信号値を示す。例えば、Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００モジュールを対象とする処理においては、当該モジュールの信号Ｓｅｌ＿ＣＰの値が１の場合、Ｙｄａｔａ００＿１  ＝  Ｘｄａｔａ００＿１  ＋  ＧＰＲ００＿１という処理を行うものとする。なお、本実施の形態では、説明の簡略化のため、ユーザープログラムで記述されるモジュール名、信号名と、アーキテクチャ信号リストに記述されたモジュール名、信号とは１対１で対応し、ユーザー又は装置がユーザープログラムを走査すれば、そのユーザープログラムが使用するアーキテクチャ信号リスト内の信号を一意に特定できるものとする。
【００３０】
つづいて、図６乃至図１２を用いて、デバッグ支援装置１００の動作について説明する。
【００３１】
図６に、本実施の形態にかかる処理の概要を示す。本実施の形態にかかる処理は、主に３つの段階を含む。１つめは表示信号候補抽出（Ｓ６０１）であり、２つめはシミュレーション解析（Ｓ６０２）、３つめは表示信号リスト作成（Ｓ６０３）である。
【００３２】
図７を用いて、表示信号候補自動抽出処理（Ｓ６０１）について説明する。当該処理の目的は、ユーザープログラムを分析し、そこに記述されているモジュールや信号を、ユーザーに対してデバッグ信号として表示する候補（表示信号候補Ｘ）として記録することである。
【００３３】
まず、デバッグ支援装置１００は、ユーザープログラムから１行を取得し（Ｓ７０１）、そこに記述された「Ｍｏｄｕｌｅ」列のモジュール名Ｍを取得する（Ｓ７０２）。このＭが表示信号候補Ｘにまだ登録されていない場合（Ｓ７０３）、ＭをＸに追加する（Ｓ７０４）。
【００３４】
次に、デバッグ支援装置１００は、ユーザープログラムの「ＯＰ」列の式を分析する。すなわち、式を１項ずつ調査し、含まれる信号名を取得、分析する。具体的には、ある１項の信号名Ｓを式より取得し（Ｓ７０５）、このＳがＸのＭ内、すなわち、表示信号候補に既に追加されたモジュールＭに区分されるリストに存在するかを確認する（Ｓ７０６）。Ｓが存在しない場合、モジュールＭのマスタ信号ＭＳをアーキテクチャ信号リストより取得する（Ｓ７０７）。ここで、マスタ信号ＭＳは、モジュールＭが決定すればアーキテクチャ信号リストの参照によって一意に判別できるため、ここでは取得方法に関する詳細な説明を省略する。つづいて、取得したマスタ信号ＭＳがＸのＭ内に存在するかを確認し（Ｓ７０８）、存在しない場合、ＭＳをＸのＭ内に追加する（Ｓ７０９）。加えて、ＳをＸのＭ内に追加する（Ｓ７１０）。デバッグ支援装置１００は、これらの処理を「ＯＰ」列の式の全項に対し繰り返す（Ｓ７１１）。
【００３５】
「ＯＰ」列の式の分析が終了したなら、デバッグ支援装置１００は、ユーザープログラムの次の行の分析を行う。全ての列の分析が終了したなら、表示信号候補抽出処理を終了する（Ｓ７１２）。
【００３６】
図８を用いて、シミュレーション解析処理（Ｓ６０２）について説明する。当該処理の目的は、シミュレーションデータを分析し、シミュレーションにおいて有効となる信号名を特定して、有効信号リストＶを作成することである。
【００３７】
まず、デバッグ支援装置１００は、シミュレーションデータファイルを開く。このとき、デバッグ支援装置１００は、この処理の対象となるモジュール名「Ｍ」を取得する必要がある（Ｓ８０１）。本実施の形態では、シミュレーションデータファイルのファイル名がモジュール名「Ｍ」を表すものとする。
【００３８】
次に、デバッグ支援装置１００は、ファイル内のある列ｃの分析を開始する（Ｓ８０２）。まず、この列ｃの信号名Ｓを取得する。本実施の形態では、図４に示すように、信号名Ｓは列の先頭行に記述されているものとする。つづいて、このＳがアーキテクチャ信号リストに存在するか確認する（Ｓ８０３）。存在しない場合、この列は分析対象外とし、次の列に移動する。一方、存在する場合は、信号Ｓが有効であるかどうかを分析する。すなわち、列ｃのある行ｒを取得し（Ｓ８０４）、この行ｒの信号Ｓの値、すなわちＳ（ｒ）の値が有効であるかどうか判定する（Ｓ８０５）。ここで、有効であるかどうかの判定基準は、ユーザーが任意に設定可能であるものとする。Ｓ（ｒ）が有効でない場合、次の行に移動する（Ｓ８０９）。一方、有効である場合は、まず、有効信号リストＶにＭが存在するか確認する（Ｓ８０６）。Ｍが存在しない場合、ＶにＭを追加する（Ｓ８０７）。次に、ＳをＶのＭ内に追加する（Ｓ８０８）。
【００３９】
以上の処理により、Ｓが有効だと判定できたか、又は全行の分析が終了したなら、次の列に移動する（Ｓ８１０）。全列の分析が終了したなら、次のシミュレーションデータファイルの分析を続行する（Ｓ８１１）。デバッグ支援装置１００は、これらの処理を全シミュレーションデータファイルについて行い、有効信号リストＶを完成させる。
【００４０】
図９を用いて、表示信号リスト作成処理（Ｓ６０３）について説明する。当該処理の目的は、ユーザープログラムを分析して作成した表示信号候補Ｘと、シミュレーションデータを分析して作成した有効信号リストＶとを比較して、表示信号リストＺを作成することである。
【００４１】
まず、デバッグ支援装置１００は、Ｘから、あるモジュールＭを取得する（Ｓ９０１）。このＭについて、マスタ信号ＭＳを、アーキテクチャ信号リストを参照して取得し、このＭＳが有効信号リストＶに存在するか確認する（Ｓ９０２）。存在しない場合、次のモジュールに移動する（Ｓ９０８）。一方、存在する場合は、Ｍを表示信号リストＺに追加し、さらに、ＺのＭ内にＭＳを追加する（Ｓ９０３）。
【００４２】
つづいて、デバッグ支援装置１００は、表示信号候補のモジュールＭ内に存在する信号を、表示信号リストＺに追加するかを判断する。具体的には、ＸのＭ内の信号Ｓを１つ取得し（Ｓ９０４）、これがＶに存在するか検査する（Ｓ９０５）。存在する場合、ＺのＭ内にＳを追加する（Ｓ９０６）。この処理をＭの全信号について行う（Ｓ９０７）。終了したなら、次のモジュールに移動する。デバッグ支援装置１００は、全モジュールの処理が終了したなら、表示信号リストＺを出力して処理を終了する（Ｓ９０８）。
【００４３】
以上の処理により、デバッグ支援装置１００は、ユーザープログラムに基づいて、ユーザーに表示すべき信号を自動的に抽出し、表示信号リストＺを得ることができる。この後、デバッグ支援装置１００は、表示信号リストＺに基づいてシミュレーションデータを画面に表示してもよいし、さらに後段の処理を行ってもよい。
【００４４】
つづいて、デバッグ支援装置１００が、実施の形態１にかかる処理を、実際のデータに基づいて実施する例を示す。
【００４５】
なお、本例では、説明の簡略化のため、アーキテクチャ信号リスト、シミュレーションデータ、ユーザープログラムはそれぞれ図３、図４、図５に示されたものを使用することとする。また、ある信号が有効であるか非有効であるかの判定は、信号値が０であるならば非有効とし、０以外の値を持つ場合は有効であるとするルールによって行う。
【００４６】
まず、デバッグ支援装置１００は、表示信号候補抽出処理（Ｓ６０１）（図７）を行う。図５のユーザープログラムは２行である。
【００４７】
デバッグ支援装置１００は、ユーザープログラムの１行目を取得し（Ｓ７０１）、分析を開始する。図５によれば、「Ｍｏｄｕｌｅ」列の１行目のモジュール名は「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」である（Ｓ７０２）。このモジュール名は、表示信号候補Ｘにまだ含まれていないため（Ｓ７０３）、追加する（Ｓ７０４）。
【００４８】
次に、デバッグ支援装置１００は、「ＯＰ」列の１行目の式の各項の分析を行う。まず、最初の項である「Ｙｄａｔａ００＿１」を選択する（Ｓ７０５）。この項がＸのＭ内に存在するか調べ（Ｓ７０６）、存在しないため、追加を行う。ここで、デバッグ支援装置１００はまず、モジュールＭのマスタ信号ＭＳを取得する（Ｓ７０７）。図３のアーキテクチャ信号リストによれば、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」のマスタ信号は「Ｓｅｌ＿ＣＰ００」である。そこで、「Ｓｅｌ＿ＣＰ００」をＭに追加する（Ｓ７０９）。次に、Ｓである「Ｙｄａｔａ００＿１」をＭに追加する（Ｓ７１０）。本項の分析は以上で終了となる。
【００４９】
デバッグ支援装置１００は、次の項「Ｘｄａｔａ００＿１」の分析に移行する（Ｓ７１１）。まず、信号名「Ｘｄａｔａ００＿１」がＭ内に存在するか調べ（Ｓ７０６）、存在しないため、追加を行う。ここで、デバッグ支援装置１００はまず、モジュールＭのマスタ信号ＭＳを取得する（Ｓ７０７）。図３のアーキテクチャ信号リストによれば、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」のマスタ信号は「Ｓｅｌ＿ＣＰ００」である。ここで、「Ｓｅｌ＿ＣＰ００」は既にＭに存在するため（Ｓ７０８）、追加しない。次に、Ｓである「Ｘｄａｔａ００＿１」をＭに追加する（Ｓ７１０）。本項の分析は以上で終了となる。
【００５０】
デバッグ支援装置１００は、次の項「ＧＰＲ００＿１」の分析に移行する（Ｓ７１１）。まず、信号名「ＧＰＲ００＿１」がＭ内に存在するか調べ（Ｓ７０６）、存在しないため、追加を行う。ここで、デバッグ支援装置１００はまず、モジュールＭのマスタ信号ＭＳを取得する（Ｓ７０７）。マスタ信号ＭＳは上述の通り「Ｓｅｌ＿ＣＰ００」である。ここで、「Ｓｅｌ＿ＣＰ００」は既にＭに存在するため（Ｓ７０８）、追加しない。次に、Ｓである「ＧＰＲ００＿１」をＭに追加する（Ｓ７１０）。本項の分析は以上で終了となる。また、本式の分析が以上で終了するため、デバッグ支援装置１００は、ユーザープログラムの次の行の分析に移行する（Ｓ７１２）。
【００５１】
デバッグ支援装置１００は、次の行についても同様に分析を行う。すなわち、ユーザープログラムの２行目を取得し、分析を開始する（Ｓ７０１）。図５によれば、「Ｍｏｄｕｌｅ」列の２行目のモジュール名は「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０」である（Ｓ７０２）。このモジュール名は、表示信号候補Ｘにまだ含まれていないため（Ｓ７０３）、追加する（Ｓ７０４）。
【００５２】
次に、デバッグ支援装置１００は、「ＯＰ」列の２行目の式の各項の分析を行う。まず、最初の項である「Ｙｄａｔａ１０＿１」を選択する（Ｓ７０５）。この項がＸのＭ内に存在するか調べ（Ｓ７０６）、存在しないため、追加を行う。ここで、デバッグ支援装置１００はまず、モジュールＭのマスタ信号ＭＳを取得する（Ｓ７０７）。図３のアーキテクチャ信号リストによれば、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０」のマスタ信号は「Ｓｅｌ＿ＣＰ１０」である。そこで、「Ｓｅｌ＿ＣＰ１０」をＭに追加する（Ｓ７０９）。次に、Ｓである「Ｙｄａｔａ１０＿１」をＭに追加する（Ｓ７１０）。本項の分析は以上で終了となる。
【００５３】
デバッグ支援装置１００は、次の項「Ｘｄａｔａ１０＿１」の分析に移行する（Ｓ７１１）。まず、信号名「Ｘｄａｔａ１０＿１」がＭ内に存在するか調べ（Ｓ７０６）、存在しないため、追加を行う。ここで、デバッグ支援装置１００はまず、モジュールＭのマスタ信号ＭＳを取得する（Ｓ７０７）。図３のアーキテクチャ信号リストによれば、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０」のマスタ信号は「Ｓｅｌ＿ＣＰ１０」である。ここで、「Ｓｅｌ＿ＣＰ１０」は既にＭに存在するため（Ｓ７０８）、追加しない。次に、Ｓである「Ｘｄａｔａ１０＿１」をＭに追加する（Ｓ７１０）。本項の分析は以上で終了となる。
【００５４】
デバッグ支援装置１００は、次の項「Ｘｄａｔａ１０＿２」の分析に移行する（Ｓ７１１）。まず、信号名「Ｘｄａｔａ１０＿２」がＭ内に存在するか調べ（Ｓ７０６）、存在しないため、追加を行う。ここで、デバッグ支援装置１００はまず、モジュールＭのマスタ信号ＭＳを取得する（Ｓ７０７）。マスタ信号ＭＳは上述の通り「Ｓｅｌ＿ＣＰ１０」である。ここで、「Ｓｅｌ＿ＣＰ１０」は既にＭに存在するため（Ｓ７０８）、追加しない。次に、Ｓである「Ｘｄａｔａ１０＿２」をＭに追加する（Ｓ７１０）。本項の分析は以上で終了となる。全ての式の分析が以上で終了したため、デバッグ支援装置１００は、表示信号候補抽出処理を終了する（Ｓ７１２）。
【００５５】
表示信号候補抽出処理の結果、図１０のような表示信号候補Ｘが作成される。
【００５６】
つづいて、デバッグ支援装置１００は、シミュレーション解析処理（Ｓ６０２）（図８）を行って有効信号リストＶを作成する。まず、デバッグ支援装置１００は、シミュレーションデータファイルを１つ選択する。ここでシミュレーションデータファイルは、図４に示すように２つあるものとする。デバッグ支援装置１００は、まずＭｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅファイルより分析を開始するものとする。デバッグ支援装置１００は、はじめにモジュール名を取得する（Ｓ８０１）。上述の通り、本実施の形態ではモジュール名はファイル名から取得されるため、モジュール名は「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」となる。
【００５７】
デバッグ支援装置１００は、シミュレーションデータの各列の分析を開始する。まず、第１列目の分析を行うため、信号名を取得する（Ｓ８０２）。第１列目の信号名は、上述のように、１行目の値「Ｃｙｃｌｅ」である。これを、アーキテクチャ信号リストに存在するか検索すると（Ｓ８０３）、存在しないことが分かる。そこで、デバッグ支援装置１００はこの列の分析を終了し、次の列の分析に移行する（Ｓ８１０）。
【００５８】
次の列では、信号名は「ＭＣＰ１」である（Ｓ８０２）。アーキテクチャ信号リストを検索すると、この信号名が存在することが分かるため（Ｓ８０３）、デバッグ支援装置１００は本列の分析を開始する（Ｓ８０４）。
【００５９】
まず、デバッグ支援装置１００は、信号名の次の行、すなわち０Ｃｙｃｌｅ目の信号値を取得する。この信号値は０であるため、上述のルールにより、信号Ｓは非有効である（Ｓ８０５）。よって、デバッグ支援装置１００は、次の行の分析に移る（Ｓ８０９）。
【００６０】
次の行では、信号値が１である。よって、デバッグ支援装置１００はこの信号が有効であると判定し（Ｓ８０５）、有効信号リストＶへの追加を行う。デバッグ支援装置１００はまず、有効信号リストＶに本信号が属する「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」が存在するかどうか調べ（Ｓ８０６）、存在しないため、「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」をＶに追加する（Ｓ８０７）。次に、Ｖの「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」内に信号「ＭＣＰ１」を追加する（Ｓ８０８）。以上で、本列の分析は終了となる（Ｓ８１０）。
【００６１】
デバッグ支援装置１００は、次の列についても同様に分析を行う。次の列では、信号名は「ＭＩＤ１」である（Ｓ８０２）。アーキテクチャ信号リストを検索すると、この信号名が存在することが分かるため（Ｓ８０３）、デバッグ支援装置１００は本列の分析を開始する（Ｓ８０４）。
【００６２】
デバッグ支援装置１００は、信号名の次の行、すなわち０Ｃｙｃｌｅ目の信号値を取得する。この信号値は１．８である。よって、デバッグ支援装置１００はこの信号が有効であると判定し（Ｓ８０５）、有効信号リストＶへの追加を行う。デバッグ支援装置１００はまず、有効信号リストＶに本信号が属する「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」が存在するかどうか調べる（Ｓ８０６）。ここで、「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」は既に存在するため、追加しない。次に、Ｖの「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」内に信号「ＭＩＤ１」を追加する（Ｓ８０８）。以上で、本列の分析は終了となる。また、全ての列の分析が終了したため（Ｓ８１０）、デバッグ支援装置１００は、次のシミュレーションデータファイルの分析に移行する（Ｓ８１１）。
【００６３】
デバッグ支援装置１００は、次のシミュレーションデータファイルのファイル名は「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」より、モジュール名「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」を取得する（Ｓ８０１）。
【００６４】
デバッグ支援装置１００は、シミュレーションデータの各列の分析を開始する。まず、第１列目の分析を行うため（Ｓ８０２）、信号名を取得する。第１列目の信号名は、上述のように、１行目の値「Ｃｙｃｌｅ」である。これを、アーキテクチャ信号リストに存在するか検索すると（Ｓ８０３）、存在しないことが分かる。そこで、デバッグ支援装置１００はこの列の分析を終了し、次の列の分析に移行する（Ｓ８１０）。
【００６５】
次の列では（Ｓ８０２）、信号名は「Ｓｅｌ＿ＣＰ００」である。アーキテクチャ信号リストを検索すると、この信号名が存在することが分かるため（Ｓ８０３）、デバッグ支援装置１００は本列の分析を開始する。
【００６６】
まず、デバッグ支援装置１００は、信号名の次の行、すなわち０Ｃｙｃｌｅ目の信号値を取得する（Ｓ８０４）。この信号値は０であるため、上述のルールにより、信号Ｓは非有効である（Ｓ８０５）。よって、デバッグ支援装置１００は、次の行の分析に移る（Ｓ８０９）。
【００６７】
次の行では、信号値が０である（Ｓ８０４）。よって、デバッグ支援装置１００はこの信号が非有効であると判定し（Ｓ８０５）、次の行の分析に移る（Ｓ８０９）。
【００６８】
次の行では、信号値が１である（Ｓ８０４）。よって、デバッグ支援装置１００はこの信号が有効であると判定し（Ｓ８０５）、有効信号リストＶへの追加を行う。デバッグ支援装置１００はまず、有効信号リストＶに本信号が属する「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」が存在するかどうか調べ（Ｓ８０６）、存在しないため、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」をＶに追加する（Ｓ８０７）。次に、Ｖの「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」内に信号「Ｓｅｌ＿ＣＰ００」を追加する（Ｓ８０８）。以上で、本列の分析は終了となる（Ｓ８１０）。
【００６９】
デバッグ支援装置１００は、次の列についても同様に分析を行う。次の列では、信号名は「Ｘｄａｔａ００＿１」である（Ｓ８０２）。アーキテクチャ信号リストを検索すると、この信号名が存在することが分かるため（Ｓ８０３）、デバッグ支援装置１００は本列の分析を開始する（Ｓ８０４）。
【００７０】
デバッグ支援装置１００は、信号名の次の行、すなわち０Ｃｙｃｌｅ目の信号値を取得する。この信号値は１．８である。よって、デバッグ支援装置１００はこの信号が有効であると判定し（Ｓ８０５）、有効信号リストＶへの追加を行う。デバッグ支援装置１００はまず、有効信号リストＶに本信号が属する「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」が存在するかどうか調べる（Ｓ８０６）。ここで、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」は既に存在するため、追加しない。次に、Ｖの「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」内に信号「Ｘｄａｔａ００＿１」を追加する（Ｓ８０８）。以上で、本列の分析は終了となる（Ｓ８１０）。
【００７１】
デバッグ支援装置１００は、次の列についても同様に分析を行う。次の列では、信号名は「ＧＰＲ００＿１」である（Ｓ８０２）。アーキテクチャ信号リストを検索すると、この信号名が存在することが分かるため（Ｓ８０３）、デバッグ支援装置１００は本列の分析を開始する（Ｓ８０４）。
【００７２】
デバッグ支援装置１００は、信号名の次の行、すなわち０Ｃｙｃｌｅ目の信号値を取得する。この信号値は０．２である。よって、デバッグ支援装置１００はこの信号が有効であると判定し（Ｓ８０５）、有効信号リストＶへの追加を行う。デバッグ支援装置１００はまず、有効信号リストＶに本信号が属する「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」が存在するかどうか調べる（Ｓ８０６）。ここで、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」は既に存在するため、追加しない。次に、Ｖの「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」内に信号「ＧＰＲ００＿１」を追加する（Ｓ８０８）。以上で、本列の分析は終了となる（Ｓ８１０）。
【００７３】
デバッグ支援装置１００は、次の列についても同様に分析を行う。次の列では、信号名は「Ｙｄａｔａ００＿１」である（Ｓ８０２）。アーキテクチャ信号リストを検索すると、この信号名が存在することが分かるため（Ｓ８０３）、デバッグ支援装置１００は本列の分析を開始する（Ｓ８０４）。
【００７４】
デバッグ支援装置１００は、信号名の次の行、すなわち０Ｃｙｃｌｅ目の信号値を取得する。この信号値は２．０である。よって、デバッグ支援装置１００はこの信号が有効であると判定し（Ｓ８０５）、有効信号リストＶへの追加を行う。デバッグ支援装置１００はまず、有効信号リストＶに本信号が属する「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」が存在するかどうか調べる（Ｓ８０６）。ここで、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」は既に存在するため、追加しない。次に、Ｖの「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」内に信号「Ｙｄａｔａ００＿１」を追加する（Ｓ８０８）。以上で、本列の分析は終了となる。全ての列の分析が以上で終了したため（Ｓ８１０）、デバッグ支援装置１００は、シミュレーション解析処理を終了する（Ｓ８１１）。
【００７５】
シミュレーション解析処理の結果、図１１のような有効信号リストＶが作成される。
【００７６】
つづいて、デバッグ支援装置１００は、表示信号リスト作成処理（Ｓ６０２）（図９）を行って表示信号リストＺを作成する。まず、デバッグ支援装置１００は、表示候補信号Ｘからモジュールを１つ取得する。図１０に示すように、Ｘには、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」と「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０」の２つのモジュールが存在する。
【００７７】
デバッグ支援装置１００はまず、先頭の「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」の分析を行う（Ｓ９０１）。デバッグ支援装置１００は、このモジュールのマスタ信号が有効信号リストＶに存在するか確認する（Ｓ９０２）。すると、図１１に示すように、有効信号リストＶにマスタ信号「Ｓｅｌ＿ＣＰ００」が存在することが分かる。そこで、まずモジュール「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」を表示信号リストＺに登録し、ついで追加したモジュール内にマスタ信号「Ｓｅｌ＿ＣＰ００」を追加する（Ｓ９０３）。
【００７８】
次に、デバッグ支援装置１００は、表示信号候補Ｘのモジュール内に存在する信号を１つずつ分析する（Ｓ９０４）。デバッグ支援装置１００はまず、「Ｘｄａｔａ００＿１」が有効信号リストＶに存在するか確認する（Ｓ９０５）。存在することが分かると、この信号をＺの「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」モジュール内に追加する。（Ｓ９０６）同様に、「Ｙｄａｔａ００＿１」、「ＧＰＲ００＿１」も有効信号リストＶに存在するため、これもＺに追加する（Ｓ９０７）。以上で、表示信号候補Ｘの「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」モジュールの分析は終了し（Ｓ９０８）、デバッグ支援装置１００は表示信号候補Ｘの次のモジュールの分析に移行する。
【００７９】
表示信号候補Ｘの次のモジュールは「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ  １０」である（Ｓ９０１）。このモジュールのマスタ信号は「Ｓｅｌ＿ＣＰ１０」であるが、この信号は有効信号リストＶに記載されていない（Ｓ９０２）。そこで、このモジュールは表示信号リストには追加しない。
【００８０】
以上で表示信号候補Ｘの全てのモジュールの分析が終了する（Ｓ９０８）。この結果、図１２に示す表示信号リストＺが作成される。
【００８１】
本実施の形態では、デバッグ支援装置１００が、ユーザープログラムとシミュレーションデータに基づき、表示すべき信号を自動で抽出する。これにより、ユーザーが表示すべき信号を手作業で抽出する必要がなくなる。また、ユーザープログラム等の変更に応じ、表示すべき信号も変更したい場合でも、ログプログラムや分析プログラムの変更の必要がない。よって、デバッグ工数を削減することができる。
【００８２】
＜実施の形態２＞
特許文献１及び実施の形態１では、一度表示する信号を決定した後、ソート等を行うと、ソートのキーとなる信号が表示する信号が変更されるため、デバッグ環境の再構築等を行わなければならず、時間がかかるという問題がある。そこで、実施の形態２では、この問題を解決する手法を説明する。なお、以下の説明において用いられる用語及び構成要素等は、原則として実施の形態１と同じものを示すものとする。
【００８３】
図１３に、実施の形態２にかかる処理の内容を示す。実施の形態２に係る処理は、４つのステップで構成される。
【００８４】
１つめは表示信号候補抽出処理（Ｓ６０１）であり、２つめはシミュレーション解析処理（Ｓ６０２）であり、３つめは表示信号リスト作成処理（Ｓ６０３）であり、４つめは順序関係リスト作成処理（Ｓ１３０４）である。ここで、１つめ乃至３つめの処理の内容は実施の形態１と同様であるため、説明を省略する。
【００８５】
図１４を用いて、４つめの順序関係リスト生成処理（Ｓ１３０４）について説明する。本実施の形態では、ｖ＿ｔｉｍｅ（信号）関数と、ｉｎｓｅｒｔ（リスト、位置、モジュール）の２つの関数を使用する。
【００８６】
ｖ＿ｔｉｍｅ関数は、信号を引数とし、その信号がはじめて有効となったサイクル値を取得する関数である。なお、実装時には、信号名以外に、ターゲットとするシミュレーションデータファイル名等を引数として持つべきであるが、本実施の形態では説明の簡略化のため、省略している。
【００８７】
ｉｎｓｅｒｔ関数は、第１引数のリストの、第２引数の位置に、モジュール名を追加する処理を行う関数である。このとき、第２引数で指定された位置及びそれ以降に既に登録されていたモジュール名は、全て現在の位置から＋１の位置に移動される。なお、リストの先頭は０ではなく、１であるとする。
【００８８】
デバッグ支援装置１００は、まず表示信号リストＺからモジュールＭＺを１つ取得する（Ｓ１４０１）。次に、ＭＺのマスタ信号ＭＳ＿Ｚを取得する（Ｓ１４０２）。ついで、新たな変数Ｐを用意し、ここに１を登録する（Ｓ１４０３）。
【００８９】
つづいて、デバッグ支援装置１００は、順序関係リストＲのモジュール分析ループ処理を行う。デバッグ支援装置１００はまず、ＲからモジュールＭＲを１つ取得する（Ｓ１４０４）。なお、Ｒにモジュールが存在しない場合は、本ループを終了する（Ｓ１４０８）。Ｒが存在する場合、デバッグ支援装置１００はまず、モジュールＭＲのマスタ信号ＭＳ＿Ｒを取得する（Ｓ１４０５）。デバッグ支援装置１００はここで、ｖ＿ｔｉｍｅ（ＭＳ＿Ｒ）とｖ＿ｔｉｍｅ（ＭＳ＿Ｚ）とを比較する（Ｓ１４０６）。これは、ＭＳ＿Ｒが初めて有効となるサイクル値と、ＭＳ＿Ｚが初めて有効となるサイクル値を比較することを意味する。このとき、もしｖ＿ｔｉｍｅ（ＭＳ＿Ｒ）  ＜  ｖ＿ｔｉｍｅ（ＭＳ＿Ｚ）である場合には、Ｐ＝Ｐ＋１とし（Ｓ１４０７）、Ｒの次のモジュールの分析に移行する。Ｒの全てのモジュールについて分析が終了したなら（Ｓ１４０８）、デバッグ支援装置１００はＲのＰの位置に、ＭＺを、ｉｎｓｅｒｔ（Ｒ，Ｐ，ＭＺ）により登録する（Ｓ１４０９）。デバッグ支援装置１００はＺの全てのモジュールについて同様の処理を繰り返し、全モジュールの分析が終了したなら、処理を終了する（Ｓ１４１０）。
【００９０】
以上の処理により、マスタ信号が有効となる順にモジュール名を並べた順序関係リストＲが作成される。この後、デバッグ支援装置１００は、ユーザーは順序関係リストに登録されたモジュール順に、これに属する信号の名前やシミュレーションデータを画面に表示してもよいし、後段の処理を行ってもよい。
【００９１】
つづいて、デバッグ支援装置１００が、実施の形態２にかかる処理を、実際のデータに基づいて実施する例を示す。なお、本例では、シミュレーションデータを除いては、全て実施の形態１と同じデータを用いるものとする。
【００９２】
図１５に、本例で使用するシミュレーションデータを示す。本例では、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ  １０」の２つシミュレーションデータファイルが使用される。
【００９３】
まず、デバッグ支援装置１００は、図１３に示す表示信号候補抽出処理、シミュレーション解析処理、及び表示信号リスト作成処理を実行する。これらの処理の内容は、使用されるシミュレーションデータが異なることを除いては実施の形態１と差異がないため、ここでは説明を省略する。これら３つ処理により作成された、表示信号候補、有効信号リスト、表示信号リストを、それぞれ図１６、図１７、及び図１８に示す。
【００９４】
次に、デバッグ支援装置１００は、順序関係リスト作成処理を実行する。デバッグ支援装置１００はまず、表示信号リストＺからモジュールＭＺを１つ取得する。ここでは、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」を取得したとする（Ｓ１４０１）。次に、本モジュールのマスタ信号を取得する。ここで、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」のマスタ信号は「Ｓｅｌ＿ＣＰ００」であるので、これを取得する（Ｓ１４０２）。次に、変数Ｐ＝１をセットし（Ｓ１４０３）、順序関係リストＲを用いた分析を開始する。ここで、現時点では順序関係リストＲは空であるため、Ｒに関する最初のループ処理を抜け（Ｓ１４０８）、図１４に示すｉｎｓｅｒｔコマンドを実行する（Ｓ１４０９）。ここで、Ｐ＝１であるため、ｉｎｓｅｒｔコマンドの実行により、モジュールＭＺ、すなわち「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」が順序関係リストＲの１番目に挿入される。
【００９５】
表示信号リストにまだモジュールが残っているため、デバッグ支援装置１００はループ先頭に処理を移し、モジュールＭＺを取得する。ここで、取得されるモジュールは「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０」である（Ｓ１４０１）。次に、本モジュールのマスタ信号を取得する。ここで、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」のマスタ信号は「Ｓｅｌ＿ＣＰ１０」であるので、これを取得する（Ｓ１４０２）。次に、変数Ｐ＝１をセットし（Ｓ１４０３）、順序関係リストＲを用いた分析を開始する。
【００９６】
デバッグ支援装置１００はまず、順序関係リストのＰ番、すなわち１番モジュールを取得する。ここでは、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」が取得される（Ｓ１４０４）。次に、このマスタ信号「Ｓｅｌ＿ＣＰ００」を取得する（Ｓ１４０５）。ついで、デバッグ支援装置１００はｖ＿ｔｉｍｅ関数を用いて、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」のマスタ信号「Ｓｅｌ＿ＣＰ００」と、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０」のマスタ信号「Ｓｅｌ＿ＣＰ１０」が、それぞれ最初に有効となる時間を取得する。ここで、図１５のシミュレーションデータによれば、「Ｓｅｌ＿ＣＰ００」が有効となるのは１サイクル目、「Ｓｅｌ＿ＣＰ１０」が有効となるのは２サイクル目である。そこで、ｖ＿ｔｉｍｅ（ＭＳ＿Ｒ  ：  Ｓｅｌ＿ＣＰ００）  ＜  ｖ＿ｔｉｍｅ（ＭＳ＿Ｚ  ：  Ｓｅｌ＿ＣＰ１０）の関係が成り立つため（Ｓ１４０６）、デバッグ支援装置１００はループ内部を実行し、Ｐ＝Ｐ＋１とする（Ｓ１４０７）。なお、順序関係リストＲには、既に分析を行った「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」しか登録されていないため、デバッグ支援装置１００はループ処理を抜け（Ｓ１４０８）、ｉｎｓｅｒｔコマンドに移る（Ｓ１４０９）。
【００９７】
ループを抜けた後のｉｎｓｅｒｔコマンドでは、Ｐ＝２であるため、「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０」が順序関係リストの２番目に登録される。以上で表示信号リストの全モジュールの分析が終了し、デバッグ支援装置１００は順序関係リスト作成処理を終了する（Ｓ１４１０）。結果として、図１９に示す順序関係リストＲが作成される。
【００９８】
本実施の形態では、デバッグ支援装置１００は、マスタ信号が有効となる時刻の順に信号の出力順をソートする。これにより、デバッグ環境の再構築等を行うことなく、少ない工数でデバッグを行うことができる。
【００９９】
＜実施の形態３＞
特許文献１及び実施の形態１ではさらに、ユーザープログラムでは規定されているのに、何らかのバグで実行されない処理がある、すなわち利用されない信号がある場合、こうした状況に対応する表示方法がなく、デバッグを難しくしているという問題がある。本実施形態では、このようなバグに対応するための表示方法について説明する。なお、以下の説明において用いられる用語及び構成要素等は、原則として実施の形態１と同じものを示すものとする。
【０１００】
図２０に、実施の形態３にかかる処理の内容を示す。実施の形態３に係る処理は、４つのステップで構成される。
【０１０１】
１つめは表示信号候補抽出処理（Ｓ６０１）であり、２つめはシミュレーション解析処理（Ｓ６０２）であり、３つめは表示信号リスト作成処理（Ｓ６０３）であり、４つめは警告生成処理（Ｓ２００４）である。ここで、１つめ乃至３つめの処理の内容は実施の形態１と同様であるため、説明を省略する。
【０１０２】
図２１を用いて、４つめの警告生成処理（Ｓ２００４）について説明する。本実施の形態では警告生成１と警告生成２とが実行可能である。警告生成１は、ユーザープログラムには定義されているのに、表示信号リストには定義されていない、すなわちユーザーが使用すると宣言しているにも関わらず、シミュレーションでなんら有効な値が現れなかった信号を判定し、警告を生成するものである。一方、警告生成２は、シミュレーション解析においては有効と判定され、有効信号リストに記述があるのに表示候補信号には存在しない、すなわちユーザープログラムでは使用が宣言されていないにも関わらず、シミュレーションにおいて何らかの有効な入力が行われた信号を判定し、警告を生成するものである。
【０１０３】
警告生成１の処理について説明する。デバッグ支援装置１００は、表示候補信号Ｘの全モジュール（Ｓ２１０１）と全信号（Ｓ２１０２）について、これらが有効信号リストＶに存在するかを１つずつ確認する（Ｓ２１０３）。ここで、存在しないことが判明したモジュール又は信号については、例えば「ユーザープログラムで定義されていますが、シミュレーションでは検出されませんでした」といった警告を生成する（Ｓ２１０４）。
【０１０４】
警告生成２の処理について説明する。デバッグ支援装置１００は、警告生成１の場合とは逆に、有効信号リストＶに存在する全モジュール（Ｓ２１０７）と全信号（Ｓ２１０８）について、これらが表示信号候補Ｘに存在するか１つずつ確認する（Ｓ２１０９）。ここで、存在しないことが判明したモジュール又は信号については、例えば「シミュレーションにおいて有効な入力が存在しますが、ユーザープログラムにおいては定義されていません」といった警告を生成する（Ｓ２１１０）。
【０１０５】
つづいて、デバッグ支援装置１００が、実施の形態３にかかる処理を、実際のデータに基づいて実施する例を示す。なお、本例では、シミュレーションデータを除いては、全て実施の形態１と同じデータを用いるものとする。
【０１０６】
まず、デバッグ支援装置１００は、図２０に示す表示信号候補抽出処理、シミュレーション解析処理、及び表示信号リスト作成処理を実行する。これらの処理の内容は、実施の形態１と差異がないため、ここでは説明を省略する。これら３つ処理により作成された、表示信号候補Ｘ、有効信号リストＶを、それぞれ図１０及び図１１に示す。
【０１０７】
次に、デバッグ支援装置１００は、警告生成１の処理を実行する（Ｓ２１０１乃至Ｓ２１０６）。デバッグ支援装置１００はまず、表示信号候補Ｘに存在する各モジュール（Ｓ２１０１）と信号（Ｓ２１０２）が、有効信号リストＶに存在するか分析する（Ｓ２１０３）。その結果、表示信号候補Ｘの「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ１０」に存在する信号が有効信号リストＶにはなく、すなわち、シミュレーションにおいて、有効な信号が入力されなかったことが分かる。そこで、「ユーザープログラムで定義されていますが、シミュレーションでは検出されませんでした」といった旨の警告を行う（Ｓ２１０４）。
【０１０８】
次に、デバッグ支援装置１００は、警告生成２の処理を実行する（Ｓ２１０７乃至Ｓ２１１２）。デバッグ支援装置１００は、有効信号リストＶに存在する信号（Ｓ２１０７乃至Ｓ２１０８）が、表示信号候補Ｘに存在するか確認する（Ｓ２１０９）。その結果、有効信号リストＶの「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」とこれに属する信号が表示信号候補Ｘに存在しないことが分かる。そのため、「Ｍｅｍｏｒｙ＿Ｉｎｔｅｒｆａｃｅ」には有効な信号が入ってきているが、これに対応するユーザープログラムが存在しないことが分かる。そこで、「シミュレーションにおいて有効な入力が存在しますが、ユーザープログラムにおいては定義されていません」といった旨の警告を行う（Ｓ２１１０）。
【０１０９】
本実施の形態では、表示信号候補Ｘと有効信号リストＶとを比較し、齟齬がある場合に警告を生成する。これにより、プログラムでは規定されているのに何らかのバグでそれが実行されない場合や、逆に、プログラムで規定されていないのに信号の入力があった場合に、これを検出することができ、デバッグ工数の削減に寄与することができる。また、ユーザーは、プログラムのバグを容易に発見することができる。
【０１１０】
＜その他の実施の形態＞
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【０１１１】
例えばマスタ信号と従属信号の関係については、あるモジュール全体が、別のモジュールのマスタ信号に従属することが考えられる。このような場合のアーキテクチャ信号リストの例を図２２に示す。図２２では、あるモジュールにおいて、モジュール全体が別のモジュールのマスタ信号に従属する場合には、グループ名の後に（Ｍ：本モジュールのマスタとなる信号が属するモジュール名）で、その旨を記述している。例えば、「ＧＰＲ＿ｉｎ＿ＰＮ００」モジュールは、このモジュール全体が「Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００」の「Ｓｅｌ＿ＣＰ」に従属するが、これを「（Ｍ：Ｐｒｏｃｅｓｓｉｎｇ  Ｎｏｄｅ００）」として記述している。このような場合、実施の形態において示した処理においては、マスタ信号を直接取得するのではなく、マスタとなるグループのマスタ信号を取得するように処理を行う必要がある。
【０１１２】
また、ユーザープログラムにおいて、上述の実施の形態で示したよりも複雑なプログラム方式を用いる場合があり得る。例えば、使用する信号を直接記述するのではなく、より高位の言語や抽象的な表現を用いて処理を記述する方式がある。この場合は、当該処理を実行するにあたり、アーキテクチャ内の使用する信号を、上記の抽象的表現や高位の表現がどの信号を用いるかを記したリストやルールブックを用いて判別を行うことが考えられる。または、コンパイラ等が、上記の抽象的表現や高位の表現から、上述の実施の形態で用いたような、使用する信号が直接分かる表現にした記述を生成しても良い。
【０１１３】
また、上述の実施の形態ではシミュレーションデータファイル名がそのままモジュール名を示すものとしたが、これに限定される必要はない。また、例えば、１つのシミュレーションデータファイルの中に複数のモジュールに関するシミュレーションデータが入っていてもよい。その場合は、各列の信号分析毎にモジュール名を取得し、有効信号リストにモジュール名とこれに関するマスタ信号が格納されているかを調査するように処理を行えばよい。
【０１１４】
上記以外に関しても、アーキテクチャ信号リスト、ユーザープログラム、及びシミュレーションデータについては、上述の実施の形態にて述べた処理フローを実施できるものであれば、形式は問わない。また、処理フローについても、あるフローと別のフローを組合わせたり、もしくは順番を入れ替えるなどしてもよく、結果として得られるデータや、達成される目的が同じであれば、方式については詳細を問わない。
【０１１５】
また、上述の実施の形態では、本発明を主にハードウェアにより実現されるものとして説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。（図２３）
【符号の説明】
【０１１６】
１００  デバッグ支援装置
１０１  表示信号候補抽出手段
１０２  表示信号リスト作成手段
【図１】
2013254449.tif 000003
【図２】
2013254449.tif 000004
【図３】
2013254449.tif 000005
【図４】
2013254449.tif 000006
【図５】
2013254449.tif 000007
【図６】
2013254449.tif 000008
【図７】
2013254449.tif 000009
【図８】
2013254449.tif 000010
【図９】
2013254449.tif 000011
【図１０】
2013254449.tif 000012
【図１１】
2013254449.tif 000013
【図１２】
2013254449.tif 000014
【図１３】
2013254449.tif 000015
【図１４】
2013254449.tif 000016
【図１５】
2013254449.tif 000017
【図１６】
2013254449.tif 000018
【図１７】
2013254449.tif 000019
【図１８】
2013254449.tif 000020
【図１９】
2013254449.tif 000021
【図２０】
2013254449.tif 000022
【図２１】
2013254449.tif 000023
【図２２】
2013254449.tif 000024
【図２３】
2013254449.tif 000025
【図２４】
2013254449.tif 000026