(57)【要約】【課題】デバッグ効率を向上させることが可能なデバッグ支援装置を提供する。【解決手段】ソースコードが与えられたコンパイル装置１０から出力された命令を与えられてデコードし、デコード結果を出力するデコード部２２と、コンパイル装置１０から出力されたデバッグ情報と、デコード部２２から出力されたデコード結果とを与えられ、少なくとも、デコード後の各命令とソースコードにおける位置との対応関係を表示する表示部２３とを備えることを特徴とする。【選択図】図１
2008269529.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードが与えられたコンパイル装置から出力された命令を与えられてデコードし、デコード結果を出力するデコード部と、
前記コンパイル装置から出力されたデバッグ情報と、前記デコード部から出力された前記デコード結果とを与えられ、少なくとも、前記デコード後の各命令と前記ソースコードにおける位置との対応関係を表示する表示部と、
を備えることを特徴とするデバッグ支援装置。
【請求項２】
ソースコードが与えられたコンパイル装置から出力された命令を与えられてデコードし、デコード結果を出力するデコード部と、
前記コンパイル装置から出力されたイタレーション情報を与えられて解析し、前記デコード後の各命令とそれぞれ属するイタレーションとの対応関係を示すイタレーション解析結果を出力するイタレーション解析部と、
前記コンパイル装置から出力されたデバッグ情報と、前記デコード部から出力された前記デコード結果と、前記イタレーション解析部から出力された前記イタレーション解析結果とを与えられ、少なくとも、前記デコード後の各命令と前記ソースコードにおける位置との対応関係と、前記デコード後の各命令とそれぞれ属するイタレーションとの対応関係とを表示する表示部と、
を備えることを特徴とするデバッグ支援装置。
【請求項３】
前記デコード部は、さらに、前記デコード後の各命令がいずれのプロセッサにより実行されるか、あるいはいずれのプロセッサが有するいずれのスロットで実行されるかを示す情報を含めて前記デコード結果を出力し、
前記表示部は、さらに、前記デコード後の各命令と実行するプロセッサあるいはプロセッサのスロットとの対応関係を表示することを特徴とする請求項１又は２記載のデバッグ支援装置。
【請求項４】
ソースコードが与えられたコンパイル装置から出力された命令を与えられてデコードし、デコード結果を出力するデコード部と、
前記コンパイル装置から出力されたイタレーション情報を与えられて解析し、前記デコード後の各命令とそれぞれ属するイタレーションとの対応関係を示すイタレーション解析結果を出力するイタレーション解析部と、
前記コンパイル装置から出力された、各命令がいずれのプロセッサにより実行されるか、あるいはいずれのプロセッサが有するいずれのスロットで実行されるかを示す情報を与えられて解析し、前記デコード後の各命令がいずれのプロセッサにより実行されるか、あるいはいずれのプロセッサが有するいずれのスロットで実行されるかを示すプロセッサ／スロット解析結果を出力するプロセッサ／スロット解析部と、
前記コンパイル装置から出力されたデバッグ情報と、前記デコード部から出力された前記デコード結果と、前記イタレーション解析部から出力された前記イタレーション解析結果と、前記プロセッサ／スロット解析結果とを与えられ、少なくとも、前記デコード後の各命令と前記ソースコードにおける位置との対応関係、前記デコード後の各命令とそれぞれ属するイタレーションとの対応関係、前記デコード後の各命令と実行するプロセッサあるいはプロセッサのスロットとの対応関係を表示する表示部と、
を備えることを特徴とするデバッグ支援装置。
【請求項５】
コマンドを与えられてコマンドを実行し、コマンド実行結果を出力するコマンド実行部をさらに備え、
前記表示部は、さらに、前記コマンド実行結果を表示することを特徴とする請求項１乃至４のいずれかに記載のデバッグ支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ支援装置に関する。
【背景技術】
【０００２】
依存関係にない複数の命令を１つの命令としてまとめて同時に実行し、プログラムを高速化する技術にＶＬＩＷがある。また、ＶＬＩＷの効果をより大きく引き出すための技術として、ループアンローリング（loop unrolling）、ソフトウェアパイプライニングがある。
【０００３】
これらの技術が適用されたコンパイル装置により変換されたソースプログラムのデバッグ支援を行う装置において、従来は以下のような問題があった。
１）  １つにまとめられた命令群に含まれた各命令と、ソースコード上の行番号とを対応付けて表示することができなかった。このため、各命令とそれぞれの行番号との正確な対応付けができずデバッグ効率が低いという問題があった。
２）  １つにまとめられた命令群に含まれた各命令が、マルチプロセッサにおけるいずれのプロセッサで実行されか、あるいは複数スロットを有するプロセッサのいずれのスロットで実行されるかを表示することができなかった。このため、各命令とプロセッサあるいはスロットとの対応関係を明らかにすることができず、デバッグ効率が低かった。
３）  イタレーション（Iteration）情報を解析する機構が存在しなかった。このため、命令群に含まれる各命令とイタレーションとの対応関係を表示することができず、やはりデバッグ効率が低かった。
【０００４】
以上のような問題が存在することにより、従来のデバッグ支援装置ではデバッグ効率の低下を免れないという問題があった。
【特許文献１】特開２００３−１４０９２０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、上記問題１〜３の少なくともいずれか１つを解決することで、デバッグ効率を向上させることが可能なデバッグ支援装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一態様によるデバッグ支援装置は、ソースコードが与えられたコンパイル装置から出力された命令を与えられてデコードし、デコード結果を出力するデコード部と、前記コンパイル装置から出力されたデバッグ情報と、前記デコード部から出力された前記デコード結果とを与えられ、少なくとも、前記デコード後の各命令と前記ソースコードにおける位置との対応関係を表示する表示部とを備えることを特徴とする。
【０００７】
また、本発明の一態様によるデバッグ支援装置は、ソースコードが与えられたコンパイル装置から出力された命令を与えられてデコードし、デコード結果を出力するデコード部と、前記コンパイル装置から出力されたイタレーション情報を与えられて解析し、前記デコード後の各命令とそれぞれ属するイタレーションとの対応関係を示すイタレーション解析結果を出力するイタレーション解析部と、前記コンパイル装置から出力されたデバッグ情報と、前記デコード部から出力された前記デコード結果と、前記イタレーション解析部から出力された前記イタレーション解析結果とを与えられ、少なくとも、前記デコード後の各命令と前記ソースコードにおける位置との対応関係と、前記デコード後の各命令とそれぞれ属するイタレーションとの対応関係とを表示する表示部とを備えることを特徴とする。
【０００８】
あるいは、本発明の一態様によるデバッグ支援装置は、ソースコードが与えられたコンパイル装置から出力された命令を与えられてデコードし、デコード結果を出力するデコード部と、前記コンパイル装置から出力されたイタレーション情報を与えられて解析し、前記デコード後の各命令とそれぞれ属するイタレーションとの対応関係を示すイタレーション解析結果を出力するイタレーション解析部と、前記コンパイル装置から出力された、各命令がいずれのプロセッサにより実行されるか、あるいはいずれのプロセッサが有するいずれのスロットで実行されるかを示す情報を与えられて解析し、前記デコード後の各命令がいずれのプロセッサにより実行されるか、あるいはいずれのプロセッサが有するいずれのスロットで実行されるかを示すプロセッサ／スロット解析結果を出力するプロセッサ／スロット解析部と、前記コンパイル装置から出力されたデバッグ情報と、前記デコード部から出力された前記デコード結果と、前記イタレーション解析部から出力された前記イタレーション解析結果と、前記プロセッサ／スロット解析結果とを与えられ、少なくとも、前記デコード後の各命令と前記ソースコードにおける位置との対応関係、前記デコード後の各命令とそれぞれ属するイタレーションとの対応関係、前記デコード後の各命令と実行するプロセッサあるいはプロセッサのスロットとの対応関係を表示する表示部とを備えることを特徴とする。
【発明の効果】
【０００９】
本発明のデバッグ支援装置によれば、デバッグ効率の向上が可能である。
【発明を実施するための最良の形態】
【００１０】
上述したように、依存関係にない複数の命令を１つの命令としてまとめて同時に実行し、プログラムを高速化する技術にＶＬＩＷがある。また、ＶＬＩＷの効果をより大きく引き出すための技術として、ループアンローリング（loop unrolling）、ソフトウェアパイプライニングがある。
【００１１】
本発明の実施の形態によるデバッグ支援装置は、これらの技術が適用されたコンパイル装置により変換されたソースプログラムのデバッグ効率を向上させるものである。
【００１２】
以下に、本発明の実施の形態によるデバッグ支援装置について、図面を参照して説明する。
【００１３】
（１）実施の形態１
図１に示されたように、実施の形態１によるデバッグ支援装置２０は、イタレーション解析部２１、デコード部２２及び表示部２３を備える。
【００１４】
そして、イタレーション解析部２１は、高級言語により記述されたソースコードが与えられたコンパイル装置１０からイタレーション情報３１を与えられ、イタレーション解析を行ってイタレーション解析結果３４を表示部２３に出力する。
【００１５】
デコード部２２は、コンパイル装置１０からビットマップの形態を有する命令３２を与えられ、デコードしてデコード結果３５を表示部２３に出力する。デコード結果３５には、機械命令語としての命令や、マルチプロセッサである場合にいずれのプロセッサが当該命令を実行するか、あるいは複数スロットを有するプロセッサである場合にいずれのスロットが当該命令を実行するかという情報が含まれている。
【００１６】
表示部２３は、イタレーション解析結果３４、デコード結果３５の他に、コンパイル装置１０から出力されたデバッグ情報３３を与えられて表示を行う。
【００１７】
次に、上記構成を備えた本実施の形態１における動作内容について詳述する。
【００１８】
各命令とソース行との対応関係の表示
例えばＶＬＩＷが適用された場合、ソースコードがコンパイル装置１０に与えられて、コンパイル装置１０が有する最適化機能により、自動的に複数の命令が１ステップで実行される１つの命令としてまとめられる。あるいは、複数の命令が１ステップで実行される１つの命令としてまとめられた状態で、ソースコードがコンパイル装置１０に与えられる。このとき、まとめられた各命令が、ソースコード上の異なる行番号に対応する可能性がある。
【００１９】
例えば、ａｄｄ（加算）、ｓｕｂ（減算）、ｍｕｌ（乗算）という３命令が１命令にまとめられ、各命令がそれぞれソースコード上の１０、１１、１２行目に対応すると仮定する。
【００２０】
３つの命令がまとめられたソースコードがコンパイル装置１０に与えられ、図２に示されたように、ビットマップ状の命令３２がデコード部２２に出力される。デコード部２２において、デコード結果３５として機械語による命令が出力される。ここで、デコード結果３５には、各命令と行番号との対応関係を示す情報が含まれていない。しかし、コンパイル装置１０から出力されたデバッグ情報３３と、デコード結果３５とが組み合わせられることにより、表示部２３において、デコード後の各命令とソースコード上の行番号との対応関係を表示することができる。
【００２１】
図３に、表示部２３に表示される内容の一例を示す。ここでは、ソースコードのみが示されており、機械語によるオブジェクトコードは示されていない。
【００２２】
ソースコードの１２行目の命令「ａ＝（ｘｒ０＋２０）｜ｘｇ０＋３０｜（ｘｂ０＋１０）；」と、１４行目の命令「ｃ＝（ｘｒ０＋１０）｜ｘｇ０＋２０｜（ｘｂ０＋３０）；」とが表示される。
【００２３】
このように、本実施の形態１によれば、実行される各命令とそのソース行との対応関係を明らかにすることができる。
【００２４】
図４に、表示部２３に表示される内容の他の例を示す。ここでは、ソースコードに加えて、機械語によるオブジェクトコードが示される。
【００２５】
ソースコードの１２行目の命令「ａ＝（ｘｒ０＋２０）｜（ｘｇ０＋３０）｜（ｘｂ０＋１０）；」とそのデコードされた機械語による命令「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１１，＄ｃ１３，０ｘ１４，＄ｃ１０，＄ｃ１４，０ｘ１ｅ」とが表示される。同様に、ソースコードの１４行目の命令「ｃ＝（ｘｒ０＋１０）｜（ｘｇ０＋２０）｜（ｘｂ０＋３０）；」とその機械語による命令「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１１，＄ｃ１３，０ｘ１４，＄ｃ１０，＄ｃ１４，０ｘ１ｅ」とが表示される。
【００２６】
各命令と実行するプロセッサ、スロットとの対応関係の表示
一般に、ＶＬＩＷが適用されて、複数の命令が１つの命令としてまとめられて実行される場合には、各命令は複数のプロセッサでそれぞれ実行され、あるいは複数のスロットを有する１つあるいは２以上のプロセッサにおいて各スロットでそれぞれ実行される。
【００２７】
例えば、２つのプロセッサｐｒｏｃ１、ｐｒｏｃ２が存在し、ｐｒｏｃ２のみ２つの命令入力スロットｓｌｏｔ１、ｓｌｏｔ２を有すると仮定する。
【００２８】
このような演算資源において、ａｄｄ、ｓｕｂ、ｍｕｌという３つの命令を１つの命令にまとめて実行する場合、各命令はそれぞれプロセッサｐｒｏｃ１、プロセッサｐｒｏｃ２のスロットｓｌｏｔ１、プロセッサｐｒｏｃ２のスロットｓｌｏｔ２のいずれかで実行されることになる。
【００２９】
図２に示されたように、本実施の形態１によるデバッグ支援装置のデコード部２２によれば、１つにまとめられた３つの命令が、それぞれどのプロセッサ、もしくはいずれのプロセッサのスロットで実行されるか解析し、その結果をデコード結果３５に含めて出力する）。ここでは、デコード結果３５に示されたように、「ａｄｄ（加算）」命令がプロセッサｐ１、「ｓｕｂ（減算）」命令がプロセッサｐ２のスロットｓ１、「ｍｕｌ（乗算）」命令がプロセッサｐ２のスロットｓ２で実行される。
【００３０】
図３に、各命令とそれを実行するプロセッサ、あるいはプロセッサのスロットとの対応関係を表示した表示部２３の表示内容の一例を示す。上述したように、ソースコードのみが示されており、機械語によるオブジェクトコードは示されていない。
【００３１】
ソースコードの１２行目の命令「ａ＝（ｘｒ０＋２０）｜ｘｇ０＋３０｜（ｘｂ０＋１０）；」がプロセッサｐ１で実行され、１４行目の命令「ｃ＝（ｘｒ０＋１０）｜ｘｇ０＋２０｜（ｘｂ０＋３０）；」がプロセッサｐ２で実行される。
【００３２】
図４に、表示部２３に表示される内容の他の例を示す。ここでは、ソースコードに加えて、機械語によるオブジェクトコードが示される。
【００３３】
ソースコードの１２行目の命令「ａ＝（ｘｒ０＋２０）｜ｘｇ０＋３０｜（ｘｂ０＋１０）；」とそのデコードされた機械語による命令「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１１，＄ｃ１３，０ｘ１４，＄ｃ１０，＄ｃ１４，０ｘ１ｅ」とが表示され、この命令がプロセッサｐ１で実行される。ソースコードの１４行目の命令「ｃ＝（ｘｒ０＋１０）｜ｘｇ０＋２０｜（ｘｂ０＋３０）；」とその機械語による命令「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１１，＄ｃ１３，０ｘ１４，＄ｃ１０，＄ｃ１４，０ｘ１ｅ」とが表示され、この命令がプロセッサｐ２で実行される。
【００３４】
このように、本実施の形態１によれば、実行される各命令と実行するプロセッサあるいはスロットとの対応関係を明らかにすることができる。
【００３５】
各命令と属するイタレーションとの対応関係の表示
一般に、ループ等の繰り返し処理を行う箇所では、ある一つのイタレーション（以下、先行イタレーションと称する）の処理が終了した後に、これに続く他のイタレーション（以下、後続イタレーションと称する）の処理を開始する。
【００３６】
例えば、ループ中でａｄｄ（加算）、ｓｕｂ（減算）、ｍｕｌ（乗算）、ｄｉｖ（除算）という４つの命令を１命令ずつ実行する場合、１番目のイタレーションでこの４命令を実行した後、２番目以降のイタレーションの実行を開始する。
【００３７】
しかし、ループアンローリング、ソフトウェアパイプライニングが適用された場合、先行イタレーションの処理が終了しない段階であっても、後続イタレーションの処理を開始することができる。
【００３８】
即ち、例えば上記例において、１番目のイタレーションに属するａｄｄ（加算）、ｓｕｂ（減算）、ｍｕｌ（乗算）が終了し、ｄｉｖ（除算）が終了していない段階であっても、２番目のイタレーションに属するａｄｄ（加算）を実行することができる。
【００３９】
従って、ＶＬＩＷとループアンローリング、ソフトウェアパイプライニングが併用された場合、異なるイタレーションに属する命令が１つにまとめられて実行される可能性がある。
【００４０】
例えば上記例において、先行イタレーションに属するｓｕｂ（減算）、ｍｕｌ（乗算）命令と、後続イタレーションに属するａｄｄ（加算）命令とが１つにまとめられる場合がある。
【００４１】
このような場合に、本実施の形態１によるデバッグ支援装置のイタレーション解析部２１は、各命令とそれぞれの命令が属するイタレーションを解析する。図５に示されたように、コンパイル装置１０からイタレーション情報３１が与えられる。このイタレーション情報３１には、ａｄｄ（加算）命令、ｓｕｂ（減算）命令、ｍｕｌ（乗算）命令のうち、ａｄｄ（加算）命令のみが１つ先行するイタレーションに属することが含まれている。
【００４２】
このようなイタレーション情報３１がイタレーション解析部２１により解析されて、「ａｄｄ（加算）命令のみが１つ先行するイタレーションに属する」という情報を含むイタレーション解析結果３４が出力される。
【００４３】
表示部２３は、このような解析結果３４に応じて、ソースコードもしくは機械語によるオブジェクトコードにおける各命令と、それぞれが属するイタレーションとの対応関係を表示する。
【００４４】
図６に、表示部２３に表示される内容の一例を示す。ソースコードのみが示されており、機械語によるオブジェクトコードは示されていない。
【００４５】
ソースコードの１２行目の命令「ａ＝（ｘｒ０＋２０）｜（ｘｇ０＋３０）｜（ｘｂ０＋１０）；」が６番目のイタレーションに属し、１４行目の命令「ｃ＝（ｘｒ０＋１０）｜（ｘｇ０＋２０）｜（ｘｂ０＋３０）；」が５番目のイタレーションに属する。
【００４６】
図７に、表示部２３に表示される内容の他の例を示す。ここでは、ソースコードに加えて、機械語によるオブジェクトコードが示される。
【００４７】
ソースコードの１２行目の命令「ａ＝（ｘｒ０＋２０）｜（ｘｇ０＋３０）｜（ｘｂ０＋１０）；」とそのデコードされた機械語による命令「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１１，＄ｃ１３，０ｘ１４，＄ｃ１０，＄ｃ１４，０ｘ１ｅ」とが表示され、この命令が６番目のイタレーションに属する。ソースコードの１４行目の命令「ｃ＝（ｘｒ０＋１０）｜（ｘｇ０＋２０）｜（ｘｂ０＋３０）；」とその機械語による命令「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１１，＄ｃ１３，０ｘ１４，＄ｃ１０，＄ｃ１４，０ｘ１ｅ」とが表示され、この命令が５番目のイタレーションに属する。
【００４８】
このように、本実施の形態１によれば、実行される各命令とそれぞれが属するイタレーションとの関係を明らかにすることができる。
【００４９】
図８に、「各命令とソース行との対応関係」、「各命令と実行するプロセッサ、スロットとの対応関係」、「各命令と属するイタレーションとの対応関係」が表示部２３において表示される点について示す。
【００５０】
表示部２３には、コンパイル装置１０からデバッグ情報３３、デコード部２２からデコード結果３５、イタレーション解析部２１からイタレーション解析結果３４がそれぞれ与えられる。
【００５１】
デバッグ情報３３には、３つの命令（ａｄｄ、ｓｕｂ、ｍｕｌ）が１つの命令にまとめられて実行されるが、それぞれが格納されているメモリアドレスが含まれている。例えば、ａｄｄ（加算）命令、ｓｕｂ（減算）命令、ｍｕｌ（乗算）命令が１つにまとめられてアドレス「０ｘ８０００００」に格納されていることが示されている。また、ａｄｄ（加算）命令はソースコードの１０行、ｓｕｂ（減算）命令はソースコードの１１行、ｍｕｌ（乗算）命令はソースコードの１２行に存在することが示されている。
【００５２】
デコード結果３５には、機械語による各命令と、それぞれ実行するプロセッサあるいはスロットに関する情報が含まれている。
【００５３】
イタレーション解析結果３４には、各命令とそれぞれ属するイタレーションとの関係が示されている。
【００５４】
これらの情報が全て表示部２３に与えられて、機械語による各命令とソースコードの行番号との対応関係、各命令と実行するプロセッサあるいはスロットとの対応関係、各命令と属するイタレーションとの対応関係が表示される。
【００５５】
本実施の形態１によるデバッグ支援装置の処理の手順を、図９のフローチャートに示す。ここで、イタレーションの表示に関しては選択可能となっている。
【００５６】
コンパイル装置１０から出力されたビットマップ状の命令３２がデコード部２２に与えられ、ステップ２２Ａにおいてデコード処理が行われて、機械語による命令と、各命令を実行するプロセッサあるいはスロットとの関係を示す情報がデコード結果３５として出力される。
【００５７】
コンパイル装置１０から出力されたイタレーション情報２１Ａがイタレーション解析部２１に与えられ、ステップ２１Ａとしてイタレーション解析が行われて、イタレーション解析結果３４が出力される。
【００５８】
コンパイル装置１０からはデバッグ情報３３が出力される。表示部２３において、デコード結果３５とデバッグ情報３３とを組み合わせて得られる各命令とソースコードにおける行番号との対応付け、各命令を実行するプロセッサあるいはスロットとの対応付けがなされた情報が、ステップ４１として表示される。
【００５９】
また、イタレーション解析結果３４を与えられた表示部２３において、イタレーション表示を行うか否かがステップ４２において判断され、表示を行わない機能が選択された場合は表示処理を行わず、表示を行う機能が選択された場合はステップ４３において各命令とそれぞれ属するイタレーションとの対応付けが表示される。
【００６０】
比較例
比較例によるデバッグ支援装置の構成を図１０に示す。このデバッグ支援装置は、デコード部１０２２と表示部１０２３とを備える。
【００６１】
コンパイル装置１０からビットマップ状の命令３２が出力されてデコード部１０２２に与えられ、機械語による命令で構成されたデコード結果１０３５が生成されて出力される。
【００６２】
表示部１０２３には、コンパイル装置１０から出力されたデバッグ情報３３と、デコード結果１０３５とを与えられて表示を行う。
【００６３】
ここでデコード部１０２２には、図１１に示されたように、例えば３つの命令（ａｄｄ（加算）、ｓｕｂ（減算）、ｍｕｌ（乗算））が一つにまとめられた命令として与えられ、この命令をデコードしたデコード結果１０３５が出力される。
【００６４】
この結果、表示部１０２３には図１２に示されたように、デバッグ情報３３と、デコード結果１０３５とが与えられて、３命令が一つにまとめられてデコードされた結果と、ソースコードの行番号との対応付けが表示される。
【００６５】
デバッグ情報３３には、３つの命令（ａｄｄ、ｓｕｂ、ｍｕｌ）が１つの命令にまとめられて実行されるが、それぞれが格納されているメモリアドレスが含まれている。例えば、ａｄｄ（加算）命令、ｓｕｂ（減算）命令、ｍｕｌ（乗算）命令が１つにまとめられて、アドレス「０ｘ８０００００」に格納されていることが示されている。また、ａｄｄ（加算）命令はソースコードの１０行、ｓｕｂ（減算）命令はソースコードの１１行、ｍｕｌ（乗算）命令はソースコードの１２行に存在することが示されている。
【００６６】
デコード結果３５には、機械語による各命令が含まれるが、上記実施の形態１と異なり、各命令を実行するプロセッサあるいはスロットに関する情報は含まれていない。
【００６７】
また、イタレーションに関する情報も与えられず、よって各命令とそれぞれが属するイタレーションとの関係は明らかにされない。
【００６８】
このため表示部２３では、機械語による一つにまとめられた命令とソースコードの行番号との対応関係は表示されるが、各命令と実行するプロセッサあるいはスロットとの対応関係、各命令と属するイタレーションとの対応関係は表示されない。
【００６９】
図１３に、ソースコードのみが表示される場合の表示例を示す。
【００７０】
ここでは、ソースコードの１２行目と１４行目の二つの命令が一つにまとめられて実行される場合の表示例を示す。この二つの命令が一つにまとめられることにより、ポインタ「⇒」が一つ付される。
【００７１】
図１４にソースコード及び機械語による命令が表示される場合の表示の他の例を示す。
【００７２】
ソースコードの１２行目と１４行目の二つの命令が一つにまとめられて、一つの機械語による命令として表示される。この二つのソースコード上の命令が一つにまとめられてデコードされた一つの機械語に、ポインタ「⇒」が一つ付される。
【００７３】
ここで、機械語による命令「ＣＰＡＤＤＩ３．Ｗ ＄ｃ１１，＄ｃ１３，０ｘ１４」および命令「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１０，＄ｃ１４， ０x１ｅ」は、それぞれソースコード上の１２行目、１４行目に対応するものとする。，
しかし、命令「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１１，＄ｃ１３，０ｘ１４」および「ＣＰＡＤＤＩ３．Ｗ  ＄ｃ１０，＄ｃ１４，０ｘ１ｅ」が、共にソースコード上の１４行目に対応しているかのように表示される。
【００７４】
また、各命令を実行するプロセッサもしくはスロット、各命令がそれぞれ属するイタレーションに関する情報も表示されていない。このため、デバッグ効率の低下は免れない。
【００７５】
このように、比較例には以下のような問題が存在する。
ａ）  １つにまとめられた命令群における各命令と、ソースコード上の行番号を対応付けて表示することができない。このため、まとめられた各命令と、それぞれのソースコード上の行番号との正確な対応付けが不明である。
ｂ）  １つにまとめられた命令群における各命令をそれぞれ実行するプロセッサ、あるいはスロットに関する情報が表示されない。
ｃ）  イタレーション情報を解析することができないため、各命令とそれぞれが属するイタレーションとの対応関係が表示されない。
【００７６】
上記問題により、比較例によるデバッグ支援装置によれば、デバッグ効率の低下を招くこととなる。
【００７７】
（２）実施の形態２
本発明の実施の形態２によるデバッグ支援装置の構成を図１５に示す。
【００７８】
このデバッグ支援装置１２０は、上記実施の形態１におけるデバッグ支援装置２０と異なり、デコード部１２２が出力するデコード結果１３５には機械語による命令が含まれているが、各命令を実行するプロセッサあるいはスロットとの対応関係は含まれていない。
【００７９】
その替わりに、このデバッグ支援装置１２０はプロセッサ／スロット解析部４２を備えている。コンパイル装置１０からプロセッサ／スロット情報４１が出力されてプロセッサ／スロット解析部４２に与えられ、プロセッサ／スロット解析結果４３が出力されて表示部１２３に与えられる。
【００８０】
このように、コンパイル装置１０がプロセッサ/スロット情報４１を生成することができる場合には、プロセッサ／スロット解析部４２によってこの情報４１を解析し、表示部１２３で表示することが可能である。
【００８１】
デバッグ支援装置１２０はプロセッサ/スロット情報解析部４２を備える必要があるが、デコード部１２２がプロセッサ/スロット情報を生成しデコード結果１３５に含めて出力する必要はない。
【００８２】
本実施の形態２によれば、上記実施の形態１と同様に各命令がいずれのプロセッサあるいはスロットにより実行されるか明らかとなる。尚、他の上記実施の形態１と同じ構成要素には、同一の符号を付して説明を省略する。
【００８３】
（３）実施の形態３
本発明の実施の形態３によるデバッグ支援装置について、その構成を示した図１６を用いて説明する。
【００８４】
本実施の形態３によるデバッグ支援装置２２０は、上記実施の形態１と比較し、コマンド５１を与えられてコマンドを実行し、コマンド実行結果を出力するコマンド実行部５２をさらに備える点が相違する。表示部２２３は、イタレーション解析結果３４、デコード結果３５に加えてコマンド実行結果５３を与えられて表示を行う。他の上記実施の形態１と同一の構成要素には同一の符号を付して説明を省略する。
【００８５】
本実施の形態３によれば、デバッグ支援装置を用いる操作者がコマンド５１を入力することにより、次のような表示を行わせることができる。
【００８６】
例えば、操作者が以下の２つのコマンド５１をデバッグ支援装置２２０に与えたとする。
１）ソースコードの１２行目、１４行目においてそれぞれデバッグ支援装置２２０の動作を停止させるためのコマンド「ｂｒｅａｋ」を与える。
２）「ｂｒｅａｋ」が設定されている１２、１４行目まで実行させるためのコマンド「ｇｏ」を与える。
【００８７】
このような２つのコマンドがコマンド実行部５２に与えられると、これらのコマンドを実行する。これにより、１２、１４行目までのコードが実行され、１２行目、１４行目において動作が停止する。
【００８８】
コマンド実行部５２から、表示部２２３に、現在、ソースコードの１２行目と１４行目において動作停止中という情報がコマンド実行結果５３として出力される。表示部２２３は、この情報に基づいて、ソースコードの１２行目と１４行目において動作が停止中であることを示す表示を行う。
【００８９】
上記実施の形態１〜３によれば、デコード後において、各命令がソースコード上のいずれの行に対応するか、また各命令を実行するのはいずれのプロセッサあるいはスロットであるか、さらには各命令はいずれのイタレーションに属するのかを表示することができる。
【００９０】
これにより、一つの命令、例えば「ａｄｄ」にバグが発見された場合、この命令がソースコード上のいずれの行に存在するかが明らかとなるので、存在する行のみをデバッグすればよく、効率を向上させることができる。
【００９１】
このように上記実施の形態のデバッグ支援装置によれば、デバッグ効率が向上するので、このデバッグ支援装置を用いたプログラム開発の短期間化を実現することができる。
【００９２】
上述した実施の形態は一例であって、本発明を限定するものではなく、本発明の技術的範囲内において様々に変形することが可能である。
【００９３】
例えば、図１７に示された本発明の第４の実施の形態によるデバッグ支援装置は、上記実施の形態１と比較し、イタレーション解析部２１を備えていない点で相違する。本実施の形態４においても、デコード部２２からデコード結果３５として出力された各命令とソースコード上の行との対応関係を表示することができる。またデコード結果３５において、各命令と、それぞれを実行するプロセッサあるいはスロットとの対応関係を示す情報は必ずしも含まれている必要はない。
【００９４】
また、図１８に示された本発明の第５の実施の形態によるデバッグ支援装置４２０は、上記実施の形態１と異なり、デコード部２２から出力されるデコード結果４３５に、機械語で表された命令が含まれているだけで、各命令を実行するプロセッサあるいはスロットとの対応関係を示す情報は含まれていない。この実施の形態５によれば、各命令とそれぞれ属するイタレーションとの対応関係が表示部２３において表示される。
【図面の簡単な説明】
【００９５】
【図１】本発明の実施の形態１によるデバッグ支援装置の構成を示したブロック図。
【図２】同デバッグ支援装置におけるデコード部の動作を示した説明図。
【図３】同デコード部のデコード結果の表示の一例を示した説明図。
【図４】同デコード部のデコード結果の表示の他の例を示した説明図。
【図５】同デバッグ支援装置におけるイタレーション解析部の動作を示した説明図。
【図６】同イタレーション解析部の解析結果の表示の一例を示した説明図。
【図７】同イタレーション解析部の解析結果の表示の他の例を示した説明図。
【図８】同デバッグ支援装置の表示部に与えられる情報と表示内容とを示した説明図。
【図９】同デバッグ支援装置の処理の手順を示したフローチャート。
【図１０】比較例によるデバッグ支援装置の構成を示したブロック図。
【図１１】同比較例によるデバッグ支援装置のデコード部の動作を示した説明図。
【図１２】同比較例によるデバッグ支援装置の表示部に与えられる情報と表示内容とを示した説明図。
【図１３】同比較例によるデバッグ支援装置のデコード部のデコード結果の表示の一例を示した説明図。
【図１４】同比較例によるデバッグ支援装置のデコード部のデコード結果の表示の他の例を示した説明図。
【図１５】本発明の実施の形態２によるデバッグ支援装置の構成を示したブロック図。
【図１６】本発明の実施の形態３によるデバッグ支援装置の構成を示したブロック図。
【図１７】本発明の実施の形態４によるデバッグ支援装置の構成を示したブロック図。
【図１８】本発明の実施の形態５によるデバッグ支援装置の構成を示したブロック図。
【符号の説明】
【００９６】
１０  コンパイル装置
２０  デバッグ支援装置
２１  イタレーション解析部
２２  デコード部
２３  表示部
３１  イタレーション情報
３２  命令
３３  デバッグ情報
３４  イタレーション解析結果
３５  デコード結果
【図１】
2008269529.tif 000003
【図２】
2008269529.tif 000004
【図３】
2008269529.tif 000005
【図４】
2008269529.tif 000006
【図５】
2008269529.tif 000007
【図６】
2008269529.tif 000008
【図７】
2008269529.tif 000009
【図８】
2008269529.tif 000010
【図９】
2008269529.tif 000011
【図１０】
2008269529.tif 000012
【図１１】
2008269529.tif 000013
【図１２】
2008269529.tif 000014
【図１３】
2008269529.tif 000015
【図１４】
2008269529.tif 000016
【図１５】
2008269529.tif 000017
【図１６】
2008269529.tif 000018
【図１７】
2008269529.tif 000019
【図１８】
2008269529.tif 000020