JP2002196950A - デバッグシステム - Google Patents

デバッグシステム

Info

Publication number
JP2002196950A
JP2002196950A JP2000392734A JP2000392734A JP2002196950A JP 2002196950 A JP2002196950 A JP 2002196950A JP 2000392734 A JP2000392734 A JP 2000392734A JP 2000392734 A JP2000392734 A JP 2000392734A JP 2002196950 A JP2002196950 A JP 2002196950A
Authority
JP
Japan
Prior art keywords
instruction
skip
point
setting
debugger
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000392734A
Other languages
English (en)
Other versions
JP4295912B2 (ja
Inventor
Fumiko Tsuji
文子 辻
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2000392734A priority Critical patent/JP4295912B2/ja
Publication of JP2002196950A publication Critical patent/JP2002196950A/ja
Application granted granted Critical
Publication of JP4295912B2 publication Critical patent/JP4295912B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 この発明は、従来のソフトウェアの開発にお
いてある処理を省略した場合の動作を把握するための、
プログラム中の所定の処理の省略作業が容易に行え、ソ
フトウェアの開発評価の作業性を改善することを課題と
する。 【解決手段】 この発明は、実行を省略するインストラ
クションの位置にインストラクションスキップポイント
を設定し、省略処理の指示を受けると、スキップテーブ
ルを参照し、参照結果に基づいて実行を省略するインス
トラクションをNOP命令に置換するように構成され
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、組み込みシステム
のソフトウェア開発において、ソースプログラムを書き
直してリコンパイルすることなく、ユーザが指定する、
インストラクション、関数呼び出し、式の評価を実行し
ないようにする機能を備えたデバッグシステムに関す
る。
【0002】
【従来の技術】組み込みシステムにおける従来のソフト
ウェア開発において、プログラム中のあるインストラク
ションの実行を省略したり、ある関数の呼び出しを省略
したり、式の評価を省略し、省略した結果プログラムの
動作がどのようになるかを把握するためには、ソースコ
ードを書き直してリコンパイルし、プログラムを格納し
ている記憶装置の例えばRAM上に再ダウンロードした
り、場合によってはROMに再記憶して実行しなければ
ならなかった。
【0003】こうした操作を行う場合には、修正後のプ
ログラムのリコンパイル時間や、RAMへのダウンロー
ド時間、ROMの再記憶時間が必要になっていた。ま
た、ソースコードの変更によって生じるコードサイズの
変化やコード配置の変化が、プログラムの動作にユーザ
が期待している以外の影響を与えてしまう可能性を含む
というデメリットもあった。
【0004】さらに、実行を省略したいインストラクシ
ョンに対応するソースコードを入手できない場合には、
ソースコードを変更することができないため、オブジェ
クトプログラムの対応するインストラクションを手作業
でNOP命令に置き換えるといった面倒な作業を行わな
ければならなかった。また、式の評価を省略する場合
に、式の評価における対応するインストラクションを単
純にNOP命令に置き換え、レジスタの割り当てに矛盾
が生じないか否かは、ユーザがアセンブラを解読して判
断しなければならず、これらは極めて煩雑な作業であっ
た。
【0005】
【発明が解決しようとする課題】以上説明したように、
従来のソフトウェアの開発評価において、プログラム中
の所定の処理を省略する場合があった。このような場合
に、省略後のプログラムの動作を把握するには、プログ
ラムの省略修正後のリコンパイル、リコンパイルしたプ
ログラムの再記憶、といった作業が必要となり、多くの
手間と時間がかかるといった不具合を招いていた。ま
た、ソースプログラムが手に入らない場合には、オブジ
ェクトプログラムを手作業で修正しなければならず、面
倒な作業を強いられていた。さらに、式評価の省略にお
いては、ユーザが省略後の矛盾を判断しなければなら
ず、作業が煩雑になっていた。
【0006】そこで、この発明は、上記に鑑みてなされ
たものであり、その目的とするところは、プログラム中
の所定の処理の省略作業が容易に行え、ソフトウェアの
開発評価の作業性を改善したデバッグシステムを提供す
ることにある。
【0007】
【課題を解決するための手段】上記目的を達成するため
に、課題を解決する第1の手段は、開発評価しようとす
るソフトウェアにおいて実行を省略(スキップ)するイ
ンストラクションの位置に、インストラクションスキッ
プポイントを設定する、又は前記インストラクションス
キップポイントの設定を解除する指示を受けて、該指示
をインストラクションスキップポイント設定又は解除の
コマンドとして送信し、受信した設定、解除情報を表示
するデバッガと、実行を一時停止するインストラクショ
ンの位置に設定されたブレークポイントの設定位置情報
と、前記インストラクションスキップポイントの設定位
置情報を有するブレーク・スキップテーブルを備え、前
記デバッガから送信されたコマンドを受けて、前記ブレ
ーク・スキップテーブルを調査し、調査結果に基づい
て、ブレークポイントが設定されていないインストラク
ションにインストラクションスキップポイントを設定す
る場合は設定するインストラクションをNOP命令に置
き換え、解除する場合にはNOP命令を元のインストラ
クションに戻し、前記ブレーク・スキップテーブルの設
定位置情報を更新し、インストラクションスキップポイ
ントの設定、解除情報を前記デバッガに送信し、ブレー
クポイントが設定されているインストラクションにイン
ストラクションスキップポイントを設定する場合には、
設定するインストラクションをブレーク発生命令に置き
換え、解除する場合にはブレーク発生命令を元の命令に
戻し、前記ブレーク・スキップテーブルの設定位置情報
を更新し、ブレーク・スキップ設定、解除情報を前記デ
バッガに送信し、前記ブレーク発生命令が実行されてブ
レークが発生してスキップ実行、実行継続が指示された
場合には、NOP命令を実行するデバッグモニタ手段と
を有することを特徴とする。
【0008】第2の手段は、前記第1の手段において、
開発評価しようとするソフトウェアのソースプログラム
上の関数呼び出し位置と、関数呼び出しに対応するジャ
ンプ命令のアドレスの情報を有する関数呼び出しスキッ
プテーブルを生成して備え、該関数呼び出しスキップテ
ーブルをデバッグ情報として出力するコンパイラとリン
カを具備し、前記デバッガは、開発評価しようとするソ
フトウェアにおいて実行を省略(スキップ)する関数呼
び出しの位置に、関数呼び出しスキップポイントを設定
する、又は前記関数呼び出しスキップポイントの設定を
解除する指示を受けて、前記関数呼び出しスキップテー
ブルを調査し、調査結果に基づいて前記指示をインスト
ラクションスキップポイント設定又は解除のコマンドに
置き換えて前記デバッグモニタ手段に送信することを特
徴とする。
【0009】第3の手段は、前記第1の手段において、
開発評価しようとするソフトウェアのソースプログラム
上の式の内、式に対応するアドレス範囲のインストラク
ションをNOP命令に置換した場合にレジスタ割り当て
に矛盾が生じない式の行番号と、該番号に対応するイン
ストラクションの開始及び終了アドレスの情報を有する
式評価スキップテーブルを生成して備え、該式評価スキ
ップテーブルをデバッグ情報として出力するコンパイラ
とリンカを具備し、前記デバッガは、開発評価しようと
するソフトウェアにおいて実行を省略(スキップ)する
式の位置に、式評価スキップポイントを設定する、又は
前記式評価スキップポイントの設定を解除する指示を受
けて、前記式評価スキップテーブルを調査し、前記指示
が可能か否かを判別し、可能な場合には前記指示をイン
ストラクションスキップポイント設定又は解除のコマン
ドに置き換えて前記デバッグモニタ手段に送信すること
を特徴とする。
【0010】第4の手段は、前記第3の手段において、
前記デバッガは、前記指示が可能な場合には、前記式に
対応したアドレス範囲のインストラクションスキップポ
イント設定又は解除のコマンドに置き換えて前記デバッ
グモニタ手段に送信し、前記デバッグモニタ手段は、前
記デバッガが送信したコマンドに対応可能であることを
特徴とする。
【0011】
【発明の実施の形態】以下、図面を用いてこの発明の実
施形態を説明する。
【0012】本発明のデバッグシステムは、組み込みシ
ステムのソフトウェア開発において、ソースプログラム
を書き直してリコンパイルすることなく、ユーザが指定
する、インストラクションや、関数呼び出し、式の評価
を実行しないようにする機能を備えたものである。以
下、リコンパイルすることなく上記3種類の実行を省略
することをそれぞれ、インストラクションスキップ、関
数呼び出しスキップ、式評価スキップと呼ぶことにし、
スキップする場所のことを、スキップポイントと呼ぶこ
とにする。このようなスキップポイントを、従来のブレ
ークポイント設定時と同じような操作により設定できる
ようにしている。また、インストラクションスキップ、
関数呼び出しスキップ、式評価スキップのいずれも、デ
バッグシステムを構成するデバッガと通信するデバッグ
モニタ手段(モニタプログラム)が、対応する命令をN
OP命令に書き換えることにより設定する。
【0013】以下、インストラクションスキップ機能を
備えたデバッグシステムを実施形態1に、関数呼び出し
スキップ機能を備えたデバッグシステムを実施形態2
に、式評価スキップ機能を備えたデバッグシステムを実
施形態3で説明する。さらに、式評価スキップ機能の別
の実施形態を実施形態4に、また、インストラクショ
ン、関数呼び出し、式評価の3つのスキップ機能を備え
たデバッグシステムを実施形態5で説明する。
【0014】図1はこの発明の実施形態1に係わるデバ
ッグシステムに含まれるデバッガの表示例を示す図であ
る。この実施形態1のデバッグシステムは、インストラ
クションスキップ機能を実現するために、開発ホストコ
ンピュータ上で動作するデバッガと、デバッガと通信す
るデバッグモニタ手段として作用するモニタプログラム
を備え、このデバッガならびにモニタプログラムに以下
に示す新規な機能を拡張することにより実装される。
【0015】図1において、デバッガ11は、インスト
ラクションスキップポイントを設定しようとする箇所の
前後のプログラムが表示された図1に示す表示画面12
において、ユーザから「インストラクションスキップポ
イント」の設定を指示するインタフェースとして、例え
ばユーザが「インストラクションスキップポイント」の
ボタン13をクリックすることにより、「インストラク
ションスキップポイント設定」や「インストラクション
スキップポイント解除」の指示を受け、モニタプログラ
ムにコマンドとして伝える機能と、モニタプログラムか
ら返された結果を表示する機能を備えている。
【0016】モニタプログラムは、従来から持っていた
ブレークポイントテーブルを拡張した、ブレーク・スキ
ップテーブル14を備え、デバッガ11からのコマンド
に応じてテーブル14を調査、更新し、RAM上のプロ
グラムを書き換え、書き換え後のプログラムをデバッガ
11に戻す機能を備えている。ブレーク・スキップテー
ブル14の一例を図2に示す。
【0017】図2において、ブレーク・スキップテーブ
ル14は、ブレークポイントやスキップポイントが設定
されたインストラクションのアドレス、設定前のインス
トラクション、何が設定されているかの種類を示すテー
ブルである。テーブル14のアドレスの欄が「0x00
000000」を示しているエントリーは空きを示して
おり、アドレスの欄が「0x00000000」以外の
値を示すエントリーは意味を持つことを示す。設定され
る種類としては、「ブレークポイント」、「スキップポ
イント」、「ブレークポイントかつスキップポイント」
の3種類が存在する。
【0018】次に、インストラクションスキップポイン
トを設定する際のユーザの操作(1)、その際のデバッ
ガ1の作用(2)、モニタプログラムの作用(3)と、
インストラクションスキップポイントを解除するときの
ユーザの操作(4)、デバッガ1の作用(5)、モニタ
プログラムの作用(6)を、図3に示すスキップポイン
トが正常に設定される際の流れを参照して説明する。
【0019】インストラクションスキップポイントを設
定する際のユーザの操作(1)として、ユーザは、デバ
ッガ11にインストラクションスキップポイント設定の
指示を与える。これに対して、デバッガ11の作用
(2)として、デバッガ11はユーザからの指示を、
「○○番地にスキップポイントを設定する」というコマ
ンドに置き換えてモニタプログラムに送信する。なお、
デバッガ11は、モニタプログラムの作用(3)で示す
モニタプログラムの作用の結果返信された値をデバッグ
ウィンドウに表示してもよい。例えば正常に設定できた
場合には、図1に示すようにインストラクションを表示
している横に、インストラクションスキップポイントを
示すマークを表示する。
【0020】モニタプログラムの作用(3)としては、
図2に示すブレーク・スキップテーブル14を調べ、調
査結果に応じて次のような動作を行う。テーブル14に
対応する番地を示すエントリーが存在しない場合には、
ブレーク・スキップテーブル14の空いているエントリ
ーに、対応するインストラクションのアドレスを挿入
し、そのアドレスにあるインストラクションの内容をブ
レーク・スキップテーブル14にセーブする。テーブル
14の種類の欄には、「スキップポイント」を設定す
る。その後、対応するオブジェクトプログラムのアドレ
スにNOP命令を埋め込み、デバッガ11に対して設定
が正常に終了した旨を知らせる。
【0021】一方、テーブル14に対応する番地を示す
エントリーが存在し、かつブレークポイントが設定され
ている場合には、テーブル14の種類の欄に、「ブレー
クポイントかつスキップポイント」を設定する。対応す
るアドレスのインストラクションは、ソフトウェアブレ
ーク命令、あるいは類似の動作を行う命令のままにして
おき、デバッガ11に対して設定が正常に終了した旨を
知らせる。「ブレークポイントかつスキップポイント」
が設定されたアドレスが実行されブレーク例外、あるい
は類似の例外が発生し、モニタプログラムがブレークに
対応するコードに入った場合に、デバッガ11からのス
テップ実行や、実行継続などのコマンドが与えられる
と、ブレークポイント設定前のインストラクションでは
なく、NOP命令を実行する。また、対応する番地を示
すエントリーが存在し、「スキップポイント」あるいは
「ブレークポイントかつスキップポイント」が既に設定
されている場合には、既に設定済みである旨をデバッガ
11に通知する。
【0022】インストラクションスキップポイントを解
除するときのユーザの操作(4)として、ユーザは、デ
バッガ11に対して解除するインストラクションの位置
のスキップポイント設定解除を指示する。これに対し
て、デバッガ11の作用(5)は、ユーザからの指示
を、「○○番地のスキップポイントを解除する」という
コマンドに置き換えてモニタプログラムに送信する。な
お、モニタプログラムの動作(6)で示すモニタプログ
ラムからの返信をデバッグウィンドウに表示するように
してもよい。例えば正常に解除できた場合には、インス
トラクションスキップポイントを示すマークの表示を消
去する。
【0023】モニタプログラムの作用(6)として、モ
ニタプログラムは、ブレーク・スキップテーブル14を
調査し、調査結果に応じて次のような動作を行う。ま
ず、テーブル14の対応する番地を示すエントリーが存
在しない、あるいは存在するが「ブレークポイント」し
か設定されていない場合には、スキップポイントが設定
されていない旨をデバッガ11に通知する。一方、テー
ブル14の対応する番地を示すエントリーが存在し、か
つ「スキップポイント」が設定されていた場合には、ス
キップポイント設定前のインストラクションを、オブジ
ェクトプログラムの対応するアドレスにストアする。そ
の後、ブレーク・スキップテーブル14の対応するエン
トリーのアドレスの欄に「0x00000000」を書
き込むことにより、そのエントリーを消去し、デバッガ
11に、スキップポイントの解除が正常に行われた旨を
通知する。また、テーブル14の対応する番地を示すエ
ントリーが存在し、かつ「ブレーク・スキップポイン
ト」が設定されていた場合には、ブレーク・スキップテ
ーブル14の対応するエントリーの種類の欄を、「ブレ
ークポイント」に変更し、デバッガ11にスキップポイ
ント解除が正常に行われた旨を通知する。なお、そのア
ドレスの命令実行によりブレークが発生した際のモニタ
プログラムの作用は、従来のブレークが発生した場合と
全く同様である。
【0024】従来であれば、ソースファイルの特定位置
をコメントアウトした際の効果を知るためには、ソース
ファイルを書き換え、リコンパイルし、再ロードして実
行しなければならなかったものが、上記実施形態におい
ては、その操作が必要なくなるために、リコンパイル時
間、再ロード時間が短縮できる。また、リコンパイルを
しないですむことにより、コードの配置位置などに影響
が発生しないため、ユーザの望まない不具合が発生しな
い。
【0025】次に、この発明の実施形態2を説明する。
【0026】この実施形態2のデバッグシステムは、先
の実施形態1で説明したデバッガとモニタプログラムに
加えてコンパイラとリンカを備え、コンパイラとリンカ
は、関数呼び出しスキップを行うためのデバッグ情報を
出力するよう機能拡張され、またデバッガはコンパイラ
とリンカが出力するデバッグ情報を解釈できるように機
能拡張されて実装され、関数呼び出しスキップ機能を実
現している。
【0027】関数呼び出しスキップを行うためのデバッ
グ情報を、関数呼び出しスキップテーブルと呼ぶことに
する。この関数呼び出しスキップテーブル22の一例
を、この実施形態2のデバッガ21が関数呼び出しスキ
ップを行うプログラムを画面表示した際の画面表示例と
ともに図4に示す。図4において、このテーブル22
は、ソースコード上の関数呼び出しに対応するジャンプ
命令、あるいはそれに相当する命令が配置されるアドレ
スと、ソースコード上の行番号を対応させるテーブルで
あり、ソースファイル名、ソースコード行番号、ジャン
プ命令のアドレスの情報を有している。
【0028】次に、関数呼び出しスキップポイントを設
定する際のユーザの操作(1)、その際のデバッガ21
の作用(2)、モニタプログラムの作用(3)と、イン
ストラクションスキップポイントを解除するときのユー
ザの操作(4)、その際のデバッガ21の作用(5)、
モニタプログラムの作用(6)を、図5に示す関数呼び
出しスキップポイント設定が正常に行われるフロー図を
参照して説明する。
【0029】関数呼び出しスキップポイントを設定する
際のユーザの操作(1)として、ユーザは、例えば先の
実施形態1と同様の入力インターフェースによりデバッ
ガ21に関数呼び出しのスキップポイント設定を指示す
る。これに対してデバッガ21は、ユーザからの指示に
基づいて関数呼び出しスキップテーブル22を調査し、
調査結果に応じて次の動作を行う。スキップポイントの
設定に対応するソースコード行が、関数呼び出しスキッ
プテーブル22に存在しない場合には、デバッガ21は
モニタプログラムに対して何のコマンドも発行しない。
この場合に、関数呼び出しスキップポイントを、ユーザ
指定個所に設定できない旨を表示するようにしてもよ
い。
【0030】一方、スキップポイントの設定に対応する
ソースコード行が、関数呼び出しスキップテーブル22
に存在する場合には、デバッガ21はモニタプログラム
に対して、関数呼び出しスキップテーブル22に示され
たアドレスを用いて「○○番地にスキップポイントを設
定せよ」というコマンドを発行する。なお、デバッガ2
1は、モニタプログラムの作用(3)で示すモニタ動作
の結果返された値をデバッグウィンドウに表示するよう
にしてもよい。この場合に、例えば正常に設定できた場
合は、ソースコードの関数呼び出しを表示している横に
関数呼び出しスキップポイントを示すマークを表示す
る。あるいは、ジャンプ命令を表示している横にインス
トラクションスキップを示すマークを表示する。
【0031】モニタプログラムは、先の実施形態1のモ
ニタプログラムの作用(3)と同様である。
【0032】ユーザの操作(4)として、ユーザは、デ
バッガ21に対して所望の関数呼び出しのスキップポイ
ント設定解除を指示する。その際のデバッガ21の作用
(5)として、デバッガ21はユーザからの指示に基づ
き関数呼び出しスキップテーブル22を調査し、調査結
果に応じて次の動作を行う。スキップポイントの設定解
除に対応するソースコード行が、関数呼び出しスキップ
テーブルに存在しない場合には、デバッガ21はモニタ
プログラムに対して何のコマンドも発行しない。なお、
関数呼び出しスキップポイントの解除を、ユーザ指定箇
所に設定できない旨を表示してもよい。
【0033】一方、スキップポイント設定解除に対応す
るソースコード行が、関数呼び出しスキップテーブルに
存在する場合には、デバッガ21は、モニタプログラム
に対して関数呼び出しスキップテーブル22に示された
アドレスを用いて「○○番地のスキップポイントを解除
せよ」というコマンドを発行する。なお、デバッガ21
は、モニタプログラムの作用(6)で示すモニタプログ
ラムの作用の結果返された値をデバッグウィンドウに表
示するようにしてもよい。この場合に、正常に解除でき
た場合は、関数呼び出しスキップポイントを示すマーク
の表示を消去する、あるいは対応するインストラクショ
ンスキップポイントを示すマークの表示を消去する。モ
ニタプログラムの作用(6)は、先の実施形態1のモニ
タプログラムの作用(6)と同様である。
【0034】このような実施形態にあっては、コンパイ
ラ、リンカがソースプログラムから関数読み出しスキッ
プテーブル22のデバッグ情報を生成し、このテーブル
22に基づいて関数読み出しのスキップポイントを設定
あるいは解除するようにしているので、関数読み出しス
キップポイントの設定、解除において先の実施形態1と
同様の効果を得ることができる。
【0035】次に、この発明の実施形態3について説明
する。
【0036】この実施形態3のデバッグシステムは、先
の実施形態1で説明したデバッガとモニタプログラムに
加えてコンパイラとリンカを備え、コンパイラとリンカ
は、式評価スキップを行うためのデバッグ情報を出力す
るように機能拡張され、またデバッガはコンパイラとリ
ンカが出力するデバッグ情報を解釈できるように機能拡
張されて実装され、式評価スキップ機能を実現してい
る。式評価スキップを行うためのデバッグ情報を、式評
価スキップテーブルと呼ぶことにする。この式評価スキ
ップテーブルは、ソースコード上の式の行番号と、それ
に対応するインストラクション列のアドレス(開始アド
レスと終了アドレス)の情報を持ったものであり、コン
パイラ、リンカがソースプログラムに基づいて生成す
る。式評価をスキップするためには、次の条件を兼ね備
えることが必要である。
【0037】(A)その式の評価の前後で、レジスタ割
付が変化しない (B)その式の評価をスキップした場合に、不定値とな
る値が発生しない 上記(A)や(B)の条件にしたがって作成される評価
スキップテーブル31の一例を、この実施形態3のデバ
ッガが式評価スキップを行うプログラムを画面表示した
際の画面表示例とともに図6あるいは図7に示す。
【0038】次に、式評価スキップポイントを設定する
際のユーザの操作(1)、その際のデバッガの作用
(2)、モニタプログラムの作用(3)と、式評価スキ
ップポイントを解除するときのユーザの操作(4)、そ
の際のデバッガの作用(5)、モニタプログラムの作用
(6)を説明する。
【0039】式評価スキップポイントを設定する際のユ
ーザの操作(1)として、ユーザは、デバッガに式評価
スキップポイント設定を、例えば先の実施形態1と同様
の入力インターフェースにより指示する。デバッガの作
用(2)としてデバッガは、ユーザからの指示に基づき
式評価スキップテーブル31を調査し、調査結果に応じ
て次の動作を行う。式評価スキップポイントの設定に対
応するソースコード行が、式評価スキップテーブル31
に存在しない場合は、デバッガはモニタプログラムに対
して何のコマンドも発行しない。この場合に、式評価ス
キップポイントを、ユーザ指定箇所に設定できない旨を
表示するようにしてもよい。一方、式評価スキップポイ
ントの設定に対応するソースコード行が、式評価スキッ
プテーブル31に存在する場合には、デバッガはモニタ
プログラムに対して式評価スキップテーブル31に示さ
れた開始アドレスから、終了アドレスまですべてに対し
て「○○番地にスキップポイントを設定せよ」というコ
マンドを発行する。なお、デバッガは、モニタプログラ
ムの作用(3)で示すモニタプログラムの作用の結果返
された値をデバッグウィンドウに表示するようにしても
よい。この場合に、例えば正常に設定できた場合は、ソ
ースコードの式表示の横に式評価スキップポイントを示
すマークを表示する、あるいは対応するインストラクシ
ョン列の表示の横に、インストラクションスキップポイ
ントを示すマークを表示する。
【0040】モニタプログラムの作用(3)は、先の実
施形態1のモニタプログラムの作用(3)と同様であ
る。
【0041】式評価スキップポイントを解除するときの
ユーザの操作(4)として、ユーザは、デバッガに対し
て所望の式評価スキップポイント設定解除を指示する。
これに対して、デバッガの作用(5)としてデバッガ
は、ユーザからの指示に基づき式評価スキップテーブル
31を調査し、調査結果に応じて次の動作を行う。式評
価スキップポイント設定解除に対応するソースコード行
が、式評価スキップテーブル31に存在しない場合は、
デバッガはモニタプログラムに対して、何のコマンドも
発行しない。この場合に、式評価スキップポイントの解
除をユーザ指定個所に設定できない旨を表示するように
してもよい。
【0042】一方、式評価スキップポイントの解除に対
応するソースコード行が、式評価スキップテーブル31
に存在する場合には、デバッガはモニタプログラムに対
して、式評価スキップテーブル31に示された開始アド
レスから終了アドレスまですべてに対して「○○番地の
スキップポイントを解除せよ」というコマンドを発行す
る。なお、デバッガは、モニタプログラムの作用(3)
で示すモニタプログラムの作用の結果返された値をデバ
ッグウィンドウに表示するようにしてもよい。この場合
に、例えば正常に解除できた場合は、対応する式評価ス
キップポイントを示すマークやインストラクションスキ
ップを示すマークの表示を削除する。モニタプログラム
の作用(6)は、先の実施形態1のモニタプログラムの
作用(6)と同様である。
【0043】このような実施形態にあっては、コンパイ
ラ、リンカがソースプログラムから式評価スキップテー
ブル31のデバッグ情報を生成し、このテーブル31に
基づいて式評価のスキップポイントを設定あるいは解除
するようにしているので、式評価スキップポイントの設
定、解除において先の実施形態1と同様の効果を得るこ
とができる。
【0044】なお、この発明は、上記実施形態に限るこ
とはなく、実施形態4として、先の実施形態3に対し
て、ユーザは式評価スキップの設定又は解除を実行する
位置を範囲として、例えば「○○アドレスから××アド
レスまでスキップポイントを設定(又は解除)」という
ように指示可能とて、この指示に対してデバッガは、
「○○アドレスから××アドレスまでスキップ実行を設
定せよ」というコマンドと、「○○アドレスから××ア
ドレスまでのスキップ実行を解除せよ」というコマンド
を発行できるように機能拡張され、モニタプログラム
は、デバッガが発行したコマンドを受け付けて式評価ス
キップの設定又は解除をできるようにしてもよい。この
ような実施形態においては、式評価のスキップポイント
を所定の範囲で設定、解除する場合に、先の実施形態3
に比べて容易に行うことが可能となる。
【0045】また、実施形態5として、先の実施形態
1、実施形態2ならびに実施形態3又は実施形態4を組
み合わせて、インストラクション、関数呼び出し、式評
価のスキップ機能を備えた実施形態であってもよい。
【0046】
【発明の効果】以上説明したように、この発明によれ
ば、省略処理の指示を受けると、スキップテーブルを参
照し、参照結果に基づいて実行を省略するインストラク
ションをNOP命令に置換するようにしたので、プログ
ラム中の所定の処理の省略作業が容易に行え、ソフトウ
ェアの開発評価の作業性を改善することができる。
【図面の簡単な説明】
【図1】この発明の実施形態1に係わるデバッグシステ
ムに含まれるデバッガの画面表示例を示す図である。
【図2】ブレーク・スキップテーブルの一例を示す図で
ある。
【図3】インストラクションスキップポイント設定の流
れを示す図である。
【図4】この発明の実施形態2に係わるデバッグシステ
ムに含まれるデバッガの画面表示例、ならびに関数呼び
出しスキップテーブルの一例を示す図である。
【図5】関数呼び出しスキップポイント設定の流れを示
す図である。
【図6】この発明の実施形態3に係わるデバッグシステ
ムに含まれるデバッガの画面表示例、ならびに式評価ス
キップテーブルの一例を示す図である。
【図7】この発明の実施形態3に係わるデバッグシステ
ムに含まれるデバッガの画面表示例、ならびに式評価ス
キップテーブルの他の一例を示す図である。
【符号の説明】
11,21 デバッガ 12 表示画面 13 ボタン 14 ブレーク・スキップテーブル 22 関数呼び出しスキップテーブル 31 式評価スキップテーブル

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 開発評価しようとするソフトウェアにお
    いて実行をスキップするインストラクションの位置に、
    インストラクションスキップポイントを設定する、又は
    前記インストラクションスキップポイントの設定を解除
    する指示を受けて、該指示をインストラクションスキッ
    プポイント設定又は解除のコマンドとして送信し、受信
    した設定、解除情報を表示するデバッガと、 実行を一時停止するインストラクションの位置に設定さ
    れたブレークポイントの設定位置情報と、前記インスト
    ラクションスキップポイントの設定位置情報を有するブ
    レーク・スキップテーブルを備え、前記デバッガから送
    信されたコマンドを受けて、前記ブレーク・スキップテ
    ーブルを調査し、調査結果に基づいて、ブレークポイン
    トが設定されていないインストラクションにインストラ
    クションスキップポイントを設定する場合は設定するイ
    ンストラクションをNOP命令に置き換え、解除する場
    合にはNOP命令を元のインストラクションに戻し、前
    記ブレーク・スキップテーブルの設定位置情報を更新
    し、インストラクションスキップポイントの設定、解除
    情報を前記デバッガに送信し、ブレークポイントが設定
    されているインストラクションにインストラクションス
    キップポイントを設定する場合には、設定するインスト
    ラクションをブレーク発生命令に置き換え、解除する場
    合にはブレーク発生命令を元の命令に戻し、前記ブレー
    ク・スキップテーブルの設定位置情報を更新し、ブレー
    ク・スキップ設定、解除情報を前記デバッガに送信し、
    前記ブレーク発生命令が実行されてブレークが発生して
    スキップ実行、実行継続が指示された場合には、NOP
    命令を実行するデバッグモニタ手段とを有することを特
    徴とするデバッグシステム。
  2. 【請求項2】 開発評価しようとするソフトウェアのソ
    ースプログラム上の関数呼び出し位置と、関数呼び出し
    に対応するジャンプ命令のアドレスの情報を有する関数
    呼び出しスキップテーブルをデバッグ情報として出力す
    るコンパイラとリンカを具備し、 前記デバッガは、開発評価しようとするソフトウェアに
    おいて実行をスキップする関数呼び出しの位置に、関数
    呼び出しスキップポイントを設定する、又は前記関数呼
    び出しスキップポイントの設定を解除する指示を受け
    て、前記関数呼び出しスキップテーブルを調査し、調査
    結果に基づいて前記指示をインストラクションスキップ
    ポイント設定又は解除のコマンドに置き換えて前記デバ
    ッグモニタ手段に送信することを特徴とする請求項1記
    載のデバッグシステム。
  3. 【請求項3】 開発評価しようとするソフトウェアのソ
    ースプログラム上の式の内、式に対応するアドレス範囲
    のインストラクションをNOP命令に置換した場合にレ
    ジスタ割り当てに矛盾が生じない式の行番号と、該番号
    に対応するインストラクションの開始及び終了アドレス
    の情報を有する式評価スキップテーブルをデバッグ情報
    として出力するコンパイラとリンカを具備し、 前記デバッガは、開発評価しようとするソフトウェアに
    おいて実行を省略(スキップ)する式の位置に、式評価
    スキップポイントを設定する、又は前記式評価スキップ
    ポイントの設定を解除する指示を受けて、前記式評価ス
    キップテーブルを調査し、前記指示が可能か否かを判別
    し、可能な場合には前記指示をインストラクションスキ
    ップポイント設定又は解除のコマンドに置き換えて前記
    デバッグモニタ手段に送信することを特徴とする請求項
    1記載のデバッグシステム。
  4. 【請求項4】 前記デバッガは、前記指示が可能な場合
    には、前記式に対応したアドレス範囲のインストラクシ
    ョンスキップポイント設定又は解除のコマンドに置き換
    えて前記デバッグモニタ手段に送信し、 前記デバッグモニタ手段は、前記デバッガが送信したコ
    マンドに対応可能であることを特徴とする請求項3記載
    のデバッグシステム。
JP2000392734A 2000-12-25 2000-12-25 デバッグシステム Expired - Fee Related JP4295912B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000392734A JP4295912B2 (ja) 2000-12-25 2000-12-25 デバッグシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000392734A JP4295912B2 (ja) 2000-12-25 2000-12-25 デバッグシステム

Publications (2)

Publication Number Publication Date
JP2002196950A true JP2002196950A (ja) 2002-07-12
JP4295912B2 JP4295912B2 (ja) 2009-07-15

Family

ID=18858678

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000392734A Expired - Fee Related JP4295912B2 (ja) 2000-12-25 2000-12-25 デバッグシステム

Country Status (1)

Country Link
JP (1) JP4295912B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375955C (zh) * 2004-02-26 2008-03-19 三菱电机株式会社 使用计算机的程序编写装置
KR20150132161A (ko) * 2013-03-15 2015-11-25 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 저스트 마이 코드를 이용하는 자바스크립트 디버깅 기법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100375955C (zh) * 2004-02-26 2008-03-19 三菱电机株式会社 使用计算机的程序编写装置
KR20150132161A (ko) * 2013-03-15 2015-11-25 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 저스트 마이 코드를 이용하는 자바스크립트 디버깅 기법
JP2016511497A (ja) * 2013-03-15 2016-04-14 マイクロソフト テクノロジー ライセンシング,エルエルシー ジャストマイコードを使用したジャバスクリプトデバッギング
US10664384B2 (en) 2013-03-15 2020-05-26 Microsoft Technology Licensing, Llc Javascript debugging using just my code
KR102184436B1 (ko) 2013-03-15 2020-11-30 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 저스트 마이 코드를 이용하는 자바스크립트 디버깅 기법

Also Published As

Publication number Publication date
JP4295912B2 (ja) 2009-07-15

Similar Documents

Publication Publication Date Title
US7661094B2 (en) Real-time software diagnostic tracing
US10229031B2 (en) Debugging inline functions in optimized code
WO2005111801A2 (en) Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems
JPH09198276A (ja) プログラムデバッグシステム
US8448152B2 (en) High-level language, architecture-independent probe program compiler
US20050132338A1 (en) Altering execution flow of a computer program
JP2003050715A (ja) コンパイラおよびデバッグ装置
US20110126175A1 (en) Debugging method and debugging device using hardware breakpoints
US7043717B2 (en) Debugging apparatus and method
JP4295912B2 (ja) デバッグシステム
US7028294B2 (en) Linking of applications into devices having overlays and shadow memories
JPH1021086A (ja) プログラム変換装置とデバッグ装置
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
WO2024069730A1 (ja) デバッグ装置及びデバッグ方法
JP4962226B2 (ja) 開発支援システム、開発支援装置、開発支援方法、および開発支援プログラム
JP2002073370A (ja) デバッグ支援装置およびその装置によるデバッグ方法
JP3085309B2 (ja) デバッグシステム
JP2002366378A (ja) プログラムのデバッグ装置及びデバッグ方法、並びに記憶媒体
JPS61180342A (ja) 高級言語のステツプ実行方式
JPH0816428A (ja) オブジェクト指向プログラムのコンパイルシステム及びデバッグ方法
JP3183228B2 (ja) プログラムデバッグ装置およびデバッグ方法
JPH10161904A (ja) 複数言語対応のデバッグ装置およびデバッグ方法
JP2697230B2 (ja) デバッグ支援装置
JPS6292032A (ja) プログラムテスト方法
EP1378835B1 (en) Process and system for comfortable debugging of computer programs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050308

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090317

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090413

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120417

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130417

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees