(57)【要約】      （修正有）【課題】デバッグ用のプログラムを用意することなくデバッグできるマイクロコンピュータを提供する。【解決手段】仮想マシンを動作させる仮想マシン対応コア４０上で、仮想マシンであるＶＭ、デバッグ仮想マシンであるＤＢＧＶＭ及びハイパーバイザーが動作する。ハイパーバイザー１７０により制御されるＶＭ１１０ａ、１１０ｂ、１１０ｃの動作状態として出力される情報を記憶し、ハイパーバイザーにより制御される他の仮想マシンであるＤＢＧＶＭ１２０ａ、１２０ｂ、１２０ｃが、記憶されている情報の中からデバッグ情報を選択的に抽出し、当該デバッグ情報をエミュレータ等の外部装置へ出力するように制御する。デバッグ処理に特化したデバッグ仮想マシンを設けることにより、ＶＭ上の動作状態を示す情報の中からデバッグに必要な情報を、デバッグ用のアプリケーションを用意することなく、デバッグ情報として出力する。【選択図】図２
2020107206.tif 000002
【特許請求の範囲】
【請求項１】
ハイパーバイザーにより制御される仮想マシンの動作状態をデバッグ情報として出力するマイクロコンピュータであって、
前記仮想マシンの動作状態として出力される情報を記憶する記憶部と、
前記ハイパーバイザーにより制御される他の仮想マシンであるデバッグ仮想マシンと、
前記デバッグ仮想マシンからの指示に基づき、前記記憶部に記憶されている情報をデバッグ情報として出力する出力部と、
を有するマイクロコンピュータ。
【請求項２】
請求項１に記載のマイクロコンピュータであって、
前記デバッグ仮想マシンを設定する設定部をさらに有し、
前記デバッグ仮想マシンは、前記記憶部に記憶されている情報から、前記設定に基づきデバッグ情報を選択的に抽出する、
マイクロコンピュータ。
【請求項３】
請求項１に記載のマイクロコンピュータであって、
前記仮想マシンの動作状態として出力される情報の中から予め設定された条件に合致する情報のみを抽出し、抽出した情報を前記記憶部へ出力する抽出部をさらに有するマイクロコンピュータ。
【請求項４】
請求項１に記載のマイクロコンピュータであって、
前記デバッグ仮想マシンは、前記記憶部に記憶された前記デバッグ情報の中からアクセス違反を示す情報を検出する、
マイクロコンピュータ。
【請求項５】
請求項４に記載のマイクロコンピュータであって、
前記デバッグ仮想マシンは、前記デバッグ情報の中からアクセス違反を示す情報を検出した場合、アクセス違反を前記ハイパーバイザーへ通知し、前記ハイパーバイザーは当該アクセス違反元の仮想マシンを停止制御する、
マイクロコンピュータ。
【請求項６】
ハイパーバイザーにより制御される仮想マシンの動作状態をデバッグ情報として出力するマイクロコンピュータが実行するデバッグ情報出力方法であって、
前記仮想マシンの動作状態として出力される情報を記憶する記憶ステップと、
前記ハイパーバイザーにより制御される他の仮想マシンであるデバッグ仮想マシンが、前記記憶ステップで記憶した情報をデバッグ情報として出力する出力ステップと、
を含むデバッグ情報出力方法。
【請求項７】
ハイパーバイザーにより制御される仮想マシンの動作状態をデバッグ情報として出力するマイクロコンピュータと、当該デバッグ情報を入力する管理装置とを含むデバッグシステムであって、
前記マイクロコンピュータは、
前記仮想マシンの動作状態として出力される情報を記憶する記憶部と、
前記ハイパーバイザーにより制御される他の仮想マシンであるデバッグ仮想マシンが、前記記憶部に記憶されている情報の中からデバッグ情報を選択的に抽出し、抽出されたデバッグ情報を出力する出力部と、
を有し、
前記管理装置は、
前記出力部により出力されたデバッグ情報を入力する、デバッグシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ、デバッグ情報出力方法、およびデバッグシステムに関するものである。
【背景技術】
【０００２】
仮想マシンを有するシステムのデバッグ技術として、特許文献１に記載のように、デバッグ用資源を抑制し、複数の仮想マシンのデバッグ処理を略同時に行う技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−２５４３１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、仮想マシン機能を有したマルチコアシステムでは仮想マシンを制御するプログラムとしてハイパーバイザーという制御プログラムを組み込むのが一般的である。
【０００５】
仮想マシンマルチコアシステム全体をデバッグするためには、ハイパーバイザー内に仮想マシンを制御する際のデバッグ用情報出力プログラムを追加する必要がある。
【０００６】
ハイパーバイザーは、複数のメーカーから提供されるため、個々にデバッグ用情報出力プログラムを追加し、各々デバッグシステムを構築する必要がある。これにより、メーカー毎のサポートは膨大となり現実的ではない問題がある。また、仮想マシン上で動作するユーザアプリケーションプログラムの開発においてもデバッグに必要な改造を加える必要があり、製品時のプログラムとデバッグ時のプログラムが一致しないという問題がある。
【０００７】
すなわち、デバッグ対象のプログラム（アプリケーション）について、デバッグ用のプログラムを用意することなくデバッグすることが望まれる。
【０００８】
その他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
本願において開示される実施の形態のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
【００１０】
ハイパーバイザー上で動作する仮想マシンでプログラムを動作させた時に、仮想マシンの動作状態をデバッグ情報として出力するマイクロコンピュータであって、仮想マシンが動作した時に出力される情報を記憶する記憶回路と、記憶回路に記憶されている情報からデバッグ情報を抽出する他の仮想マシンであるデバッグ仮想マシンと、デバッグ仮想マシンにより抽出されたデバッグ情報を出力する出力部と、を有する。
【発明の効果】
【００１１】
上記一実施の形態によれば、デバッグ用のプログラムを用意することなくデバッグすることができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態であるマイクロコンピュータシステムの構成例について概要を示した図である。
【図２】本実施の形態におけるマイクロコンピュータのソフトウェア構成を示した図である。
【図３】実施例１における仮想マシンの遷移を示す図である。
【図４】実施例１におけるマイクロコンピュータの処理手順を示すフローチャートである。
【図５】実施例２における仮想マシンの遷移を示す図である。
【図６】実施例２におけるマイクロコンピュータの処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。一方で、ある図において符号を付して説明した部位について、他の図の説明の際に再度の図示はしないが同一の符号を付して言及する場合がある。
【００１４】
＜実施例１＞
＜システム構成＞
実施例１では、マイクロコンピュータシステムにおいて、デバッグ情報を抽出するものである。図１は、本実施形態であるマイクロコンピュータシステムの構成例について概要を示した図である。本実施の形態のマイクロコンピュータシステム１（デバッグシステム）は、マイクロコンピュータ１０と、エミュレータ８０（管理装置）とを有する。マイクロコンピュータ１０とエミュレータ８０とは、例えばフラットケーブルにより接続されている。マイクロコンピュータ１０とエミュレータ８０とは、互いに情報を送受信できる。
【００１５】
マイクロコンピュータ１０は、デバッグ対象のマイクロコンピュータである。また、マイクロコンピュータ１０は、仮想マシンを有し、当該仮想マシン上でアプリケーションプログラムなどのプログラムを動作させた時に、仮想マシンの動作に伴って出力されるデータをデバッグ情報として出力する。また、デバッグ情報とは、例えば仮想マシンが動作する時に用いるレジスタセットに格納されているデータなどである。また、デバッグ情報とは、後述するハイパーバイザーにより制御される仮想マシンの動作状態を示す情報である。
【００１６】
マイクロコンピュータ１０は、割り込みコントロールレジスタ２０と、ＶＭ設定レジスタ３０と、仮想マシン対応コア４０（設定部）と、データフィルタ回路５０（抽出部）と、デバッグデータ出力回路６０（記憶部）と、デバッグコントロール回路７０（出力部）とを有する。
【００１７】
割り込みコントロールレジスタ２０は、割り込みタイミングを示す情報を設定するレジスタである。ＶＭ設定レジスタ３０は、実行中のＶＭ等を設定するレジスタである。
【００１８】
仮想マシン対応コア４０は、マイクロコンピュータ１０内に搭載された仮想マシン対応のＣＰＵ（Central Processing Unit）コア（仮想マシン）である。この仮想マシン対応コア４０上で、ＶＭ（仮想マシン）１１０、デバッグ用のＶＭであるＤＢＧＶＭ１２０及びハイパーバイザー１７０が動作する。
【００１９】
ここで、仮想マシン対応コア４０上で動作するソフトウェア構成について、図２を用いて説明する。図２は、仮想マシン対応コア４０上で動作するソフトウェア構成を説明する図である。
【００２０】
図２に示すように、仮想マシンを動作させる仮想マシン対応コア４０上で、仮想マシンであるＶＭ１１０、デバッグ仮想マシンであるＤＢＧＶＭ１２０、及びハイパーバイザー１７０が動作する。また、ＶＭ１１０として、ＶＭ１１０ａ、ＶＭ１１０ｂ、及びＶＭ１１０ｃの３つの仮想マシンが動作する。また、ＤＢＧＶＭ１２０として、ＤＢＧＶＭ１２０ａ、ＤＢＧＶＭ１２０ｂ、及びＤＢＧＶＭ１２０ｃの３つの仮想マシンが動作する。ハイパーバイザー１７０は、ＶＭ１１０及びＤＢＧＶＭ１２０の動作を制御する。すなわち、ハイパーバイザー１７０は、ＶＭ１１０ａ、ＶＭ１１０ｂ、及びＶＭ１１０ｃ、ＤＢＧＶＭ１２０ａ、ＤＢＧＶＭ１２０ｂ、及びＤＢＧＶＭ１２０ｃを時系列に制御するソフトウェアである。
【００２１】
ハイパーバイザー１７０は、割り込みコントロールレジスタ２０及びＶＭ設定レジスタを参照すると共に、ハイパーバイザー１７０自身が有するタイマー機能により、割り込みタイミングを特定し、実行するＶＭ１１０及びＤＢＭＧＶＭ１２０を決定し、当該ＶＭ１１０及びＤＢＭＧＶＭ１２０を動作させるようにスケジューリングする。例えば、ハイパーバイザー１７０は、定期的に各ＶＭ１１０が所定の期間内で動作するようにスケジューリングする。
【００２２】
ここで、図３を用いて、ハイパーバイザー１７０によるＶＭ１１０及びＤＢＧＶＭ１２０の動作切り替えについて説明する。図３に示すように、ハイパーバイザー１７０は、ＶＭ１１０ａをまず動作させ、ＶＭスイッチングによりＶＭ１１０ａからＤＢＧＶＭ１２０ａへ切り替え動作させる。続いて、ハイパーバイザー１７０は、ＶＭスイッチングによりＤＢＧＶＭ１２０ａからＶＭ１１０ｂへ切り替え動作させ、ＶＭスイッチングによりＶＭ１１０ｂからＤＢＧＶＭ１２０ｂへ切り替え動作させる。さらに、ハイパーバイザー１７０は、ＶＭスイッチングによりＤＢＧＶＭ１２０ｂからＶＭ１１０ｃへ切り替え動作させ、ＶＭスイッチングによりＶＭ１１０ｃからＤＢＧＶＭ１２０ｃへ切り替え動作させる。
【００２３】
ハイパーバイザー１７０は、ＶＭ１１０ａからＶＭ１１０ｂへ移行させるためには、ハイパーバイザー１７０への割り込みによりＶＭ１１０ａから制御をハイパーバイザー１７０へ移す。
【００２４】
一般に、この割り込みは、ハイパーバイザー１７０がタイマーなどを使用して、任意の時間が経過した後に発生するように予め割り込みコントロールレジスタ２０等に設定しておく。
【００２５】
ハイパーバイザー１７０は、この割り込みが発生した時点の情報を保持するために特定のスタックエリアにＶＭ１１０ａが再開するための情報を保持する。ハイパーバイザー１７０は、再開情報を全て保持したのち、次のＶＭ１１０ｂの開始情報に置き換えてＶＭ設定レジスタ３０でＶＭ１１０ｂの実行に移す。
【００２６】
図１に戻り、ＶＭ１１０は、ユーザアプリケーションプログラム等を実行する仮想マシンである。ＤＢＧＶＭ１２０は、ＶＭ１１０がユーザアプリケーションプログラムを実行した結果、仮想マシンにより出力される情報をデバッグデータ出力回路６０から抽出する部分である。このように、ＤＢＧＶＭ１２０は、仮想マシンから出力されるデータであるデバッグ情報を管理する仮想マシンである。
【００２７】
ＤＢＧＶＭ１２０は、エミュレータ８０からデバッグコントロール回路７０を介して通信可能な構成となっている。ＤＢＧＶＭ１２０は、任意のＲＡＭエリアで実行されるため、プログラム自体をエミュレータからいつでも書き換え可能となっている。
【００２８】
ＤＢＧＶＭ１２０を実行するコードは、エミュレータ８０が生成し、デバッグ開始前にＲＡＭエリアに配置する。すなわち、仮想マシン対応コア４０が、ＤＢＧＶＭ１２０を示すコードを、デバッグコントロール回路７０を介してエミュレータ８０から取得して、ＤＢＧＶＭ１２０を示すコードを実行する。
【００２９】
ＶＭ１１０ａからＶＭ１１０ｂへの遷移情報は、ハイパーバイザー１７０からのＶＭ設定レジスタ３０へのライトやハイパーバイザー１７０が確保したスタックエリアへのライトのためのライト命令及びそのライトデータを、データフィルタ回路５０が抽出することにより得られる。データフィルタ回路５０の詳細は後述する。また、フィルタされたデータは、デバッグデータ出力回路６０にタイムスタンプ情報（時間情報）と共に蓄えられる。
【００３０】
ＤＢＧＶＭ１２０は、デバッグデータ出力回路６０に蓄積されたデバッグ情報を解析し、デバッグデータ出力回路６０から出力するか否かの判断をする。出力するか否かの情報は、予めエミュレータ８０からＤＢＧＶＭ１２０の実行コードを埋め込む形で指定する。ＤＢＧＶＭ１２０は、出力すると判断した情報のみをデバッグデータ出力回路６０から出力し、出力不要と判断したデバッグ情報をデバッグデータ出力回路６０から削除する。
【００３１】
これにより、マイクロコンピュータ１０は、必要な情報のみをソフト的にフィルタすることができ、デバッグデータ出力回路６０から出力されるデータ容量を低減できる。
【００３２】
上述のように、ＤＢＧＶＭ１２０は、ハイパーバイザー１７０によって定期的にスケジューリングされて動作する。ＤＢＧＶＭ１２０は、デバッグ情報として、タイムスタンプが付加されたＶＭスイッチング情報をデバッグデータ出力回路６０から取得する。
【００３３】
データフィルタ回路５０は、仮想マシン対応コア４０上で動作するＶＭ１１０やハイパーバイザー１７０がデータバス等に出力する情報（ＶＭ１１０に関するアプリケーションにより出力される情報）を監視し、所望の情報のみをフィルタリングに依り抽出する回路である。データフィルタ回路５０は、エミュレータ８０からデバッグコントロール回路７０を介してフィルタリングで抽出する対象の情報が設定される。
【００３４】
データフィルタ回路５０は、データバス等に出力される情報を監視し、アドレス条件、データ条件などの、設定済みのフィルタリングで抽出する対象の情報である場合、当該情報として、そのアドレスとデータ、および、そのタイムスタンプとして時間情報を付加したＶＭスイッチング情報をデバッグデータ出力回路６０へ送出する。
【００３５】
デバッグデータ出力回路６０は、データフィルタ回路５０から送出された情報を記憶し、ＤＢＧＶＭ１２０の指示に応じて、必要な情報をエミュレータ８０へ出力する。
【００３６】
デバッグコントロール回路７０は、デバッグ情報についての制御をする部分である。具体的に、デバッグコントロール回路７０は、ＤＢＧＶＭ１２０からの指示に基づき、抽出されたデバッグ情報をデバッグデータ出力回路６０からエミュレータ８０に出力する部分である。
【００３７】
また、デバッグコントロール回路７０は、エミュレータ８０からの制御指示により、フィルタ条件の情報を取得すると、データフィルタ回路５０へ当該フィルタ条件の情報を設定する。
【００３８】
また、デバッグコントロール回路７０は、エミュレータ８０からアプリケーションを動作させる制御指示を受信すると、当該制御指示を仮想マシン対応コア４０へ送出する。なお、仮想マシン対応コア４０は、これに応じてハイパーバイザー１７０、ＶＭ１１０等を動作させる。
【００３９】
エミュレータ８０は、あるシステムを使用して別のシステムを模倣する装置をいう。エミュレータ８０は、例えば、オンチップデバッグエミュレータである。エミュレータ８０は、例えば、デバッグを制御する制御部や通信インタフェース等を備える。
【００４０】
エミュレータ８０は、マイクロコンピュータ１０からデバッグ情報を受信し、当該デバッグ情報を記憶する。また、エミュレータ８０は、当該デバッグ情報を図示しない装置（ホストコンピュータ等）へ送信してもよい。このように、エミュレータ８０は、マイクロコンピュータ１０から出力されたデバッグ情報を受信する受信部と、受信したデバッグ情報を管理する管理部とを有する。すなわち、エミュレータ８０は、デバッグ情報を管理する装置として機能する。
【００４１】
また、エミュレータ８０は、マイクロコンピュータ１０に対してフィルタ対象の情報を送信する。また、エミュレータ８０は、アプリケーションを動作させる制御指示を送信する。
【００４２】
上述したように、エミュレータ８０は、デバッグ情報として、タイムスタンプが付加されたＶＭスイッチング情報を取得する。エミュレータ８０は、当該タイムスタンプ付のＶＭスイッチング情報を用いて時間軸でのＣＰＵ使用率（仮想マシン対応コア４０）を算出することができる。
【００４３】
続いて、図４に示すフローチャートを用いて、ＤＢＧＶＭ１２０による処理手順を説明する。前提として、エミュレータ８０により、仮想マシン対応コア４０上で動作するアプリケーションの動作指示がなされ、仮想マシン対応コア４０上のアプリケーションが動作した結果による情報がデータフィルタ回路５０を介してデバッグデータ出力回路６０に記憶されているものとする。
【００４４】
ＤＢＧＶＭ１２０は、デバッグデータ出力回路６０を参照し、デバッグ情報の有無を判断する（ステップＳ１）。ＤＢＧＶＭ１２０は、デバッグ情報がある場合、全てのデバッグ情報を取得する（ステップＳ２）。ＤＢＧＶＭ１２０は、各デバッグ情報について、必要なデバッグ情報であるか否かを判断し（ステップＳ３）、必要なデバッグ情報であれば（ステップＳ３：Ｙｅｓ）、デバッグコントロール回路７０を介してエミュレータ８０へ送出する（ステップＳ４）。また、ＤＢＧＶＭ１２０は、必要なデバッグ情報でなければ、当該デバッグ情報を削除する（ステップＳ５）。ステップＳ６において、ＤＢＧＶＭ１２０が、全てのデバッグ情報を判断したか否を判断し、全てのデバッグ情報について判断していない場合（ステップＳ６：Ｎｏ）、ステップＳ３へ進む。
【００４５】
また、ステップＳ６において、ＤＢＧＶＭ１２０が、全てのデバッグ情報について判断した場合（ステップＳ６：Ｙｅｓ）、ステップＳ１へ進む。
【００４６】
なお、上述の実施例では、ＤＢＧＶＭ１２０が、ＶＭ１１０により実行されるアプリケーションについてのデバッグ情報を抽出する場合について述べたが、ハイパーバイザー１７０についてのデバッグ情報を抽出するようにしてもよい。
【００４７】
上述のように、ハイパーバイザーにより制御される仮想マシンであるＶＭ１１０の動作状態として出力される情報をデバッグデータ出力回路６０で記憶する。また、ハイパーバイザー１７０により制御される他の仮想マシン（デバッグ仮想マシン）であるＤＢＧＶＭ１２０が、記憶されている情報の中からデバッグ情報を選択的に抽出し、デバッグコントロール回路７０を用いて、当該デバッグ情報をエミュレータ８０等の外部装置へ出力する。このように、デバッグ処理に特化した仮想マシンをデバッグ仮想マシンとして設定することにより、デバッグ用にハイパーバイザーを改良することなく、ＶＭ１１０ａの動作状態を示す情報の中からデバッグに必要な情報を、デバッグ情報としてエミュレータへ出力することができる。
【００４８】
＜実施例２＞
実施例２において、実施例１と同等の部分は、説明を省略している。
【００４９】
実施例２では、イベント通知の機能に関するものである。仮想マシンであるＶＭ１１０には、メモリや周辺Ｉ／Ｏ等の資源が割り当てられる。ＶＭ１１０が、自身に割り当てられていない資源にアクセスすると、競合が発生し、問題となる。
【００５０】
実施例２のマイクロコンピュータ１０は、ＶＭ１１０に割り当てられていない資源に対してのアクセス検出をする。仮想マシンに割り当てられていない資源に対するアクセスをアクセス違反と呼ぶ。また、特定のアドレスに対するデータアクセスの検出をイベント検出と呼ぶ。通常は、アクセス違反を検出したがブレークしたくないというケースがある。
【００５１】
ＤＢＧＶＭ１２０は、イベント検出状況をリアルタイムに監視し、イベント検出した場合に、ブレーク要求を行わずにエミュレータ８０側へ通知することで、システムをブレークすることなく、アクセス違反を検出する。
【００５２】
具体的に、エミュレータ８０は、アクセス違反の領域を判定するプログラムをＤＢＧＶＭ１２０が実行するＲＡＭ領域に記憶させる。これにより、ＤＢＧＶＭ１２０が、このアクセス違反を判定するプログラムを用いて、アクセス違反を検出可能な状態にする。ＤＢＧＶＭ１２０は、デバッグデータ出力回路６０からデバッグ情報を取得し、当該デバッグ情報にアクセス違反を示す情報が含まれている場合、デバッグコントロール回路７０を介してエミュレータ８０に対してアクセス違反があった旨を示す情報を通知する。
【００５３】
このように、ＤＢＧＶＭ１２０は、デバッグ情報の中からアクセス違反を示す情報を検知する。また、デバッグコントロール回路７０は、アクセス違反を通知する。
【００５４】
また、ＤＢＧＶＭ１２０は、ハイパーバイザー１７０に対してもアクセス違反があった旨を通知して、ハイパーバイザー１７０に対して、アクセス違反元のＶＭ１１０を停止させるようにしてもよい。このように、ＤＢＧＶＭ１２０は、デバッグ情報の中からアクセス違反を検知した場合、ハイパーバイザー１７０へアクセス違反を通知することにより、アクセス違反元のＶＭ１１０を停止制御する。
【００５５】
続いて、図５を用いて、アクセス違反が発生した場合における仮想マシンの動作制御例を説明する。まず、ハイパーバイザー１７０が、ＶＭ１１０ｂを動作させた結果、アクセス違反をしたものとする。その後、ＤＢＧＶＭ１２０ｂが、アクセス違反を検出し、ハイパーバイザー１７０及びエミュレータ８０へアクセス違反を通知する。
【００５６】
これに応じて、ハイパーバイザー１７０は、ＶＭ１１０ｂ及びＤＢＧＶＭ１２０ｂの動作を停止させる。
【００５７】
続いて、図６に示すフローチャートを用いて、実施例２における、アクセス違反検知の処理手順を説明する。ＤＢＧＶＭ１２０は、デバッグデータ出力回路６０を参照し、デバッグ情報の有無を判断する（ステップＳ１１）。ＤＢＧＶＭ１２０は、デバッグ情報がある場合、全てのデバッグ情報を取得する（ステップＳ１２）。ＤＢＧＶＭ１２０は、各デバッグ情報について、アクセス違反があるか否かを判断し（ステップＳ１３）、デバッグ情報にアクセス違反を示す情報があれば（ステップＳ１３：Ｙｅｓ）、デバッグコントロール回路７０を介してエミュレータ８０へアクセス違反を通知する（ステップＳ１４）。また、ＤＢＧＶＭ１２０は、チェックしたデバッグ情報をデバッグデータ出力回路６０から削除する（ステップＳ１５）。
【００５８】
ステップＳ１６において、ＤＢＧＶＭ１２０が、全てのデバッグ情報を判断したか否を判断し、全てのデバッグ情報について判断していない場合（ステップＳ１６：Ｎｏ）、ステップＳ１３へ進む。
【００５９】
また、ステップＳ１６において、ＤＢＧＶＭ１２０が、全てのデバッグ情報について判断した場合（ステップＳ１６：Ｙｅｓ）、ステップＳ１１へ進む。
【００６０】
このように、ＤＢＧＶＭ１２０が、アクセス違反を検知して、当該アクセス違反をエミュレータ８０へ通知することにより、アクセス違反を早期に通知することができる。
【００６１】
また、ＤＢＧＶＭ１２０が、ハイパーバイザー１７０へアクセス違反を通知し、ハイパーバイザー１７０に、アクセス違反元のＶＭ１１０ｂのみを停止させ、他のＶＭ１１０ａとＶＭ１１０ｃを停止させないことにより、システム全体をブレークすることを防止することができる。
【００６２】
上述の実施例では、ＤＢＧＶＭ１２０をＶＭ１１０の数に合せて設定する場合について述べたが、ＤＢＧＶＭ１２０を１つのみ設定するようにしてもよい。
【００６３】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記の各実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【産業上の利用可能性】
【００６４】
本発明は、デバッグ情報を出力するマイクロコンピュータに利用可能である。
【符号の説明】
【００６５】
１…マイクロコンピュータシステム、１０…マイクロコンピュータ、２０…割り込みコントロールレジスタ、３０…ＶＭ設定レジスタ、４０…仮想マシン対応コア、５０…データフィルタ回路、６０…デバッグデータ出力回路、７０…デバッグコントロール回路、８０…エミュレータ、１１０…ＶＭ、１２０…ＤＢＧＶＭ、１７０…ハイパーバイザー。
【図１】
2020107206.tif 000003
【図２】
2020107206.tif 000004
【図３】
2020107206.tif 000005
【図４】
2020107206.tif 000006
【図５】
2020107206.tif 000007
【図６】
2020107206.tif 000008