(57)【要約】【課題】ソフトウェアプログラムの実行中にプログラムの実行履歴であるトレースデータをトレースメモリに記録して解析するデバッグシステムにおいて、大容量のトレースメモリを確保できない場合があり、その場合は少量のトレースデータしか記録できず、長時間にわたるトレースデータの記録が困難である。【解決手段】最初のトレースデータに対しては、タイムスタンプサイズを０としタイムスタンプ値をタイムスタンプ保存バッファに記録し、２番目以降のトレースデータに対しては、そのタイムスタンプ値からバッファに保存されたタイムスタンプ値を減算した値とその値の格納サイズをトレースメモリに記録し、２番目以降のトレースデータのタイムスタンプ値でバッファの値を更新する。【選択図】　　図１
2004030505.tif 000002
【特許請求の範囲】
【請求項１】
プログラム実行のトレースデータをトレースメモリに書き込むプログラムトレースデータ記録方法であって、
最初のトレースデータに対しては、タイムスタンプサイズを０として前記トレースメモリに書き込み、そのタイムスタンプ値をタイムスタンプ保存バッファに記録するステップと、
２番目以降のトレースデータに対しては、そのトレースデータのタイムスタンプ値から前記タイムスタンプ保存バッファに保存されたタイムスタンプ値を減算した値と前記値の格納サイズを前記トレースメモリに記録し、前記２番目以降のトレースデータの前記タイムスタンプ値で前記タイムスタンプ保存バッファの値を更新するステップを含むプログラムトレースデータ記録方法。
【請求項２】
プログラム実行のトレースデータをトレースメモリに書き込むプログラムトレースデータ記録方法であって、前記トレースメモリがトレースデータ種別の数のブロックに分割され、その各ブロックがトレースデータ種別に１対１に対応したものであり、トレースデータの書き込み時に、前記トレースデータの種別を調べ、前記トレースデータの種別に対応した前記トレースメモリの前記ブロックに前記トレースデータを書き込むことを特徴とするプログラムトレースデータ記録方法。
【請求項３】
プログラム実行のトレースデータを書き込むトレースメモリであって、
データ種別と同じ個数の管理データからなる管理データ領域と、複数個のブロックからなるブロック領域とを有し、
前記管理データは、前記データ種別と、先頭ブロック番号と、最後にデータを書き込んだ書き込みブロック番号と、書き込みセクション番号で構成され、
前記ブロックは１個のリンクブロック番号と、複数個のセクションで構成され、
前記セクションは先頭のセクションから順にデータが書き込まれ、
前記リンクブロック番号は、すべての前記セクションにデータが書き込まれていてかつ同じデータ種別の次のデータが存在する場合は、前記データが格納されているブロック番号が格納され、前記条件を満たさない場合はブロックが存在しないことを示す識別番号が格納されることを特徴とするトレースメモリ。
【請求項４】
プログラム実行のトレースデータを請求項３に記載のトレースメモリに書き込むプログラムトレースデータ記録方法であって、対応するデータ種別の書き込みブロックのセクションにすべてデータが書き込まれ、かつ新たにブロックが割り当てることができない場合に、前記書き込みブロックのリンクブロック番号に先頭ブロック番号を書き込み、管理データの書き込みブロック番号および書き込みセクション番号をそれぞれ前記先頭ブロック番号および先頭セクション番号に変更した後、先頭ブロック番号を前記先頭ブロック番号のブロックのリンクブロック番号に変更して、前記書き込みセクション番号のさすセクションにデータを書き込むことを特徴とするプログラムトレースデータ記録方法。
【請求項５】
プログラム実行のトレースデータをトレースメモリに書き込むプログラムトレースデータ記録方法であって、
前記トレースメモリはデータ種別と同じ個数の基本データからなる基本データ領域とデータ格納拡張領域を有し、
前記基本データはデータ種別と拡張領域先頭オフセットと拡張領域サイズとデータ書き込み位置とデータ格納領域で構成し、
初期状態ですべての前記基本データの拡張領域サイズは０に設定し、書き込み位置は前記データ格納領域の先頭位置を設定し、
トレースデータの書き込み時に、前記データ種別に対応する前記基本データの前記データ書き込み位置にデータを書き込み、
前記データ格納領域に空き領域があれば前記書き込み位置は書き込んだデータの直後に設定し、空き領域がなければ、前記データ格納領域の先頭データと末尾データのタイムスタンプの差分値を算出し、前記差分値をもとにデータ拡張領域サイズを求め、前記拡張領域先頭オフセットと前記拡張領域サイズとを設定し、以下データ格納拡張領域の先頭から順にデータを書き込んでいくことを特徴とするプログラムトレースデータ記録方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェアプログラムの実行中にプログラムの実行履歴であるトレースデータをトレースメモリに書き込み、プログラム終了後にトレースデータを読み出して解析するデバッグツールにおける、プログラムトレースデータ記録方法およびトレースメモリに関するものである。
【０００２】
【従来の技術】
プログラムトレースデータ記録方法では、各トレースデータはトレースログ種別、タイムスタンプ、その他の固有情報から構成され、プログラムの実行中に観測イベントが発生するごとにトレースデータを生成し、トレースメモリの先頭アドレスから順番に記録する。トレースメモリに空き領域がなくなると、トレースメモリの先頭アドレスにもどり、古いトレースデータを上書きしていた。
【０００３】
【発明が解決しようとする課題】
デバッグシステムによっては、大容量のトレースメモリを確保できない場合があり、その場合は少量のトレースデータしか記録できず、長時間にわたるトレースデータの記録が困難であるという課題があった。
【０００４】
したがって、この発明の目的は、限られたメモリ容量の中でより多くのデータが記録できるプログラムトレースデータ記録方法およびトレースメモリを提供することである。
【０００５】
【課題を解決するための手段】
請求項１記載のプログラムトレースデータ記録方法は、プログラム実行のトレースデータをトレースメモリに書き込むプログラムトレースデータ記録方法であって、
最初のトレースデータに対しては、タイムスタンプサイズを０としてトレースメモリに書き込み、そのタイムスタンプ値をタイムスタンプ保存バッファに記録するステップと、
２番目以降のトレースデータに対しては、そのトレースデータのタイムスタンプ値からタイムスタンプ保存バッファに保存されたタイムスタンプ値を減算した値と値の格納サイズをトレースメモリに記録し、２番目以降のトレースデータのタイムスタンプ値でタイムスタンプ保存バッファの値を更新するステップを含むものである。
【０００６】
請求項１記載のプログラムトレースデータ記録方法によれば、トレースデータのタイムスタンプ値をそのままトレースメモリに記録せずに、前トレースデータのタイムスタンプ値からの差分値とそのサイズを記録することにより、タイムスタンプ値が占めるメモリ量を低減する。このように、トレースデータの構成およびトレースメモリの構成を適切に行うことにより、限られたメモリ容量の中でより多くのデータが記録できるプログラムトレースデータ記録方法を提供することができる。
【０００７】
請求項２記載のプログラムトレースデータ記録方法は、プログラム実行のトレースデータをトレースメモリに書き込むプログラムトレースデータ記録方法であって、トレースメモリがトレースデータ種別の数のブロックに分割され、その各ブロックがトレースデータ種別に１対１に対応したものであり、トレースデータの書き込み時に、トレースデータの種別を調べ、トレースデータの種別に対応したトレースメモリのブロックにトレースデータを書き込むことを特徴とするものである。
【０００８】
請求項２記載のプログラムトレースデータ記録方法によれば、トレースメモリをデータ種別ごとのブロックに分割することにより、個々のデータにデータ種別を示す領域を不要にし、その分のメモリ量を削減することができ、したがって請求項１と同様な効果がある。
【０００９】
請求項３記載のトレースメモリは、プログラム実行のトレースデータを書き込むトレースメモリであって、
データ種別と同じ個数の管理データからなる管理データ領域と、複数個のブロックからなるブロック領域とを有し、
管理データは、データ種別と、先頭ブロック番号と、最後にデータを書き込んだ書き込みブロック番号と、書き込みセクション番号で構成され、
ブロックは１個のリンクブロック番号と、複数個のセクションで構成され、
セクションは先頭のセクションから順にデータが書き込まれ、
リンクブロック番号は、すべてのセクションにデータが書き込まれていてかつ同じデータ種別の次のデータが存在する場合は、データが格納されているブロック番号が格納され、条件を満たさない場合はブロックが存在しないことを示す識別番号が格納されることを特徴とするものである。
【００１０】
請求項３記載のトレースメモリによれば、データ種別を格納するためのメモリ領域を削減することが可能になるので、請求項１と同様な効果がある。
【００１１】
請求項４記載のプログラムトレースデータ記録方法は、プログラム実行のトレースデータを請求項３に記載のトレースメモリに書き込むプログラムトレースデータ記録方法であって、対応するデータ種別の書き込みブロックのセクションにすべてデータが書き込まれ、かつ新たにブロックが割り当てることができない場合に、書き込みブロックのリンクブロック番号に先頭ブロック番号を書き込み、管理データの書き込みブロック番号および書き込みセクション番号をそれぞれ先頭ブロック番号および先頭セクション番号に変更した後、先頭ブロック番号を先頭ブロック番号のブロックのリンクブロック番号に変更して、書き込みセクション番号のさすセクションにデータを書き込むことを特徴とするものである。
【００１２】
請求項４記載のプログラムトレースデータ記録方法によれば、トレースデータを書き込むためのメモリが不足した場合、使用済みブロックメモリの中で消去可能なブロックにトレースデータを書き込むことで、有限なメモリブロックを繰り返し使うことができる。
【００１３】
請求項５記載のプログラムトレースデータ記録方法は、プログラム実行のトレースデータをトレースメモリに書き込むプログラムトレースデータ記録方法であって、
トレースメモリはデータ種別と同じ個数の基本データからなる基本データ領域とデータ格納拡張領域を有し、
基本データはデータ種別と拡張領域先頭オフセットと拡張領域サイズとデータ書き込み位置とデータ格納領域で構成し、
初期状態ですべての基本データの拡張領域サイズは０に設定し、書き込み位置はデータ格納領域の先頭位置を設定し、
トレースデータの書き込み時に、データ種別に対応する基本データのデータ書き込み位置にデータを書き込み、
データ格納領域に空き領域があれば書き込み位置は書き込んだデータの直後に設定し、空き領域がなければ、データ格納領域の先頭データと末尾データのタイムスタンプの差分値を算出し、差分値をもとにデータ拡張領域サイズを求め、拡張領域先頭オフセットと拡張領域サイズとを設定し、以下データ格納拡張領域の先頭から順にデータを書き込んでいくことを特徴とするものである。
【００１４】
請求項５記載のプログラムトレースデータ記録方法によれば、請求項１と同様な効果のほか、データ格納拡張領域に不要なサイズのブロックを確保することなく、必要なサイズのブロックを確保できる。
【００１５】
【発明の実施の形態】
（実施の形態１）
図１および図２を参照して、本発明の第１の実施形態について説明する。図１は、第１の実施形態にかかるプログラムトレースデータ記録方法を示すフローチャートである。図２（ａ）は、トレースデータの構成を示し、図２（ｂ）はトレースメモリに保存するトレースデータの構成を示す。図２（ａ）に示すように、トレースデータは固有データとトレースデータに対応するイベントが発生した時刻を示すタイムスタンプ値とから構成される。ステップ１０１でまず、最初のトレースデータかどうかを判定し、最初のトレースデータの場合は、ステップ１０２で、タイムスタンプサイズＢに０を設定し、ステップ１０３でタイムスタンプサイズＢと固有データをトレースメモリへ記録し、ステップ１０７でタイムスタンプ保存バッファにタイムスタンプ値Ａを保存する。２番目以降のトレースデータの場合は、ステップ１０４でそのタイムスタンプ値Ａから既にタイムスタンプ保存バッファに保存されたタイムスタンプの値Ｄを減算してタイムスタンプ差分値Ｃを計算し、ステップ１０５でタイムスタンプ差分値Ｃを記録するのに必要なタイムスタンプサイズＢを計算し、ステップ１０６でタイムスタンプサイズＢ、タイムスタンプ差分値Ｃと固有データをトレースメモリへ記録し、ステップ１０７で新たなタイムスタンプ値Ａをタイムスタンプ保存バッファへ保存する。ステップ１０８で次のトレースデータの発生を待ち、トレースデータが発生すれば、ステップ１０１から処理を繰り返す。
【００１６】
このようにして、トレースメモリに記録するトレースデータは図２（ｂ）に示すように、固有データ、タイムスタンプサイズＢ、タイムスタンプ差分値Ｃとから構成される。タイムスタンプ差分値Ｃはタイムスタンプ値Ａと比較すると値が小さいため、タイムスタンプ差分値Ｃを記録するのに必要なメモリサイズは、タイムスタンプ値Ａの場合よりも小さくてすむ。例えばタイムスタンプ値が３２ビットデータで出力され、タイムスタンプ差分値が５０、タイムスタンプサイズ指定領域が４ビットの場合、タイムスタンプ値をそのままトレースメモリに記録すると３２ビット必要だが、この発明の実施形態を適用すると、差分値は６ビットですむので、タイムスタンプサイズ指定領域を加えても１０ビットで済み、２２ビット削減することが可能になる。
【００１７】
このように、トレースデータのタイムスタンプ値をそのままトレースメモリに記録せずに、前トレースデータのタイムスタンプ値からの差分値とそのサイズを記録することにより、タイムスタンプ値が占めるメモリ量を低減することができる。
【００１８】
（実施の形態２）
以下、本発明の第２の実施形態について図３と図４を参照して説明する。図３（ａ）は、従来の方法でトレースデータを記録したトレースメモリの様子を、図３（ｂ）は本実施形態にしたがってトレースデータを記録したトレースメモリの様子を示す。図３（ｂ）に示すように、データ種別の数だけ、トレースメモリをブロックに分割し、それぞれのブロックに１対１にデータ種別に対応付けする。トレースデータは、その種類を示すデータ種別とその他のデータから構成される。その他のデータとは、先の実施形態で説明したような固有データやタイムスタンプである。
【００１９】
図４は本実施形態にかかる処理手順のフローチャートである。まずステップ４０１で、データの種別を調べ、それに対応するメモリブロック内のデータ書き込み位置を求める。ステップ４０２でメモリブロックの空き領域を調べ、メモリブロックにデータを書き込むのに十分な領域がなければ、ステップ４０３で書き込み位置をメモリブロックの先頭にする。つまり古いデータの上に上書きしていくことになる。いずれの場合もステップ４０４で書き込み位置へデータ種別以外のデータを記入し、その直後のメモリアドレスにデータ書き込み位置を設定する。これにより、各データにデータ種別を記録する必要がないため、データ種別を格納するメモリ領域を削減することが可能になる。
【００２０】
（実施の形態３）
本発明の第３の実施形態について、図５、図６を参照して説明する。図５は、本実施形態におけるトレースメモリの構成を示す。図５において、トレースメモリは管理データ領域５０１とブロック領域５０２で構成する。管理データ領域５０１は、複数個の管理データからなり、データ種別と１対１に対応する。すなわち、データ種別の数と同数の管理データが存在する。ブロック領域は複数個のブロックで構成し、先頭から１，２，３、‥とブロック番号を割り当てる。５０３は、各管理データの構成を示す。すなわち、管理データの構成５０３に示すように、管理データはデータ種別、先頭ブロック番号、最後にデータを書き込んだ書き込みブロック番号、書き込みセクション番号の４つのデータで構成する。データ種別は、データ種別を示す番号を格納する。先頭ブロック番号は、トレースデータを格納するブロックのうち、最初に書き込むブロック番号を格納する。書き込みセクション番号は、次にデータを書き込むとき、書き込むブロック内のセクション番号（あとで説明）を格納する。ブロックの構成５０４は、次に書き込むブロック番号を格納するリンクブロック番号とトレースデータを格納する複数個のセクションで構成する。セクションには先頭のセクションから順にデータが書き込まれる。リンクブロック番号は、すべてのセクションにデータが書き込まれていてかつ同じデータ種別の次のデータが存在する場合は、そのデータが格納されているブロック番号が格納され、この条件を満たさない場合はブロックが存在しないことを示す識別番号が格納される。
【００２１】
図６は本実施形態におけるデータ格納例の説明図で、図６（ａ）は従来のデータ格納例を、図６（ｂ）は本発明の第３の実施形態におけるデータ格納例を示す。図６において、６０１は管理データ領域、６０２はブロックデータ領域を示す。トレースデータはデータ種別＃１とデータ種別＃２があり、６０３、６０４はそれぞれデータ種別＃１、データ種別＃２の管理データを示す。管理データ６０３は、データ種別＃１のデータの先頭ブロック番号は１，書き込みブロック番号は３、書き込みセクション番号は２であることを示している。管理データ６０４は、データ種別＃２のデータの先頭ブロック番号は２、書き込みブロック番号は２、書き込みセクション番号は９９１であることを示している。６０５、６０６，６０７はそれぞれブロック１、ブロック２、ブロック３を示す。この例では、各ブロックに１０００個のセクションがあり、ブロック１のセクション１、２，１０００にそれぞれＡ，Ｄ，Ｆのいずれもデータ種別＃１のデータが格納されている。ブロック１のセクションには空きがなく、ブロック１のリンクブロック番号に３がかかれているので、データ種別＃１の次のデータはブロック３に格納されていることがわかる。ブロック３ではセクション１にＧが格納されており、セクション２以降は空であり、次にデータが書き込まれるときはセクション２に書き込まれる。この情報は、管理データ６０３の書き込みブロック番号と書き込みセクション番号に設定されている。また、ブロック３には空きセクションがあり、ブロック３のあとにブロックを割り当てていないので、リンクブロック番号はブロックが存在しないことを示す識別番号０を設定している。
【００２２】
同様にブロック２では、リンクブロック番号が０でブロック２のあとにブロックが存在せず、またセクション９９１以降が空になっていることが示されている。
【００２３】
これにより、従来のデータ格納方法では、各データごとにデータ種別を記録しているが、本発明の実施形態によればその必要がないため、データ種別を格納するためのメモリ領域を削減することが可能になる。またデータ種別によりデータ量のちがいが生じるが、書き込み中に必要に応じて動的にメモリブロックを割り当てるので、各データ種別に割り当てるメモリ量をあらかじめ決める必要はなく、メモリを有効に利用することができる。
【００２４】
（実施の形態４）
図７を参照して、本発明の第４の実施形態について説明する。図７は第３の実施の形態のトレースメモリを用いて、第４の実施形態にかかるプログラムトレースデータ記録方法の手順を示すフローチャートである。ステップ７０１ではまず、トレースデータの種別を調べ、対応するメモリブロックを検索する。ステップ７０２では検索したメモリブロックに空き領域が存在すれば、ステップ７０９でトレースデータの書き込みを行う。ステップ７０２でメモリブロックに空き領域が存在しなかった場合、未使用ブロックメモリが存在するかどうかを検索する。ステップ７０３で未使用ブロックメモリが存在した場合、ステップ７０４で書き込みブロック番号に未使用ブロック番号を代入する。その後、ステップ７０５で書き込みセクション番号に先頭セクション番号を代入する。そして、ステップ７０９でトレースデータの書き込みを行う。ステップ７０３で未使用ブロックメモリが存在しなかった場合、ステップ７０３ａで書き込みブロックのリンクブロック番号に先頭ブロック番号を代入し、ステップ７０６で書き込みブロック番号に先頭ブロック番号を代入する。ステップ７０７で書き込みセクション番号に先頭セクション番号を代入し、ステップ７０８で先頭ブロック番号に、前の先頭ブロック番号（今の書き込みブロック番号と同等）のブロックのリンクブロック番号を代入する。そして、ステップ７０９で書き込みセクション番号のさすセクションにトレースデータの書き込みを行う。
【００２５】
このようにして、トレースデータを書き込むためのメモリが不足した場合、使用済みブロックメモリの中で消去可能なブロック（通常は、存在するデータの中で最初に書き込まれたデータが書き込まれているブロック）にトレースデータを書き込むことで、有限なメモリブロックを繰り返し使うことができる。
【００２６】
（実施の形態５）
図８を参照して、本発明の第５の実施形態について説明する。図８は第５の実施形態にかかるトレースメモリの構成を示す。トレースメモリは基本データ領域８０１とデータ格納拡張領域８０２で構成する。基本データ領域８０１は、複数個の基本データからなり、データ種別と１対１に対応する。すなわち、データ種別の数と同数の基本データが存在する。データ格納拡張領域８０２は基本データの構成８０３のデータ格納領域の空き領域がなくなった場合にトレースデータを書き込むために使用する。ブロックのサイズは固定ではなく可変である。８０３は各基本データの構成を示す。基本データの構成８０３は、基本データはデータ種別、拡張領域先頭オフセット、拡張領域サイズ、データ書き込み位置、データ格納領域の５つで構成する。データ種別は、データ種別を示す番号を格納する。拡張領域先頭オフセットは、データ格納領域に空き領域がなくなった際に次にトレースデータを書き込むために使用するブロックがどこに存在するかを示すオフセットであり、拡張領域サイズは、そのブロックのサイズである。データ書き込み位置は、次にデータを書き込むとき、書き込むブロック内の位置を格納する。データ格納領域は、最初にトレースデータを書き込む領域である。ブロックの構成８０５は、トレースデータで構成される。
【００２７】
初期状態ですべての基本データの拡張領域サイズは０に設定し、書き込み位置はデータ格納領域の先頭位置を設定する。したがって、トレースデータは最初、対応するデータ識別のデータ格納領域に書き込まれていく。こうして、トレースデータの書き込み時に、データ種別に対応する基本データのデータ書き込み位置にデータを書き込み、データ格納領域に空き領域があれば書き込み位置は書き込んだデータの直後に設定する。
【００２８】
データ格納領域に空き領域がなくなった場合、新たにデータ格納拡張領域８０２にブロック領域を確保し、そのブロックにトレースデータを格納していく。データ格納領域にブロック領域を確保する際、データ格納領域の先頭データと末尾データのタイムスタンプの差分値を算出し、差分値をもとにデータ拡張領域サイズを求め、拡張領域先頭オフセットと拡張領域サイズとを設定し、以下データ格納拡張領域の先頭から順にデータを書き込んでいく。すなわち、基本データのデータ格納領域に書き込まれた最初のデータを書き込んでから最後のデータを書き込むまでの時間を取得し、新たに確保するデータ格納拡張領域の可変長ブロックを、その時間と基本データのデータ格納領域のサイズをもとに、計算式「新たに確保するブロックサイズ＝（基本データのデータ格納領域のサイズ）／（最後のデータを書き込んだ時間−最初のデータを書き込んだ時間）×係数」により算出したサイズのメモリを確保する。
【００２９】
これにより、データ格納拡張領域に不要なサイズのブロックを確保することなく、必要なサイズのブロックを確保できる。
【００３０】
その他の実施の形態として、つぎのものがある。すなわち、プログラムトレースデータ記録方法は、プログラム実行のトレースデータをトレースメモリに書き込む処理において、トレースメモリをデータ管理領域と複数個のブロックに分割し、管理データ領域はトレースデータ種別とトレースデータ種別のデータを格納するブロックとの対応を管理し、トレースデータ書き込み前は、複数個のブロックはすべて未使用ブロックとして管理し、最初のトレースデータ書き込み時に、トレースデータの種別を調べ、未使用ブロックの中から一つのブロックをとりだし、ブロックをトレースデータ種別に対応させてデータ管理領域に登録し、トレースデータをブロックのデータ格納領域に書き込み、２番目以降のトレースデータ書き込み時には、書き込むトレースデータの種別に対応するブロックを管理領域を参照して検索し、ブロックのデータ格納領域に空き領域があればトレースデータを書き込み、空き領域がなければ、未使用ブロックの中から一つのブロックをとりだしてトレースデータ種別に対応させ、トレースデータをブロックに書き込むことを特徴とする。
【００３１】
【発明の効果】
請求項１記載のプログラムトレースデータ記録方法によれば、トレースデータのタイムスタンプ値をそのままトレースメモリに記録せずに、前トレースデータのタイムスタンプ値からの差分値とそのサイズを記録することにより、タイムスタンプ値が占めるメモリ量を低減する。このように、トレースデータの構成およびトレースメモリの構成を適切に行うことにより、限られたメモリ容量の中でより多くのデータが記録できるプログラムトレースデータ記録方法を提供することができる。
【００３２】
請求項２記載のプログラムトレースデータ記録方法によれば、トレースメモリをデータ種別ごとのブロックに分割することにより、個々のデータにデータ種別を示す領域を不要にし、その分のメモリ量を削減することができ、したがって請求項１と同様な効果がある。
【００３３】
請求項３記載のトレースメモリによれば、データ種別を格納するためのメモリ領域を削減することが可能になるので、請求項１と同様な効果がある。
【００３４】
請求項４記載のプログラムトレースデータ記録方法によれば、トレースデータを書き込むためのメモリが不足した場合、使用済みブロックメモリの中で消去可能なブロックにトレースデータを書き込むことで、有限なメモリブロックを繰り返し使うことができる。
【００３５】
請求項５記載のプログラムトレースデータ記録方法によれば、請求項１と同様な効果のほか、データ格納拡張領域に不要なサイズのブロックを確保することなく、必要なサイズのブロックを確保できる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態におけるプログラムトレースデータ記録方法の手順を示すフローチャートである。
【図２】第１の実施の形態におけるトレースデータの様子を示す説明図である。
【図３】本発明の第２の実施形態にかかるトレースメモリの様子を示す説明図である。
【図４】第２の実施形態において、プログラムトレースデータ記録方法の手順を示すフローチャートである。
【図５】本発明の第３の実施形態におけるトレースメモリの構成を示す説明図である。
【図６】（ａ）は従来のデータ格納例を示す説明図、（ｂ）は第３の実施形態のデータ格納例を示す説明図である。
【図７】本発明の第４の実施形態におけるプログラムトレースデータ記録方法の手順を示すフローチャートである。
【図８】本発明の第５の実施形態におけるトレースメモリの構成を示す説明図である。
【符号の説明】
５０１　管理データ領域
５０２　ブロックデータ領域
５０３　管理データの構成
５０４　ブロックの構成
６０１　管理データ領域
６０２　ブロックデータ領域
８０１　基本データ領域
８０２　データ格納拡張領域
８０３　基本データの構成
８０４　データ格納領域の構成
８０５　ブロックの構成
８０６　拡張領域サイズ
【図１】
2004030505.tif 000003
【図２】
2004030505.tif 000004
【図３】
2004030505.tif 000005
【図４】
2004030505.tif 000006
【図５】
2004030505.tif 000007
【図６】
2004030505.tif 000008
【図７】
2004030505.tif 000009
【図８】
2004030505.tif 000010