JPH0816428A - オブジェクト指向プログラムのコンパイルシステム及びデバッグ方法 - Google Patents

オブジェクト指向プログラムのコンパイルシステム及びデバッグ方法

Info

Publication number
JPH0816428A
JPH0816428A JP6148413A JP14841394A JPH0816428A JP H0816428 A JPH0816428 A JP H0816428A JP 6148413 A JP6148413 A JP 6148413A JP 14841394 A JP14841394 A JP 14841394A JP H0816428 A JPH0816428 A JP H0816428A
Authority
JP
Japan
Prior art keywords
function
window
debug
program
display
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.)
Pending
Application number
JP6148413A
Other languages
English (en)
Inventor
Masahiro Oku
昌宏 奥
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP6148413A priority Critical patent/JPH0816428A/ja
Publication of JPH0816428A publication Critical patent/JPH0816428A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 オブジェクトが動的に生成されるような場合
であっても、任意のオブジェクトの内部状態の表示や更
新等の操作を容易に行うことができるようにする。 【構成】 オブジェクト指向プログラムのデバッグ作業
に先立ち、当該オブジェクト指向プログラムを構成する
関数やオブジェクトにそれぞれ対応するデバッグ操作用
のウィンドウオブジェクトを組み込み、デバッグ作業開
始後は、関数間の起動関係やオブジェクト間の生成関係
を前記ウィンドウオブジェクト間の関係として表示装置
に表示させ、内部データに対する表示操作と更新操作等
のデバッグ操作を前記のウィンドウオブジェクトに対す
る操作として代替して行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、オブジェクト指向プロ
グラムのコンパイルシステムおよびデバッグ方法に関す
るものである。
【0002】
【従来の技術】従来、プログラムのデバッグに使用され
ているシンボリックデバッガの技術やオブジェクト指向
プログラムのデバッグ方法としては、次のようなものが
ある。
【0003】(1) シンボリックデバッガ ソースプログラムで使用した変数名を使用し、その変数
に割り当てられたメモリの内容を表示したり、更新した
りする。また、関数名やソースファイルの行番号を指定
することによって、プログラム実行中断位置を指定す
る。
【0004】(2) 特開平4−181436号 各オブジェクトのメソッド実行時にオブジェクト識別
子、クラス名、メソッド名等からなるエラー標識を登録
し、エラー発生時にエラー標識を参照することによって
プログラムの実行状態を確認する。
【0005】(3) 特開平5−108403号 各クラスにそのクラスのインスタンスの状態を出力する
デバッグ用のメソッドを備え、状態を表示したいインス
タンス(ソースプログラム上から表示したいインスタン
スのシンボルをユーザが特定することによって選択した
インスタンス)に対し、デバッグ用メソッドに対応する
メッセージをシンボリックデバッガから与えることによ
り、インスタンスの状態を表示する。
【0006】(4) 特開平5−282174号 オブジェクトの実行の推移をデバッガ側で逐次監視制御
することによって、予め取得したオブジェクト関連図に
従って、プログラム実行状態に対応したオブジェクトの
関連を表示したり、オブジェクト・図形間関連情報に従
って、オブジェクト関連図中の任意に指定されたオブジ
ェクトに対する内部情報を参照可能にする。
【0007】
【発明が解決しようとする課題】しかしながら、上記の
従来方法には以下の問題がある。
【0008】(1) シンボリックデバッガでの問題点 シンボリックデバッガでは、処理単位の大きさという観
点で見れば、ソースプログラムという粒度の低いレベル
でのデバッグしかできず、オブジェクト指向プログラミ
ングの中核をなす概念としてのオブジェクトという粒度
の高いレベルでのデバッグ方法には対応していない。
【0009】具体的には、シンボリックデバッガでは、
動的に生成された複数のオブジェクトの中から任意のオ
ブジェクトを選択し、その内部状態を調べたり、変更し
たりすることは非常に困難である。
【0010】また、現在のオブジェクトの生成状況を直
感的に把握することが困難であり、生成されたオブジェ
クト間の関係(ポインタのチェイン関係)を表示するた
めには、ポインタのチェイン関係をたどって表示するた
めのデバッガコマンドをユーザが入力しなければならな
い。
【0011】さらに、チェイン関係をたどって表示する
コマンドは、デバッグ対象プログラムの実行を明示的に
中断させたタイミングでしか入力できないが、オブジェ
クト間の生成状況を把握できない状態では、適切な中断
タイミングを選択するのは困難である。
【0012】(2) 特開平4−181436号での問
題点 本方法は、どのオブジェクトに対しどのメソッドが起動
されたかという履歴を管理するものであるので、生成さ
れているオブジェクト間の関係を表示したり、任意のオ
ブジェクトに対する内部状態を表示・更新したりするこ
とはできない。
【0013】(3) 特開平5−108403号での問
題点 本方法においても、オブジェクト間の関係を表示した
り、プログラムが現時点で直接アクセスしていない任意
のオブジェクトに対して、内部状態の表示・更新等の操
作はできない。また、デバッグ操作対象のオブジェクト
は、シンボリックデバッガと同様にシンボリックに指定
する必要がある。
【0014】(4) 特開平5−282174号での問
題点 本方法では、オブジェクトの生成・消滅等のプログラム
実行の推移を常にデバッガ側で監視していなければなら
ないため、専用のデバッグ装置が必要である。
【0015】また、本方法で必要なオブジェクト関連図
は、デバッグ対象とするオブジェクトの全個数とそれら
の間のすべての関係を予め決定できる場合(プログラム
を構成するオブジェクトが予め特定できる場合)に限っ
て作成可能であるが、生成されるオブジェクトの個数と
それらの間の関係が予め特定できない場合(例えば、入
力データによってオブジェクトが動的に生成され、オブ
ジェクト間の関係が決まる場合)には適用できない。
【0016】本発明の目的は、オブジェクトが動的に生
成されるような場合であっても、任意のオブジェクトの
内部状態の表示や更新等の操作を容易に行うことができ
るオブジェクト指向プログラムのコンパイルシステムお
よびデバッグ方法を提供することである。
【0017】
【課題を解決するための手段】本発明は、上記目的を達
成するために、オブジェクト指向プログラミングにおけ
るオブジェクトは、それ自身がデータを管理すると共
に、そのデータに対する操作手順(手続き・関数)をも
具備していることに着目し、このオブジェクトに、デバ
ッグ操作手順(手続き・関数)も具備させることを特徴
とする。
【0018】具体的には、本発明のオブジェクト指向プ
ログラムのコンパイルシステムは、オブジェクト指向プ
ログラムのデバッグ作業に先立ち、当該オブジェクト指
向プログラムを構成する関数やオブジェクトにそれぞれ
対応するデバッグ操作用のウィンドウオブジェクトをコ
ンパイル時に組み込む手段を備えることを特徴とする。
【0019】また、本発明のデバッグ方法は、前記コン
パイルシステムを使用し、オブジェクト指向プログラム
のデバッグ作業に先立ち、当該オブジェクト指向プログ
ラムを構成する関数やオブジェクトにそれぞれ対応する
デバッグ操作用のウィンドウオブジェクトを組み込み、
デバッグ作業開始後は、関数間の起動関係やオブジェク
ト間の生成関係を前記ウィンドウオブジェクト間の関係
として表示装置に表示させ、内部データに対する表示操
作と更新操作等のデバッグ操作を前記のウィンドウオブ
ジェクトに対する操作として代替して行うことを特徴と
する。
【0020】ここで、前記ウィンドウオブジェクトは、
デバッグ対象関数あるいはデバッグ対象ウィンドウ毎
に、内部データの値に対する表示・更新操作の受付と実
行、ソースプログラムの表示・更新操作の受付と実行、
関数の呼び出し関係やオブジェクト間のチェイン関係の
表示等のデバッグ操作用のコールバック関数を備える。
【0021】
【作用】上記手段によれば、デバッグ対象プログラムの
実行に伴い、起動された関数や生成されたオブジェクト
に対応するそれぞれのウィンドウオブジェクトがウィン
ドウに表示される。さらに、デバッグ対象関数やデバッ
グ対象クラスオブジェクトの内部データが持つポインタ
値をもとに、ポインタが指すクラスオブジェクトに対応
するウィンドウオブジェクトとの関係が矢印等の表現で
表示装置ウィンドウに表示される。
【0022】この状態で、ユーザがウィンドウオブジェ
クトの1つを選択し、データ値の表示・更新等のデバッ
グ操作を行うと、データ値の表示・更新が実行される。
【0023】
【実施例】以下、オブジェクト指向言語C++で記述さ
れたプログラムに対して適用した場合の本発明の一実施
例を図面を参照しながら詳細に説明する。
【0024】図1は、本発明のデバッグ方法の一実施例
を示す基本フロー図であり、デバッグ対象関数101お
よびデバッグ対象クラス102を含んだソースプログラ
ム100はンパイルシステム110に入力され、ここで
実行形式プログラム120に変換される。
【0025】実行形式プログラム120は、デバッグ対
象関数121とデバッグ対象クラス125とから成る
が、デバッグ対象関数121にはデバッグ対象関数10
1のコンパイル時に、関数入口にウィンドウオブジェク
ト生成命令122が組み込まれると共に、関数出口にウ
ィンドウオブジェクト消滅命令123が組み込まれる。
また、このデバッグ対象関数用ウィンドウオブジェクト
のデバッグ操作手続きを保持するウィンドウオブジェク
トクラス124が組み込まれる。
【0026】同様に、デバッグ対象クラス125には、
デバッグ対象クラス102のコンパイル時に、オブジェ
クト生成関数内部にウィンドウオブジェクト生成命令1
26が組み込まれると共に、オブジェクト消滅関数内部
にウィンドウオブジェクト消滅命令127が組み込まれ
る。さらに、このクラス用ウィンドウオブジェクトのデ
バッグ操作手続きを保持するウィンドウオブジェクトク
ラス128が組み込まれる。
【0027】このようにコンパイルされた実行形式プロ
グラム120を実行すると、デバッグ対象関数121に
組み込まれたウィンドウオブジェクト生成命令122が
実行される。
【0028】この結果、ウィンドウオブジェクト131
が表示装置ウィンドウ130に表示され、デバッグ操作
132の受付と実行が可能な状態になる。
【0029】同様に、デバッグ対象クラス125のオブ
ジェクトが生成されると、ウィンドウオブジェクト生成
命令126が実行される。
【0030】この結果、ウィンドウオブジェクト133
が表示され、デバッグ操作134の受付と実行が可能に
なる。
【0031】デバッグ対象関数121がデバッグ対象ク
ラス125のオブジェクトを取得し、このオブジェクト
へのポインタ値を関数の内部変数に設定する時、このポ
インタ関係をウィンドウ表示する関数が起動され、ウィ
ンドウオブジェクト131からウィンドウオブジェクト
133に向かう矢印135がウィンドウ上に表示され
る。
【0032】ウィンドウオブジェクト131の消去は、
デバッグ対象関数121の終了直前に実行されるウィン
ドウ消滅命令123によって実行される。
【0033】同様に、ウィンドウオブジェクト133の
消去は、デバッグ対象クラス125のオブジェクトを消
滅させる直前に実行されるウィンドウオブジェクト消滅
命令127によって実行される。
【0034】このようにデバッグ対象関数の制御の開始
・終了あるいはデバッグ対象クラスのオブジェクトの生
成・消滅とウィンドウオブジェクトの生成・消滅が1対
1に対応して実行されること、さらにウィンドウオブジ
ェクトがデバッグ操作用のコールバック関数を具備して
いることの理由により、シンボルという表現手段しかも
たなかった関数やオブジェクトをデバッグ操作の直接の
対象にする代わりに、ウィンドウという表現手段をもつ
ウィンドウオブジェクトをデバッグ操作の直接の対象と
することが可能になる。
【0035】図2は、全てのオブジェクトに有効な大域
関数に対するコンパイルシステム110によるデバッグ
機能の組み込み結果を示す図である。本例では、デバッ
グ対象クラスのメンバ関数は、デバッグ機能組み込みの
対象とはしないが、組み込み対象としてもよい。
【0036】デバッグ対象関数200は、複数の局所変
数宣言201と関数本来の処理202を持っている。こ
の関数200に対するデバッグ機能の組み込み場所と組
み込み内容は以下の通りである。
【0037】局所変数の宣言213の前には、ウィンド
ウオブジェクトへのポインタ宣言211とウィンドウオ
ブジェクト生成処理212が組み込まれる。ポインタ宣
言211は、ウィンドウオブジェクト生成処理212で
生成したウィンドウオブジェクトのアドレスを保持す
る。
【0038】もし、関数本来の処理214がオブジェク
トへのポインタ値の更新処理を持っているならば、後述
するオブジェクトポインタのチェイン表示関数231の
呼び出しをポインタ更新処理に組み込む。
【0039】関数本来の処理214の後には、ウィンド
ウオブジェクトの消滅処理215が組み込まれる。
【0040】また、デバッグ対象関数210に対するデ
バッグ操作手順(手続き・関数)を定義したウィンドウ
オブジェクトクラス定義220が所定の位置に組み込ま
れる。
【0041】ウィンドウオブジェクトクラス定義220
は、ウィンドウオブジェクトの実体を生成し、表示装置
ウィンドウ上に表示する機能をもつコンストラクタ22
1、ウィンドウオブジェクトの実体を消滅させ、表示装
置ウィンドウ上から消去する機能をもつデストラクタ2
22、表示されたウィンドウオブジェクトのデバッグ操
作メニューを表示する機能をもつコールバック関数22
3、デバッグ操作メニュー項目(局所変数一覧表示、局
所変数値表示、局所変数値更新、関数ソースプログラム
表示)対応に用意されたコールバック関数225〜22
8、コール元関数のウィンドウオブジェクトからのチェ
インを表示する機能をもつ関数230、オブジェクトへ
のポインタ値をウィンドウ上にチェイン表示する機能を
もつ関数231、これらの関数が個別の局所変数の値を
参照・更新する際に使用する局所変数アクセス関数22
4とそのための局所変数領域アドレス格納変数229等
を保持する。
【0042】本例では、クラスメンバ関数の形式でデバ
ッグ操作関数を組み込んだが、上記関数は通常の関数と
して組み込まれてもよい。
【0043】デバッグ対象関数210が起動された場合
の動作は以下の通りである。
【0044】まず最初に、ウィンドウオブジェクトの生
成処理212が実行され、コンストラクタ221が呼び
出される。
【0045】コンストラクタ221は、ウィンドウオブ
ジェクトを生成した後、デバッグ操作メニュー表示等の
関数223、225〜228をコールバック関数として
このウィンドウオブジェクトに登録する。コンストラク
タ221は更に関数230を呼び出し、コール元関数と
のチェイン表示を生成し、処理を終了する。
【0046】デバッグ対象関数210は、続いて、局所
変数の宣言213、関数本来の処理214、ウィンドウ
オブジェクト消滅命令215を実行した後、処理を終了
する。
【0047】関数本来の処理214がオブジェクトへの
ポインタ値を更新する場合、関数231が呼び出され、
ポインタ更新前の値に対応する表示装置ウィンドウ上の
チェイン表示を消去し、ポインタ更新後の値に対応する
表示装置ウィンドウ上のチェイン表示を生成する。
【0048】次に、ウィンドウオブジェクト消滅命令2
15は、デストラクタ222を呼び出す。このデストラ
クタ222は、関数230、関数231を呼び出し、コ
ール元関数とのチェイン表示、オブジェクトへのポイン
タ値によるチェイン表示を消去した後、ウィンドウオブ
ジェクトを消滅させる。
【0049】図3は、クラスに対するコンパイルシステ
ム110によるデバッグ機能の組み込み結果を示す図で
あり、通常のデバッグ対象クラス300は、複数のメン
バ変数宣言301、コンストラクタ本来の処理303を
含むコンストラクタ関数定義302、デストラクタ本来
の処理305を含むデストラクタ関数定義304、メン
バ関数本来の処理307を含む複数のメンバ関数定義3
06を持っている。
【0050】本例の場合は、クラス定義がメンバ関数定
義を含む場合の例であるが、メンバ関数定義がクラス定
義の外で記述されている場合もデバッグ機能の組み込み
方法は同様である。
【0051】このクラス定義300に対するデバッグ機
能の組み込み場所と組み込み内容は以下の通りである。
【0052】メンバ変数の宣言311の後にはウィンド
ウオブジェクトへのポインタ宣言312が組み込まれ
る。
【0053】また、コンストラクタ関数の定義313の
コンストラクタ本来の処理315の前には、ウィンドウ
オブジェクト生成処理314が組み込まれる。
【0054】ウィンドウオブジェクトへのポインタ宣言
312には、ウィンドウオブジェクト生成処理314で
生成したウィンドウオブジェクトのアドレスを保持す
る。
【0055】デストラクタ関数の定義316のデストラ
クタ本来の処理317の後には、ウィンドウオブジェク
ト消滅処理318が組み込まれる。
【0056】コンストラクタ本来の処理315、デスト
ラクタ本来の処理317、あるいはメンバ関数本来の処
理320で、オブジェクトへのポインタ値を保持するメ
ンバ変数または大域変数を更新しているならば、オブジ
ェクトポインタのチェイン表示関数340の呼び出し処
理が更新箇所に組み込まれる。
【0057】また、クラス310に対するデバッグ操作
手順(手続き・関数)を定義したウィンドウオブジェク
トのクラス定義330が所定の位置に組み込まれる。
【0058】ウィンドウオブジェクトのクラス定義33
0は、ウィンドウオブジェクトの実体を生成し、表示装
置ウィンドウ上に表示する機能をもつコンストラクタ3
31、ウィンドウオブジェクトの実体を消滅させ、表示
装置ウィンドウ上から消す機能をもつデストラクタ33
2、表示されたウィンドウオブジェクトのデバッグ操作
メニューを表示する機能を持つコールバック関数33
3、デバッグ操作メニュー項目(メンバ変数一覧表示、
メンバ変数値表示、メンバ変数値更新、クラスソースプ
ログラム表示)対応に用意されたコールバック関数33
5〜338、オブジェクトへのポインタ値を表示装置ウ
ィンドウ上にチェイン表示する機能をもつチェイン表示
関数340、これらの関数が個別のメンバ変数の値を参
照・更新する際に使用するアクセス関数334と、その
ためのクラスオブジェクトへのポインタ宣言339等を
保持する。
【0059】本例では、クラスメンバ関数の形式でデバ
ッグ操作関数を組み込んだが、上記関数は通常の関数と
して組み込まれてもよい。
【0060】クラス310のコンストラクタ313が起
動された場合、以下の順序で処理が実行される。
【0061】まず、ウィンドウオブジェクト生成命令3
14を実行してコンストラクタ331を呼び出す。
【0062】コンストラクタ331は、ウィンドウオブ
ジェクトを生成した後、デバッグ操作メニュー表示等の
関数333、335〜338をコールバック関数とし
て、このウィンドウオブジェクトに登録し処理を終了す
る。
【0063】コンストラクタ313は、生成したウィン
ドウオブジェクトのアドレスをポインタ宣言312に格
納し、コンストラクタ本来の処理315を実行する。
【0064】コンストラクタ本来の処理315がオブジ
ェクトへのポインタ値を更新する場合、チェイン表示関
数340が呼び出され、ポインタ更新前の値に対応する
表示装置ウィンドウ上のチェイン表示を消去し、ポイン
タ更新後の値に対応する表示装置ウィンドウ上のチェイ
ン表示を生成する。
【0065】クラス310のデストラクタ316が起動
された場合、以下の順序で処理が実行される。
【0066】まず、チェイン表示関数340を起動する
ことによって、自ウィンドウオブジェクトから出ている
矢印のチェイン表示を消去する。
【0067】次いで、デストラクタ本来の処理を行う。
最後に、ウィンドウオブジェクトの消滅命令318を実
行してデストラクタ332を呼び出す。
【0068】図4は、プログラムのトップレベルにおけ
るデバッグ機能の組み込み結果を示す図であり、通常の
プログラム400は複数の大域変数宣言401、最初に
制御移行を受けるmain関数定義410を持ってい
る。
【0069】このようなプログラム400に対するデバ
ッグ機能の組み込み場所と組み込み内容は以下の通りで
ある。
【0070】大域変数宣言411の後には、トップレベ
ルウィンドウオブジェクトへのポインタ宣言412が組
み込まれる。また、その後に続いてトップレベルウィン
ドウオブジェクトの生成処理呼び出し413、ウィンド
ウイベント待ちメインループ処理414、トップレベル
ウィンドウオブジェクトの消滅処理呼び出し415が組
み込まれる。
【0071】また、プログラム410に対するデバッグ
操作手順(手続き・関数)を定義したトップレベルウィ
ンドウオブジェクトクラス定義420が所定の位置に組
み込まれる。
【0072】トップレベルウィンドウオブジェクトクラ
ス定義420は、トップレベルウィンドウオブジェクト
の実体を生成し、表示装置ウィンドウ上に表示する機能
をもつコンストラクタ421、トップレベルウィンドウ
オブジェクトの実体を消滅させ、表示装置ウィンドウ上
から消去する機能をもつデストラクタ422、表示され
たトップレベルウィンドウオブジェクトのデバッグ操作
メニューを表示する機能をもつコールバック関数42
3、デバッグ操作メニュー項目(大域変数一覧表示、大
域変数値表示、大域変数値更新)対応に用意されたコー
ルバック関数425〜427、これらの関数が個別の大
域変数の値を参照・更新する際に使用するアクセス関数
424をもつ。
【0073】さらに、プログラムの実行を制御する起動
/停止/継続ボタン表示関数430と、起動ボタンのコ
ールバック関数main440、停止ボタンのコールバ
ック関数(停止シグナルハンドラ関数)441、継続ボ
タンのコールバック関数(停止シグナルハンドラ脱出関
数)442を持つ。
【0074】本例では、元々の関数main定義440
は、起動ボタン押下によって起動され、停止ボタン押下
によって停止し、継続ボタン押下によって継続する方式
を用ているが、自動的に元々の関数main440を起
動するようになっていてもよい。さらに、トップレベル
ウィンドウオブジェクトクラス420のメンバ421〜
442は、クラスのメンバ関数ではなく大域関数として
定義されてもよい。
【0075】図5は、デバッグ時に表示装置ウィンドウ
に表示されるトップレベルウィンドウの一例を示す図で
あり、デバッグ対象プログラムの実行途中の時点で、関
数main、F、Gが図示する順番にコールされている
場合、この様子がトップレベルウィンドウ500でウィ
ンドウオブジェクト501〜503とそれらの間を結ぶ
矢印504、505として表示される。
【0076】また、この時点でのオブジェクトの生成状
況とそのチェイン関係がウィンドウオブジェクト510
〜516とそれらの間のチェイン関係で表示される。
【0077】なお、ウィンドウ上部には、プログラムの
実行を制御する起動ボタン530、停止ボタン531、
継続ボタン532が表示される。
【0078】この状態で例えばクラスDのオブジェクト
516を選択すると、デバッグ操作メニュー520が表
示される。このデバッグ操作メニュー520は、「メン
バ変数一覧表示」520a、「クラスソースプログラム
表示」520b、「メンバ変数値表示」520c、「メ
ンバ変数値更新」520dとから成っている。
【0079】そこで、そのメニュー項目から例えば「メ
ンバ変数一覧表示」520aを選択すると、メンバ変数
一覧ウィンドウ521が表示され、オブジェクト516
が持つメンバ変数とその値の一覧が表示される。
【0080】表示されたメンバ変数の中に変更したい値
がある場合は、変更対象の「値」を指定してメンバ変数
値更新モードに切り替えるか、メンバ変数値更新」52
0dを選択した後に、新たな変数値を入力する。
【0081】「メンバ変数値表示」520cを選択した
場合、特定の変数値が表示される。
【0082】また、「クラスソースプログラム表示」5
20bを選択した場合、コンパイル前のクラスソースプ
ログラムの内容が表示される。
【0083】なお、図2の大域関数に対するデバッグ機
能を組み込んだ場合は、局所変数一覧表示、局所変数値
表示、局所変数値更新、関数ソースプログラム表示とい
ったデバッグ操作メニューが表示される。
【0084】また、図4のプログラムのトップレベルに
おけるデバッグ機能を組み込んだ場合は、大域変数一覧
表示、大域変数値表示、大域変数値更新といったデバッ
グ操作メニューが表示される。
【0085】
【発明の効果】以上説明したように本発明のオブジェク
ト指向プログラムのコンパイルシステムは、オブジェク
ト指向プログラムのデバッグ作業に先立ち、当該オブジ
ェクト指向プログラムを構成する関数やオブジェクトに
それぞれ対応するデバッグ操作用のウィンドウオブジェ
クトをコンパイル時に組み込む手段を有しているので、
組み込んだデバッグ操作用のウィンドウオブジェクトに
よってデバッグ対象プログラムが生成するオブジェクト
及びそのオブジェクト間の関係をビジュアルに表示させ
ることにより、プログラムの実行状況、オブジェクト間
の生成状況を容易に把握することが可能になる。
【0086】また、本発明のオブジェクト指向プログラ
ムのデバッグ方法は、前記コンパイルシステムを使用
し、オブジェクト指向プログラムのデバッグ作業に先立
ち、当該オブジェクト指向プログラムを構成する関数や
オブジェクトにそれぞれ対応するデバッグ操作用のウィ
ンドウオブジェクトを組み込み、デバッグ作業開始後
は、関数間の起動関係やオブジェクト間の生成関係を前
記ウィンドウオブジェクト間の関係として表示装置に表
示させ、内部データに対する表示操作と更新操作等のデ
バッグ操作を前記のウィンドウオブジェクトに対する操
作として代替して行うようにしたので、オブジェクトの
種類やオブジェクトの内部に関する知識を持っていなく
ても、任意のオブジェクトを選択してデバッグ操作を施
すことができる。
【0087】この結果、デバッグコマンドを覚えること
や、オブジェクト間のチェイン関係を事前に把握してお
くことの必要性がなくなるうえ、専用のデバッグ装置も
不要となる。
【0088】さらに、どのオブジェクトにデバッグ操作
を施すのかをビジュアルに選択できるため、複雑なシン
ボル表現を必要とするデバッグ操作に比べ、容易にデバ
ッグが可能となるといった効果がある。
【0089】また、オブジェクトが動的に生成されるよ
うな場合であっても、その生成されたオブジェクトに対
応するウィンドウオブジェクトが表示されるので、その
中の任意のオブジェクトの内部状態の表示や更新等の操
作を容易に行うことができる。
【図面の簡単な説明】
【図1】本発明のデバッグ方法の一実施例を示す基本フ
ロー図である。
【図2】大域関数に対するデバッグ機能の組み込み結果
を示す説明図である。
【図3】クラスに対するデバッグ機能の組み込み結果を
示す説明図である。
【図4】プログラムのトップレベルにおけるデバッグ機
能の組み込み結果を示す説明図である。
【図5】デバッグ時の表示装置ウィンドウの表示例を示
す説明図である。
【符号の説明】
100…ソースプログラム、101…デバッグ対象関
数、102…デバッグ対象クラス、110…コンパイル
システム、120…実行形式プログラム、121…デバ
ッグ対象関数、122…ウィンドウオブジェクト生成命
令、123…ウィンドウオブジェクト消滅命令、124
…ウィンドウオブジェクトクラス、125…デバッグ対
象クラス、126…ウィンドウオブジェクト生成命令、
127…ウィンドウオブジェクト消滅命令、128…ウ
ィンドウオブジェクトクラス、130…実行形式プログ
ラムの実行時のウィンドウ。

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクト指向プログラムのデバッグ
    作業に先立ち、当該オブジェクト指向プログラムを構成
    する関数やオブジェクトにそれぞれ対応するデバッグ操
    作用のウィンドウオブジェクトをコンパイル時に組み込
    む手段を備えることを特徴とするコンパイルシステム。
  2. 【請求項2】 オブジェクト指向プログラムのデバッグ
    作業に先立ち、当該オブジェクト指向プログラムを構成
    する関数やオブジェクトにそれぞれ対応するデバッグ操
    作用のウィンドウオブジェクトをコンパイル時に組み込
    み、デバッグ作業開始後は、関数間の起動関係やオブジ
    ェクト間の生成関係を前記ウィンドウオブジェクト間の
    関係として表示装置に表示させ、内部データに対する表
    示操作と更新操作等のデバッグ操作を前記のウィンドウ
    オブジェクトに対する操作として代替して行うことを特
    徴とするオブジェクト指向プログラムのデバッグ方法。
  3. 【請求項3】 前記ウィンドウオブジェクトは、デバッ
    グ対象関数あるいはデバッグ対象ウィンドウ毎に、内部
    データの値に対する表示・更新操作の受付と実行、ソー
    スプログラムの表示・更新操作の受付と実行、関数の呼
    び出し関係やオブジェクト間のチェイン関係の表示等の
    デバッグ操作用のコールバック関数を備えるものである
    請求項2記載のオブジェクト指向プログラムのデバッグ
    方法。
