(57)【要約】【課題】  ソースプログラムを再コンパイルすることなく、検査ルーチンの追加、変更あるいは削除が可能なプログラムのデバッガを提供する。【解決手段】  記憶装置２から読み出したアセンブリ命令コードに対して、検査ルーチン組み込み部１４は、検査ルーチン生成部１２が生成した検査ルーチンを、ターゲットメモリ管理部１３保有のメモリ管理テーブル情報に基づいて、ターゲットメモリ３の空き領域に組み込む。プログラムコード選択部１５は、検査ルーチン組み込み部１４が生成したアセンブリ命令コード、または記憶装置２に格納されたアセンブリ命令コードのいずれかを選択する。【選択図】  図１
2005115619.tif 000002
【特許請求の範囲】
【請求項１】
ソースプログラムをコンパイルして得られたアセンブリ命令コード列が書き込まれるターゲットメモリの使用領域を管理するターゲットメモリ管理部と、
前記ソースプログラムの任意のプログラム記述行に対する検査ルーチン挿入指示に従ってアセンブリ命令コード列からなる検査ルーチンを生成する検査ルーチン生成部と、
前記検査ルーチンを前記アセンブリ命令コード列に組み込む検査ルーチン組み込み部と、
を具備し、
前記検査ルーチン組み込み部が、前記ターゲットメモリ管理部から出力される前記ターゲットメモリの使用領域に関する情報に基づいて、前記検査ルーチンが前記ターゲットメモリの空き領域に書き込まれるように、前記検査ルーチンを前記アセンブリ命令コード列に組み込むことを特徴とするプログラムのデバッガ。
【請求項２】
ソースプログラムをコンパイルして得られたアセンブリ命令コード列が書き込まれるターゲットメモリの使用領域を管理するターゲットメモリ管理部と、
前記ソースプログラムの任意のプログラム記述行に対する検査ルーチン挿入指示に従ってアセンブリ命令コード列からなる検査ルーチンを生成する検査ルーチン生成部と、
前記検査ルーチン生成部が複数の検査ルーチン挿入指示に従って生成した複数の前記検査ルーチンを保管する検査ルーチン保管部と、
前記複数の検査ルーチンから選択された検査ルーチンを前記アセンブリ命令コード列に組み込む検査ルーチン組み込み部と、
を具備し、
前記検査ルーチン組み込み部が、前記ターゲットメモリ管理部から出力される前記ターゲットメモリの使用領域に関する情報に基づいて、前記検査ルーチンが前記ターゲットメモリの空き領域に書き込まれるように、前記検査ルーチンを前記アセンブリ命令コード列に組み込むことを特徴とするプログラムのデバッガ。
【請求項３】
前記検査ルーチン保管部に保管された前記複数の検査ルーチンのうち、同時に実行する必要のない検査ルーチンは順次選択されて、前記ターゲットメモリの同一の空き領域を順次書き換えて使用することを特徴とする請求項２に記載のプログラムのデバッガ。
【請求項４】
前記アセンブリ命令コード列に組み込まれた前記検査ルーチンの使用のＯＮ／ＯＦＦを制御することができることを特徴とする請求項１乃至３のいずれか１項に記載のプログラムのデバッガ。
【請求項５】
前記検査ルーチンの組み込まれたアセンブリ命令コード列と、前記検査ルーチンを組み込む前のアセンブリ命令コード列とのいずれかを選択して出力することができることを特徴とする請求項１乃至４のいずれか１項に記載のプログラムのデバッガ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムの動作検証に使用するデバッガに関する。
【背景技術】
【０００２】
コンピュータ用プログラムの作成にあたっては、そのプログラムが正常に動作するかどうかを検証するためのデバッグ作業が必要である。そのため、検査対象の記述部分に検査ルーチンを組み込んだデバッグ用プログラムを作成し、このプログラムをデバッガで実行することが行われる。
【０００３】
デバッガは、ユーザからのデバッグ実行指示に従い、上記のデバッグ用プログラムに組み込まれた検査ルーチンに基づいてデバッグを実行し、デバッグ結果をユーザに返す。
【０００４】
通常、上述のデバッグ用プログラムとしては、ソースプログラムに検査ルーチンを組み込んだデバッグ用ソースプログラムが用いられることが多い。
【０００５】
ただし、このようなソースプログラムへの検査ルーチンの組み込み作業を人手で行おうとすると、検査対象箇所をプログラム上で検索する必要があるなど、作業者の負担が重くなる。
【０００６】
そこで、従来、検査ルーチンの組み込みに対して、種々の自動化の提案が行われている（例えば、特許文献１参照。）。
【０００７】
この特許文献１においては、コンパイラに検査ルーチンを組み込む手段を設け、ソースプログラムのコンパイルの実行により、検査ルーチンの組み込まれたオブジェクトモジュールを自動的に得ることが提案されている。
【特許文献１】特開平５−２２４９０８号公報  （第３ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上述のようなデバッグ用ソースプログラムを用いるデバッグ、あるいはコンパイラにより検査ルーチンを組み込んだオブジェクトモジュールを用いるデバッグでは、検査ルーチンの追加、変更のたびにソースプログラムの再コンパイルを行わなければならないという問題があった。
【０００９】
また、デバッグ完了後は、総ての検査ルーチンを削除した完成版ソースプログラムを作成し、この完成版ソースプログラムに対して、改めてコンパイルを行わなければならないという問題があった。
【００１０】
そこで、本発明の目的は、検査ルーチンの生成および組み込みが自動的にでき、且つ検査ルーチンの追加、変更あるいは削除に際してソースプログラムの再コンパイルの必要のないデバッガを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一態様によれば、ソースプログラムをコンパイルして得られたアセンブリ命令コード列が書き込まれるターゲットメモリの使用領域を管理するターゲットメモリ管理部と、前記ソースプログラムの任意のプログラム記述行に対する検査ルーチン挿入指示に従ってアセンブリ命令コード列からなる検査ルーチンを生成する検査ルーチン生成部と、前記検査ルーチンを前記アセンブリ命令コード列に組み込む検査ルーチン組み込み部と、を具備し、前記検査ルーチン組み込み部が、前記ターゲットメモリ管理部から出力される前記ターゲットメモリの使用領域に関する情報に基づいて、前記検査ルーチンが前記ターゲットメモリの空き領域に書き込まれるように、前記検査ルーチンを前記アセンブリ命令コード列に組み込むことを特徴とするプログラムのデバッガが提供される。
【００１２】
また、本発明の別の一態様によれば、ソースプログラムをコンパイルして得られたアセンブリ命令コード列が書き込まれるターゲットメモリの使用領域を管理するターゲットメモリ管理部と、前記ソースプログラムの任意のプログラム記述行に対する検査ルーチン挿入指示に従ってアセンブリ命令コード列からなる検査ルーチンを生成する検査ルーチン生成部と、前記検査ルーチン生成部が複数の検査ルーチン挿入指示に従って生成した複数の前記検査ルーチンを保管する検査ルーチン保管部と、前記複数の検査ルーチンから選択された検査ルーチンを前記アセンブリ命令コード列に組み込む検査ルーチン組み込み部と、を具備し、前記検査ルーチン組み込み部が、前記ターゲットメモリ管理部から出力される前記ターゲットメモリの使用領域に関する情報に基づいて、前記検査ルーチンが前記ターゲットメモリの空き領域に書き込まれるように、前記検査ルーチンを前記アセンブリ命令コード列に組み込むことを特徴とするプログラムのデバッガが提供される。
【発明の効果】
【００１３】
本発明によれば、ソースプログラムをコンパイルして得られたアセンブリ命令コード列に対して、デバッガ内でアセンブリ命令で記述された検査ルーチンを自動的に生成して指定の検査対象箇所に挿入するため、ソースプログラムを再コンパイルすることなく、検査ルーチンの組み込まれたアセンブリ命令コード列を得ることができる。
【００１４】
また、再コンパイルすることなく、検査ルーチンを変更あるいは不使用としたアセンブリ命令コード列を生成することもできる。
【００１５】
さらに、検査ルーチンの組み込まれていないアセンブリ命令コード列の選択も可能なため、再コンパイルすることなく、検査ルーチンの削除されたアセンブリ命令コード列を得ることができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１７】
図１は、本発明の実施例１に係るデバッガの構成を示すブロック図である。
【００１８】
デバッガ１は、ソースプログラムのデバッグのため、ソースコードをコンパイルして生成されたアセンブリ命令コードを記憶装置２から読み出し、ターゲットメモリ３に書き込む。さらに、デバッガ１には、デバッグ状況などを表示するための表示装置４と、デバッグの実行に関するコマンドなどを入力するための入力装置５が接続されている。なお、記憶装置２には、ソースコードおよび標準関数などのライブラリも格納されており、これらは必要に応じてデバッガ１に読み込まれる。
【００１９】
また、このデバッガ１は、デバッグ用の検査ルーチンを生成して記憶装置２から読み出したアセンブリ命令コード列に組み込み、ターゲットメモリ３への書き込みを行う。そのために、デバッガ１は、コマンド解析部１１、検査ルーチン生成部１２、ターゲットメモリ管理部１３、検査ルーチン組み込み部１４、プログラムコード選択部１５およびターゲットメモリ制御部１６を有している。
【００２０】
コマンド解析部１１は、入力装置から入力されたコマンドの内容を解析し、検査ルーチン生成部１２、検査ルーチン組み込み部１４およびプログラムコード選択部１５に、それぞれの動作の実行を指示する。また、コマンド解析部１１は、検査箇所のアドレス、変数の型、変数のアドレスなどの情報を検査ルーチン生成部１２および検査ルーチン組み込み部１４に出力する。
【００２１】
検査ルーチン生成部１２は、コマンド解析部１１からの指示および情報を受けて、デバッグに必要な検査ルーチンを生成する。
【００２２】
ターゲットメモリ管理部１３は、メモリ管理テーブルを作成して、ターゲットメモリ３の使用状況を管理する。また、このメモリ管理テーブルに基づいて、ターゲットメモリ３の使用状況に関する情報を出力する。
【００２３】
検査ルーチン組み込み部１４は、コマンド解析部１１からの指示および情報を受けて、検査ルーチン生成部１２が生成した検査ルーチンをアセンブリ命令コード列に組み込む。このとき、検査ルーチン組み込み部１４は、ターゲットメモリ管理部１３から得られるターゲットメモリ３の使用状況に関する情報に基づいて、検査ルーチンがターゲットメモリ３の空き領域に書き込まれるように組み込む。
【００２４】
このとき、検査ルーチン組み込み部１４は、１つの検査ルーチンを複数の空き領域に分散して書き込むように組み込むこともできる。
【００２５】
また、検査ルーチン組み込み部１４は、検査ルーチンが組み込まれたアセンブリ命令コード列に対して検査ルーチンの使用をＯＦＦするコマンドが入力されると、検査ルーチンの実行を無効とするアセンブリ命令コード列を新たに生成する。
【００２６】
プログラムコード選択部１５は、コマンド解析部１１からの指示を受けて、ターゲットメモリ３に書き込むアセンブリ命令コード列を、検査ルーチンを組み込んだアセンブリ命令コード列にするか、検査ルーチンを組み込んでいない（すなわち、元の）アセンブリ命令コード列にするかの選択を行う。これにより、検査ルーチンを組み込んだ後でも、直ちに元のプログラムを実行することができる。
【００２７】
ターゲットメモリ制御部１６は、ターゲットメモリ３の書き込みおよび読み出しを制御している。
【００２８】
次に、このデバッガ１におけるデバッグ用の検査ルーチンの生成およびアセンブリ命令コード列への検査ルーチンの組み込み動作について、図2〜図４を用いて説明する。
【００２９】
図２は、デバッグの対象とするＣ言語で書かれたソースプログラムの例と、これをコンパイルして得られたアセンブリ命令コード列の対応を示す図である。
【００３０】
図２（ａ）は、ソースプログラムの中から、変数ａ、ｂ、ｃを用いる関数ｆｕｎｃ１の使用を記述した部分を抜き出したものである。
【００３１】
図２（ｂ）は、上記のソースプログラムをコンパイルして得られたアセンブリ命令コード列の例を示す図である。
【００３２】
ここで、図２（ａ）に示したソースプログラムは、変数ａ、ｂ、ｃをそれぞれスタックに格納するｐｕｓｈ命令と、関数ｆｕｎｃ１を呼び出すｃａｌｌ命令に変換されている。そして、これらの命令を書き込むメモリのアドレスが指定されている。ここでは、上記の命令を、それぞれ１００番地、１０２番地、１０４番地、１０６番地に書き込むことが指定されている。
【００３３】
また、図２（ｂ）の例では、メモリの１０９番地から２９９番地は、他の命令が使用する領域とし、３００番地以降は、メモリの空き領域とする。
【００３４】
図３は、本実施例における検査ルーチンの生成例を示す図である。ここでは、図２（ａ）に示すソースプログラム行に検査ルーチンを設定する場合を例にとって説明する。
【００３５】
検査ルーチンを設定するには、先ず、図３（ａ）に示すように、表示装置４に検査箇所のソースプログラム行を表示する。
【００３６】
次に、図３（ｂ）に示すように、入力装置５から、設定したい検査ルーチンを入力する。ここで、図３（ｂ）に示す検査ルーチンは、関数ｆｕｎｃ１の引数ａとｂが等しいときに、デバッグ用の関数ｄｂｇｆｕｎｃを実行するというものである。
【００３７】
この入力を受けて、コマンド解析部１１は、検査ルーチン生成部１２に検査ルーチンの生成を指示し、変数ａ、ｂの型に関する情報を出力する。
【００３８】
図３（ｃ）は、検査ルーチン生成部１２にて生成された検査ルーチンの例を示す図である。
【００３９】
図３（ｃ）では、図３（ｂ）で設定された検査ルーチンに対応して、変数ａ、ｂをレジスタにロードするｌｄ命令、変数ａ、ｂを比較するｃｍｐ命令、変数ａ、ｂが等しくない場合にジャンプするｊｒ命令および関数ｄｂｇｆｕｎｃを呼び出すｃａｌｌ命令からなる検査ルーチンが生成されている。
【００４０】
変数ａ、ｂのｌｄ命令に記されているｎｎｎおよびｍｍｍは、それぞれの変数の格納先アドレスを示し、ｃａｌｌ命令に記されているｘｘｘは、関数ｄｂｇｆｕｎｃが書き込まれるアドレスを示す。
【００４１】
なお、関数ｄｂｇｆｕｎｃがプログラム内で既に使われているときは、プログラム内にリンクされているｄｂｇｆｕｎｃが使用できるが、まだプログラム内で使用されていないときは、記憶装置２に格納されているライブラリからｄｂｇｆｕｎｃのコードを取得する必要がある。
【００４２】
図４は、本実施例における検査ルーチンの組み込まれたアセンブリ命令コード列の生成の例を示す。
【００４３】
ここでは、図３（ｃ）に示した検査ルーチンを図２（ｂ）に示したメモリ空き領域に組み込む例を示している。
【００４４】
検査ルーチン組み込み部１４は、コマンド解析部１１からの指示および検査箇所アドレスの情報を受けて、検査箇所アドレスの１００番地の内容を検査ルーチンへジャンプするｊｐ命令に書き換えるとともに、図３（ｃ）に示した検査ルーチンをターゲットメモリ３の３００番地以降の空き領域に組み込む。
【００４５】
ただし、検査ルーチンを組み込むにあたっては、本来のプログラム動作に影響を与えないための処理が必要である。そのため、図４の例では、前処理としてレジスタの退避命令を追加し、後処理としてレジスタの復帰命令を追加している。
【００４６】
また、検査ルーチンの追加により破壊される命令に対しては、これを補完する命令を追加する必要がある。図４の例では、１００番地へのｊｐ命令で破壊された１００番地と１０２番地の命令を３１８番地と３２０番地で補完している。
【００４７】
なお、ここでは、変数ａ、ｂが、それぞれ２００番地、２０２番地に格納されているものとする。この変数アドレス情報がコマンド解析部１１から出力され、この情報に基づいて、図３（ｃ）でｎｎｎ、ｍｍｍと表わされていたアドレス値が、それぞれ、２００、２０２となる。
【００４８】
これにより、図４に示すように、検査ルーチンおよびその組み込みに関連する一連の命令が、ターゲットメモリ３の空き領域に書き込まれるアセンブリ命令コード列が生成される。
【００４９】
次に、検査ルーチン組み込み部１４が、１つの検査ルーチンを複数の空き領域に分散して組み込む例を説明する。
【００５０】
図５（ａ）に示すように、ターゲットメモリ３の空き領域が、複数の領域に分散して存在する場合がある。しかも、図５（ａ）の例の３００〜３０８番地の空き領域のように、１つの空き領域に検査ルーチンの総てを組み込めないほど、１つの空き領域のサイズが小さいことがある。
【００５１】
このような場合、検査ルーチン組み込み部１４は、空き領域の大きさに合わせて検査ルーチンを分割し、複数の空き領域に分散させて検査ルーチンをアセンブリ命令コード列に組み込む。
【００５２】
図５（ｂ）に、複数の空き領域に検査ルーチンを分散させてアセンブリ命令コード列に組み込んだ例を示す。この例は、図５（ａ）に示す２つの空き領域に図３（ｃ）の検査ルーチンを組み込んだときの例である。
【００５３】
この例に示すように、複数の空き領域を使用する場合、先に使用する空き領域の最後のアドレスに、次に使用する空き領域の先頭アドレスへのジャンプ（ｊｐ）命令を挿入する。このようにして、１つの検査ルーチンを複数の空き領域に分散させて配置することができる。
【００５４】
次に、図６を用いて、検査ルーチンの使用をＯＦＦするコマンドが入力されたときの動作について説明する。このコマンドは、プログラムの処理速度の測定などのために、検査ルーチンの実行を無効にしたいときに入力されるものである。
【００５５】
検査ルーチンの使用をＯＦＦするコマンドが入力されると、コマンド解析部１１は、検査ルーチン組み込み部に対して、検査箇所アドレスの命令の書き戻しを指示する。これを受けて、検査ルーチン組み込み部１４は、検査ルーチンが組み込まれたアセンブリ命令コード列のうち、検査箇所アドレス部分のみ命令内容を元に戻す。これにより、アセンブリ命令コード列に検査ルーチンが組み込まれていても、検査ルーチンへのジャンプ命令がなくなるため、検査ルーチンは実行されなくなる。
【００５６】
図６に、この検査ルーチン使用ＯＦＦコマンド入力時に生成されるアセンブリ命令コード列の例を示す。ここでは、図４に示したアセンブリ命令コード列に対して、検査ルーチン使用ＯＦＦのコマンドが入力されたときの例を示す。
【００５７】
図６（ａ）に示すように、入力装置５から検査ルーチンの使用をＯＦＦするコマンドが入力される。すると、コマンド解析部１１の指示を受けて、検査ルーチン組み込み部１４が、検査箇所アドレス部分の命令内容を元に戻す。
【００５８】
その結果、図６（ｂ）に示すように、検査ルーチンは組み込まれているが、検査箇所アドレス部分の命令内容が元に戻されたアセンブリ命令コード列が生成される。
【００５９】
すなわち、検査ルーチンの設定によって書き換わった１００番地と１０２番地の命令の内容が、図２（ｂ）に示した元のアセンブリ命令コード列に書き換えられている。
【００６０】
これにより、図４では１００番地に書かれていた３００番地へジャンプするｊｐ命令がなくなる。そのため、３００番地以降に書かれている検査ルーチンへのジャンプが行われなくなり、検査ルーチンは実行されなくなる。
【００６１】
次に、図７を用いて、プログラム選択部１５の動作について説明する。ここで、検査ルーチンを組み込む前のアセンブリ命令コード列がｎａｍｅ０という名前で保存されており、検査ルーチンを組み込んだ後のアセンブリ命令コード列がｎａｍｅ１という名前で保存されているものとする。
【００６２】
図７（ａ）に示すように、プログラム選択コマンドで、アセンブリ命令コード列名ｎａｍｅ１が、入力装置５から入力されると、コマンド解析部１１は、プログラムコード選択部１５へ、名前ｎａｍｅ１のアセンブリ命令コード列の選択を指示する。
【００６３】
これを受けて、プログラムコード選択部１５は、図７（ｂ）に示すように、検査ルーチンが組み込まれたアセンブリ命令コード列を出力する。
【００６４】
一方、図７（ｃ）に示すように、アセンブリ命令コード列名ｎａｍｅ０が、入力装置５から入力されると、プログラムコード選択部１５は、図７（ｄ）に示すように、検査ルーチンを組み込む前、すなわち元のアセンブリ命令コード列を出力する。
【００６５】
このような本実施例によれば、ソースプログラムの再コンパイルをすることなく、ターゲットメモリ３の空き領域に検査ルーチンを組み込むアセンブリ命令コード列を生成することができる。また、１つの検査ルーチンを、ターゲットメモリ３の複数の空き領域に分散させて組み込むアセンブリ命令コード列を生成することができる。さらに、検査ルーチンが組み込まれていても、その使用を無効にできるアセンブリ命令コード列を生成することができる。
【００６６】
また、本実施例によれば、検査ルーチンを組み込んだアセンブリ命令コード列と、検査ルーチンを組み込んでいないアセンブリ命令コード列とを、簡単に切り替えて出力することができる。
【実施例２】
【００６７】
図８は、本発明の実施例２に係るデバッガの構成を示すブロック図である。
【００６８】
本実施例のデバッガ１００は、実施例１のデバッガ１に、さらに検査ルーチン保管部１１７を追加したものである。また、この検査ルーチン保管部１１７に対するコマンド入力の追加に応じて、コマンド解析部をコマンド解析部１１１に変更している。
【００６９】
その他は、実施例１と同一の機能を有するブロックであり、これらのブロックには、図１と同一の符号を付し、ここでは、その詳細な説明を省略する。
【００７０】
本実施例で追加された検査ルーチン保管部１１７は、検査ルーチン生成部１２で生成された検査ルーチンの保管を行う。すなわち、Ｎ箇所の検査箇所に対して、検査ルーチン生成部１２がＮ個の検査ルーチンを生成したとき、検査ルーチン保管部１１７は、それぞれの検査ルーチンに名前（例えば、検査ルーチン１〜検査ルーチンＮ）をつけて保管する。
【００７１】
また、コマンド解析部１１１は、検査ルーチン選択コマンドが入力されると、指定された検査ルーチンの出力を検査ルーチン保管部１１７へ指示する。これを受けて、検査ルーチン保管部１１７は、指定された検査ルーチンを検査ルーチン組み込み部１４へ出力する。
【００７２】
検査ルーチン組み込み部１４は、入力された指定の検査ルーチンをターゲットメモリ３の空き領域に組み込む。
【００７３】
その後、検査ルーチン選択コマンドで、別の検査ルーチンが選択されると、検査ルーチン保管部１１７は、新たに指定された検査ルーチンを検査ルーチン組み込み部１４へ出力する。
【００７４】
いま、この新たに選択された検査ルーチンが前に選択された検査ルーチンと同時に使用する必要のない検査ルーチンであるとする。
【００７５】
このとき、検査ルーチン保管部１１７が、記憶装置２から元のアセンブリ命令コード列を新たに読み出して使用すれば、検査ルーチン保管部１１７は、新たに指定された検査ルーチンをターゲットメモリ３の前と同じ空き領域に組み込むことができる。
【００７６】
図９は、このような検査ルーチン選択の動作で生成されるアセンブリ命令コード列の例である。なお、ここでは、ターゲットメモリ３の３００番地以降に空き領域があるものとする。
【００７７】
図９（ａ）に示すように、検査ルーチン選択コマンドで、検査ルーチン１が選択されると、検査ルーチン保管部１１７は、検査ルーチン１を検査ルーチン組み込み部１４へ出力する。
【００７８】
これを受けて、検査ルーチン組み込み部１４は、図９（ｂ）に示すように、ターゲットメモリ３の３００番地以降に検査ルーチン１を組み込んだアセンブリ命令コード列を生成する。
【００７９】
次いで、図９（ｃ）に示すように、検査ルーチン選択コマンドで、検査ルーチン２が選択されると、検査ルーチン保管部１１７は、検査ルーチン２を検査ルーチン組み込み部１４へ出力する。ただし、この検査ルーチン２は、検査ルーチン１と同時に使用する必要のない検査ルーチンとする。
【００８０】
このとき、検査ルーチン組み込み部１４は、記憶装置２から元のアセンブリ命令コード列を改めて読み出す。そして、図９（ｄ）に示すように、ターゲットメモリ３の３００番地以降に検査ルーチン２を組み込んだ別のアセンブリ命令コード列を生成する。
【００８１】
このように、検査ルーチン組み込み部１４は、同一の空き領域に別の検査ルーチンを組み込んだ異なるアセンブリ命令コード列を生成することができる。
【００８２】
このような本実施例によれば、同時に実行される必要のない検査ルーチンは、ターゲットメモリ３の同一の空き領域に入れ替わりで組み込まれる。すなわち、ターゲットメモリ３に総ての検査ルーチンを組み込む空き領域を必要としない。そのため、ターゲットメモリ３を効率よく使用できる。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施例１に係るデバッガの構成を示すブロック図。
【図２】ソースプログラムとアセンブリ命令コード列の対応関係を説明するための図。
【図３】本発明の実施例における検査ルーチン生成の例を示す図。
【図４】本発明の実施例における検査ルーチンの組み込まれたアセンブリ命令コード列生成の例を示す図。
【図５】本発明の実施例における検査ルーチンの組み込まれたアセンブリ命令コード列生成の別の例を示す図。
【図６】本発明の実施例における検査ルーチン使用ＯＦＦコマンド入力時のアセンブリ命令コード列の生成例を示す図。
【図７】本発明の実施例におけるプログラム選択の例を説明するための図。
【図８】本発明の実施例２に係るデバッガの構成を示すブロック図。
【図９】本発明の実施例２における検査ルーチン選択動作を説明するための図。
【符号の説明】
【００８４】
１、１００  デバッガ
２  記憶装置
３  ターゲットメモリ
４  表示装置
５  入力装置
１１、１１１  コマンド解析部
１２  検査ルーチン生成部
１３  ターゲットメモリ管理部
１４  検査ルーチン組み込み部
１５  プログラムコード選択部
１６  ターゲットメモリ制御部
１１７  検査ルーチン保管部
【図１】
2005115619.tif 000003
【図２】
2005115619.tif 000004
【図３】
2005115619.tif 000005
【図４】
2005115619.tif 000006
【図５】
2005115619.tif 000007
【図６】
2005115619.tif 000008
【図７】
2005115619.tif 000009
【図８】
2005115619.tif 000010
【図９】
2005115619.tif 000011