JP6148413A 1994-06-30 1994-06-30 オブジェクト指向プログラムのコンパイルシステム及びデバッグ方法 Pending JPH0816428A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6148413A JPH0816428A (ja) 1994-06-30 1994-06-30 オブジェクト指向プログラムのコンパイルシステム及びデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6148413A JPH0816428A (ja) 1994-06-30 1994-06-30 オブジェクト指向プログラムのコンパイルシステム及びデバッグ方法

Publications (1)

Publication Number Publication Date
JPH0816428A true JPH0816428A (ja) 1996-01-19

Family

ID=15452244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6148413A Pending JPH0816428A (ja) 1994-06-30 1994-06-30 オブジェクト指向プログラムのコンパイルシステム及びデバッグ方法

Country Status (1)

Country Link
JP (1) JPH0816428A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016528650A (ja) * 2013-08-22 2016-09-15 オラクル・インターナショナル・コーポレイション クラウドベースのターゲットデバッグ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016528650A (ja) * 2013-08-22 2016-09-15 オラクル・インターナショナル・コーポレイション クラウドベースのターゲットデバッグ

Similar Documents

Publication Publication Date Title
US5319645A (en) Method for debugging and testing the correctness of programs
JPH05505695A (ja) 多重アーキテクチャ環境内で特にコードのデバッグを行う改良したソフトウェア・デバッグ・システムと方法
EP0690378A1 (en) Tool and method for diagnosing and correcting errors in a computer programm
JPH07168710A (ja) プログラムを構成するためのシステム及び方法
JP2000122886A (ja) 半導体試験装置のプログラム作成方式
EP0435139A2 (en) A programmable controller for executing SFC language programs
US20050071786A1 (en) Timing and distance control for displaying dynamic information
JP3372106B2 (ja) プログラムデバッグ装置
JPH1021086A (ja) プログラム変換装置とデバッグ装置
CN112199097A (zh) 安装包生成方法、装置、计算机设备和存储介质
JP4295912B2 (ja) デバッグシステム
JP2570593B2 (ja) デバッグ装置
JPH02220145A (ja) プログラムトレース方式
JPS62162105A (ja) フロ−チヤ−ト式プログラマブルコントロ−ラ
JPH03144833A (ja) デバッグ・システム
JPH08185326A (ja) インタープリタ言語処理装置
JPH0546434A (ja) プログラムデバツグ方式
JPS63223931A (ja) 論理図実行ル−ト出力処理方式
JPS61180342A (ja) 高級言語のステツプ実行方式
JP3139393B2 (ja) デバッグ装置
JPH1173342A (ja) プログラム試験装置及びプログラム試験方法
JP3330979B2 (ja) エミュレータ
JPS63223928A (ja) 論理図デバツグ処理方式
Gorham Reference Manual of the Lua Debugger 1.0 (beta)
JPH0731616B2 (ja) プログラムデバッグ装置