JPH06266579A - オブジェクト指向プログラムのデバッグ装置 - Google Patents
オブジェクト指向プログラムのデバッグ装置Info
- Publication number
- JPH06266579A JPH06266579A JP5053725A JP5372593A JPH06266579A JP H06266579 A JPH06266579 A JP H06266579A JP 5053725 A JP5053725 A JP 5053725A JP 5372593 A JP5372593 A JP 5372593A JP H06266579 A JPH06266579 A JP H06266579A
- Authority
- JP
- Japan
- Prior art keywords
- message
- processing
- internal state
- change information
- program
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】
【目的】オブジェクト指向プログラムのデバッグ装置を
提供することにある。 【構成】オブジェクト間のメッセージの送受信の履歴情
報格納部10と、オブジェクトの変更情報格納部11か
ら、メッセージ受信前後のオブジェクトの内部状態と、
オブジェクト間の実行状態を表す流れ図を表示部3に表
示する。 【効果】オブジェクト指向プログラムで、処理の任意の
時点でのオブジェクトの内部状態を表示すること、およ
び処理の途中から再実行することができ、効果的なデバ
ッグを行うことができる。
提供することにある。 【構成】オブジェクト間のメッセージの送受信の履歴情
報格納部10と、オブジェクトの変更情報格納部11か
ら、メッセージ受信前後のオブジェクトの内部状態と、
オブジェクト間の実行状態を表す流れ図を表示部3に表
示する。 【効果】オブジェクト指向プログラムで、処理の任意の
時点でのオブジェクトの内部状態を表示すること、およ
び処理の途中から再実行することができ、効果的なデバ
ッグを行うことができる。
Description
【0001】
【産業上の利用分野】本発明は、オブジェクト指向プロ
グラムの開発環境におけるデバッグ装置に係り、特に、
オブジェクト間の処理の実行状態とオブジェクトの内部
状態を表示することによって、効果的なデバッグを支援
するデバッグ装置に関する。
グラムの開発環境におけるデバッグ装置に係り、特に、
オブジェクト間の処理の実行状態とオブジェクトの内部
状態を表示することによって、効果的なデバッグを支援
するデバッグ装置に関する。
【0002】
【従来の技術】これまでの、逐次的に処理を行うプログ
ラムの場合のデバッグは、プログラムのある特定の時点
で処理を止め、そのときの変数等の内容を表示する方法
で行われてきた。特定の時点から逐次的に処理を進め、
その都度、変数の内容を表示することによりデバッグを
行うもので、エラーが起こった時点までのデバッグは可
能であるが、エラーが起こった時点よりも後の処理を、
エラーが起こった時点から再実行することは不可能であ
った。しかし、オブジェクト指向プログラムでは、この
ような逐次的な処理の流れではなく、オブジェクトを処
理の単位とし、オブジェクト間のメッセージの送受信に
より処理が進められる。オブジェクトはそれ自身の内部
状態を表現する変数を持ち、他のオブジェクトはそれら
に対して自由にアクセスすることはできない。すなわ
ち、オブジェクトの内部状態を変更したり参照するに
は、オブジェクトにメッセージを送信することで行わな
くてはならない。
ラムの場合のデバッグは、プログラムのある特定の時点
で処理を止め、そのときの変数等の内容を表示する方法
で行われてきた。特定の時点から逐次的に処理を進め、
その都度、変数の内容を表示することによりデバッグを
行うもので、エラーが起こった時点までのデバッグは可
能であるが、エラーが起こった時点よりも後の処理を、
エラーが起こった時点から再実行することは不可能であ
った。しかし、オブジェクト指向プログラムでは、この
ような逐次的な処理の流れではなく、オブジェクトを処
理の単位とし、オブジェクト間のメッセージの送受信に
より処理が進められる。オブジェクトはそれ自身の内部
状態を表現する変数を持ち、他のオブジェクトはそれら
に対して自由にアクセスすることはできない。すなわ
ち、オブジェクトの内部状態を変更したり参照するに
は、オブジェクトにメッセージを送信することで行わな
くてはならない。
【0003】オブジェクト指向プログラムにおけるデバ
ッグ装置では、情報処理,Vol. 27,No.4,p
p.340(1988)に記載されているように、メッ
セージ送信のスタックを見て、その時点のオブジェクト
の内部状態をもとにデバッグを行う。
ッグ装置では、情報処理,Vol. 27,No.4,p
p.340(1988)に記載されているように、メッ
セージ送信のスタックを見て、その時点のオブジェクト
の内部状態をもとにデバッグを行う。
【0004】
【発明が解決しようとする課題】オブジェクト指向で
は、処理の単位であるオブジェクトに対し、メッセージ
を送信することにより処理が進む。アプリケーションに
よっては、同一のオブジェクトに、複数回メッセージが
送信される場合がある。例えば、図3で示すような処理
を考える。図3の処理は、あるプログラムで行われるオ
ブジェクト間のメッセージの送受信を表している。この
処理の中で、オブジェクト102は二度のメッセージ1
01,107を、それぞれ異なったオブジェクト、すな
わちオブジェクト100とオブジェクト108から受信
している。この場合では、まず、オブジェクト100か
らのメッセージ101を受信した後に、オブジェクト1
08からのメッセージ107を受信している。この際、
オブジェクト102の状態は、オブジェクト100から
のメッセージ101を受信した後の内部状態から、オブ
ジェクト108からのメッセージ107を受信した後の
内部状態に変更される。
は、処理の単位であるオブジェクトに対し、メッセージ
を送信することにより処理が進む。アプリケーションに
よっては、同一のオブジェクトに、複数回メッセージが
送信される場合がある。例えば、図3で示すような処理
を考える。図3の処理は、あるプログラムで行われるオ
ブジェクト間のメッセージの送受信を表している。この
処理の中で、オブジェクト102は二度のメッセージ1
01,107を、それぞれ異なったオブジェクト、すな
わちオブジェクト100とオブジェクト108から受信
している。この場合では、まず、オブジェクト100か
らのメッセージ101を受信した後に、オブジェクト1
08からのメッセージ107を受信している。この際、
オブジェクト102の状態は、オブジェクト100から
のメッセージ101を受信した後の内部状態から、オブ
ジェクト108からのメッセージ107を受信した後の
内部状態に変更される。
【0005】処理を進めた際に、オブジェクト102の
内部状態を確認する場合、オブジェクト108からのメ
ッセージ107を受信し、オブジェクト102の内部状
態が変更された後では、オブジェクト100からのメッ
セージ101を受信する以前の状態を再び確認すること
はできない。オブジェクト108からのメッセージ10
7を受信した際にオブジェクト102でエラーが起こっ
た場合、オブジェクト100からのメッセージ101を
受信した後の、オブジェクト102の状態が、そのオブ
ジェクトに対して不適当な状態である場合がある。この
場合、メッセージ107を受信する以前のオブジェクト
102の状態を確認できないため、オブジェクト100
からのメッセージを受信した後の状態を確認するには、
オブジェクト102にオブジェクト108からのメッセ
ージ107が送信される前で処理を止めるように設定
し、処理を始めから再実行して、オブジェクト102の
内部状態を確認する操作をしなければならず、多大な手
間がかかってしまう。
内部状態を確認する場合、オブジェクト108からのメ
ッセージ107を受信し、オブジェクト102の内部状
態が変更された後では、オブジェクト100からのメッ
セージ101を受信する以前の状態を再び確認すること
はできない。オブジェクト108からのメッセージ10
7を受信した際にオブジェクト102でエラーが起こっ
た場合、オブジェクト100からのメッセージ101を
受信した後の、オブジェクト102の状態が、そのオブ
ジェクトに対して不適当な状態である場合がある。この
場合、メッセージ107を受信する以前のオブジェクト
102の状態を確認できないため、オブジェクト100
からのメッセージを受信した後の状態を確認するには、
オブジェクト102にオブジェクト108からのメッセ
ージ107が送信される前で処理を止めるように設定
し、処理を始めから再実行して、オブジェクト102の
内部状態を確認する操作をしなければならず、多大な手
間がかかってしまう。
【0006】また、プログラム実行中に、プログラムの
任意のオブジェクトでエラーが起こった場合、そのエラ
ーが起こった時点以後の処理を行うことができず、以後
の処理の中でのエラーの検出を行うには、再度処理をは
じめから行わなければならず、アプリケーションの規模
によっては複数回のデバッグが必要であるため、この部
分でも手間がかかる。
任意のオブジェクトでエラーが起こった場合、そのエラ
ーが起こった時点以後の処理を行うことができず、以後
の処理の中でのエラーの検出を行うには、再度処理をは
じめから行わなければならず、アプリケーションの規模
によっては複数回のデバッグが必要であるため、この部
分でも手間がかかる。
【0007】以上のように、オブジェクト指向プログラ
ムのデバッグを行う場合、処理の中で多くのオブジェク
トを生成することで、それに伴ってメッセージの送受信
回数が増え、処理が複雑になり、従来の方式ではデバッ
グにかかる手間が大きくなる。
ムのデバッグを行う場合、処理の中で多くのオブジェク
トを生成することで、それに伴ってメッセージの送受信
回数が増え、処理が複雑になり、従来の方式ではデバッ
グにかかる手間が大きくなる。
【0008】本発明の目的は、オブジェクト指向プログ
ラムでの、オブジェクト間のメッセージによる処理の実
行状態を表示し、オブジェクトの内部状態は、メッセー
ジを受信することによって変更されるという特徴を用
い、処理の任意な時点でのオブジェクトの内部状態を表
示すること、および、デバッグ中に、任意のオブジェク
トから処理を再実行することを可能にした、オブジェク
ト指向プログラムのデバッグ装置を提供することにあ
る。
ラムでの、オブジェクト間のメッセージによる処理の実
行状態を表示し、オブジェクトの内部状態は、メッセー
ジを受信することによって変更されるという特徴を用
い、処理の任意な時点でのオブジェクトの内部状態を表
示すること、および、デバッグ中に、任意のオブジェク
トから処理を再実行することを可能にした、オブジェク
ト指向プログラムのデバッグ装置を提供することにあ
る。
【0009】
【課題を解決するための手段】オブジェクト指向プログ
ラムでの、オブジェクト間のメッセージの送受信におけ
る、メッセージ受信オブジェクト,メッセージ受信オブ
ジェクト起動回数,メッセージ送信回数およびメッセー
ジ名称を格納するメッセージ履歴情報と、オブジェクト
のメッセージ受信によるオブジェクト変更情報と、オブ
ジェクトの内部状態および、オブジェクト間のメッセー
ジの流れを表示する実行状態表示手段とを具備してい
る。
ラムでの、オブジェクト間のメッセージの送受信におけ
る、メッセージ受信オブジェクト,メッセージ受信オブ
ジェクト起動回数,メッセージ送信回数およびメッセー
ジ名称を格納するメッセージ履歴情報と、オブジェクト
のメッセージ受信によるオブジェクト変更情報と、オブ
ジェクトの内部状態および、オブジェクト間のメッセー
ジの流れを表示する実行状態表示手段とを具備してい
る。
【0010】メッセージ履歴情報とは、オブジェクトが
メッセージを受信した際の、メッセージの送信順序,メ
ッセージ受信オブジェクト,メッセージ名,メッセージ
受信オブジェクトの起動回数の組を指す。また、オブジ
ェクト変更情報では、オブジェクトがメッセージを受信
する前の、オブジェクトの内部状態を保持する。
メッセージを受信した際の、メッセージの送信順序,メ
ッセージ受信オブジェクト,メッセージ名,メッセージ
受信オブジェクトの起動回数の組を指す。また、オブジ
ェクト変更情報では、オブジェクトがメッセージを受信
する前の、オブジェクトの内部状態を保持する。
【0011】
【作用】本発明により、オブジェクト指向プログラムの
実行で、オブジェクト間でのメッセージの送受信による
処理の実行状態が表示され、オブジェクト間のメッセー
ジの履歴情報と、メッセージ受信オブジェクトの変更情
報をもつことで、任意な時点でのオブジェクトの内部状
態を表示することができる。さらに、オブジェクトの内
部状態を変更可能にすることで、エラーが生じた時点以
後の処理を再実行することが可能になり、デバッグのた
めのプログラム起動回数が少なくなる。
実行で、オブジェクト間でのメッセージの送受信による
処理の実行状態が表示され、オブジェクト間のメッセー
ジの履歴情報と、メッセージ受信オブジェクトの変更情
報をもつことで、任意な時点でのオブジェクトの内部状
態を表示することができる。さらに、オブジェクトの内
部状態を変更可能にすることで、エラーが生じた時点以
後の処理を再実行することが可能になり、デバッグのた
めのプログラム起動回数が少なくなる。
【0012】
【実施例】図1は、本発明が実行される計算機システム
の一例を示す図である。図1のような計算機システムの
上で、オブジェクト指向プログラムを起動させたとき
に、制御部2のメモリ1上に処理単位であるオブジェク
トが割り当てられる。
の一例を示す図である。図1のような計算機システムの
上で、オブジェクト指向プログラムを起動させたとき
に、制御部2のメモリ1上に処理単位であるオブジェク
トが割り当てられる。
【0013】図2は本実施例のシステムのブロックであ
り、図1の制御部2の中の構成を示す。図2において、
メッセージ履歴情報格納部10には、プログラム実行部
13でオブジェクト指向プログラムが実行されたとき
に、処理の単位であるオブジェクトが受信するメッセー
ジに関する情報として、メッセージ送信順序や、メッセ
ージの名称などがメッセージ履歴情報としてテーブル形
式で格納される。また、オブジェクトがメッセージを受
信した際の内部状態の変更情報を、オブジェクト変更情
報格納部11にオブジェクト変更情報として格納する。
メッセージ解析部12では、メッセージ履歴情報を解析
し、対象となるオブジェクトの内部状態を、表示部3に
対して表示を指示する。表示部3では、操作部4からの
入力が可能であり、処理の流れを流れ図として表示する
ことも行う。
り、図1の制御部2の中の構成を示す。図2において、
メッセージ履歴情報格納部10には、プログラム実行部
13でオブジェクト指向プログラムが実行されたとき
に、処理の単位であるオブジェクトが受信するメッセー
ジに関する情報として、メッセージ送信順序や、メッセ
ージの名称などがメッセージ履歴情報としてテーブル形
式で格納される。また、オブジェクトがメッセージを受
信した際の内部状態の変更情報を、オブジェクト変更情
報格納部11にオブジェクト変更情報として格納する。
メッセージ解析部12では、メッセージ履歴情報を解析
し、対象となるオブジェクトの内部状態を、表示部3に
対して表示を指示する。表示部3では、操作部4からの
入力が可能であり、処理の流れを流れ図として表示する
ことも行う。
【0014】以上のようなシステムにおいて、いま、図
3に示すようなオブジェクト間の処理の流れを考える。
尚、図3の中の100,102,105,108,11
0はオブジェクトであり、矢印はメッセージの送受信を
表し、矢印の横の符号a〜fは送受信されたメッセージ
の順番を表す。
3に示すようなオブジェクト間の処理の流れを考える。
尚、図3の中の100,102,105,108,11
0はオブジェクトであり、矢印はメッセージの送受信を
表し、矢印の横の符号a〜fは送受信されたメッセージ
の順番を表す。
【0015】図4,図5および図7を用いて、プログラ
ム実行時の処理を説明する。図7のステップ702でメ
ッセージ送信順序を示す番号を0にする。メッセージ起
動順序を示す番号は、プログラムが起動されるとそのプ
ログラムの中でメッセージが何番目に送信されたかを決
める番号である。プログラムをプログラム実行部13で
起動し(ステップ703)、オブジェクトがメッセージ
を受信したとき実行部13ではメッセージ送信順序を示
す番号を1増加させる(ステップ705)。ステップ7
06では、メッセージ履歴情報格納部10に対して、メ
ッセージ送信順序,起動したメッセージ名,メッセージ
受信先オブジェクト、および、メッセージ受信オブジェ
クト起動回数を、図4のメッセージ起動順序エリア3
1,メッセージ名称エリア32,メッセージ受信オブジ
ェクトエリア33,メッセージ起動回数エリア34の各
エリアに付加し、メッセージ履歴情報テーブル30とし
て格納し、さらにメッセージ履歴情報テーブル30で、
オブジェクト変更情報格納部11で格納される、メッセ
ージを受信したオブジェクトに対応したオブジェクト変
更情報40にオブジェクト変更情報参照エリア35でリ
ンクを張る。
ム実行時の処理を説明する。図7のステップ702でメ
ッセージ送信順序を示す番号を0にする。メッセージ起
動順序を示す番号は、プログラムが起動されるとそのプ
ログラムの中でメッセージが何番目に送信されたかを決
める番号である。プログラムをプログラム実行部13で
起動し(ステップ703)、オブジェクトがメッセージ
を受信したとき実行部13ではメッセージ送信順序を示
す番号を1増加させる(ステップ705)。ステップ7
06では、メッセージ履歴情報格納部10に対して、メ
ッセージ送信順序,起動したメッセージ名,メッセージ
受信先オブジェクト、および、メッセージ受信オブジェ
クト起動回数を、図4のメッセージ起動順序エリア3
1,メッセージ名称エリア32,メッセージ受信オブジ
ェクトエリア33,メッセージ起動回数エリア34の各
エリアに付加し、メッセージ履歴情報テーブル30とし
て格納し、さらにメッセージ履歴情報テーブル30で、
オブジェクト変更情報格納部11で格納される、メッセ
ージを受信したオブジェクトに対応したオブジェクト変
更情報40にオブジェクト変更情報参照エリア35でリ
ンクを張る。
【0016】図2のオブジェクト変更情報格納部11で
は、オブジェクトがメッセージを受信する毎に、オブジ
ェクトの内部変数の名称と型、およびメッセージ受信前
のオブジェクトの内部変数の値を、それぞれ、図5に示
すように、オブジェクト内部変数名称エリア41,型名
エリア42,更新前の値格納エリア43に、オブジェク
ト変更情報40として格納する。
は、オブジェクトがメッセージを受信する毎に、オブジ
ェクトの内部変数の名称と型、およびメッセージ受信前
のオブジェクトの内部変数の値を、それぞれ、図5に示
すように、オブジェクト内部変数名称エリア41,型名
エリア42,更新前の値格納エリア43に、オブジェク
ト変更情報40として格納する。
【0017】この後、メッセージを受信したオブジェク
トは、そのオブジェクトに対する処理を行い、プログラ
ムの終了またはエラーが発生した時に処理を終了する。
プログラムが継続する場合は図7の704,705,7
06の各ステップを実行する。
トは、そのオブジェクトに対する処理を行い、プログラ
ムの終了またはエラーが発生した時に処理を終了する。
プログラムが継続する場合は図7の704,705,7
06の各ステップを実行する。
【0018】図3は、処理の実行状態をオブジェクトと
その間で送受信されるメッセージを用いて表した図であ
る。図3の中で、オブジェクト102に対しては、メッ
セージがオブジェクト100とオブジェクト108から
1回ずつ、合計2回送信されており、この場合はオブジ
ェクトがメッセージを受信する毎にオブジェクト変更情
報を格納するため、オブジェクト102に対して、2個
のオブジェクト変更情報40が格納される。オブジェク
ト102に2度目のメッセージが送信されたときの、メ
ッセージ履歴情報テーブル30のオブジェクト起動回数
エリア34には2が格納される。本発明では、メッセー
ジの送信をこのようなテーブルで管理する。ただし、図
4のメッセージ履歴情報テーブル30ではメッセージ名
称エリア32と、図5のオブジェクトの内部変数40の
名前エリア41,型名エリア42,変更前の値エリア4
3の各エリアのデータは省略している。
その間で送受信されるメッセージを用いて表した図であ
る。図3の中で、オブジェクト102に対しては、メッ
セージがオブジェクト100とオブジェクト108から
1回ずつ、合計2回送信されており、この場合はオブジ
ェクトがメッセージを受信する毎にオブジェクト変更情
報を格納するため、オブジェクト102に対して、2個
のオブジェクト変更情報40が格納される。オブジェク
ト102に2度目のメッセージが送信されたときの、メ
ッセージ履歴情報テーブル30のオブジェクト起動回数
エリア34には2が格納される。本発明では、メッセー
ジの送信をこのようなテーブルで管理する。ただし、図
4のメッセージ履歴情報テーブル30ではメッセージ名
称エリア32と、図5のオブジェクトの内部変数40の
名前エリア41,型名エリア42,変更前の値エリア4
3の各エリアのデータは省略している。
【0019】図6は、図3で示したオブジェクト間の処
理の流れを、表示部3で表示した流れ図である。図6の
流れ図は、次のような規則で作成されるものとする。す
なわち、オブジェクト間のメッセージを矢印で表現し、
その矢印にはメッセージが送信された順序を示す符号を
付加する。オブジェクトの表示は、そのオブジェクトの
名前を付加することで、他のオブジェクトと識別する。
表示部3で表示される流れ図では、一つのオブジェクト
から送信されるメッセージは、複数表示することができ
るが、一つのオブジェクトが受信するメッセージは、各
オブジェクトに最大一つしか表示することはできない。
このため同一オブジェクトが複数回メッセージを受信す
る場合は、メッセージを受信した回数だけオブジェクト
が表示される。これによって、処理の流れを流れ図で表
示する際に、オブジェクト間のメッセージを示す矢印の
方向が一方向に決定し、見やすくなる。
理の流れを、表示部3で表示した流れ図である。図6の
流れ図は、次のような規則で作成されるものとする。す
なわち、オブジェクト間のメッセージを矢印で表現し、
その矢印にはメッセージが送信された順序を示す符号を
付加する。オブジェクトの表示は、そのオブジェクトの
名前を付加することで、他のオブジェクトと識別する。
表示部3で表示される流れ図では、一つのオブジェクト
から送信されるメッセージは、複数表示することができ
るが、一つのオブジェクトが受信するメッセージは、各
オブジェクトに最大一つしか表示することはできない。
このため同一オブジェクトが複数回メッセージを受信す
る場合は、メッセージを受信した回数だけオブジェクト
が表示される。これによって、処理の流れを流れ図で表
示する際に、オブジェクト間のメッセージを示す矢印の
方向が一方向に決定し、見やすくなる。
【0020】図3のような処理を行った場合、オブジェ
クト102,オブジェクト105はそれぞれ二度ずつメ
ッセージを受信しているが、図6のように実行処理を表
示する際には、それぞれ二度ずつ表示され、メッセージ
受信を示す矢印は、それぞれのオブジェクトに対して一
つだけ表示されている。これにより、図6の例の場合
は、処理の流れを左から右の方向に表示することがで
き、処理の方向を一方向に決定して表示することが可能
になる。
クト102,オブジェクト105はそれぞれ二度ずつメ
ッセージを受信しているが、図6のように実行処理を表
示する際には、それぞれ二度ずつ表示され、メッセージ
受信を示す矢印は、それぞれのオブジェクトに対して一
つだけ表示されている。これにより、図6の例の場合
は、処理の流れを左から右の方向に表示することがで
き、処理の方向を一方向に決定して表示することが可能
になる。
【0021】図4に示したように、オブジェクト変更情
報40はメッセージ履歴情報テーブル30と参照エリア
35でリンクしている。
報40はメッセージ履歴情報テーブル30と参照エリア
35でリンクしている。
【0022】特定の時点で処理を止めてオブジェクトの
内部状態を参照する場合には、オブジェクトがメッセー
ジを受信する毎にオブジェクト変更情報40が格納され
ており、メッセージ履歴情報テーブル30から、任意の
オブジェクトがメッセージを受信する以前の内部状態を
参照することが可能である。メッセージ解析部12では
メッセージ履歴情報テーブル30のメッセージ名称,受
信オブジェクト,メッセージ受信オブジェクト起動回数
から、特定のオブジェクトに対応するオブジェクト変更
情報40を探しだし、それを参照して表示部3で、オブ
ジェクトのメッセージ受信前の内部状態を表示すること
が可能になり、処理の任意な時点でのオブジェクトの状
態を確認することができる。
内部状態を参照する場合には、オブジェクトがメッセー
ジを受信する毎にオブジェクト変更情報40が格納され
ており、メッセージ履歴情報テーブル30から、任意の
オブジェクトがメッセージを受信する以前の内部状態を
参照することが可能である。メッセージ解析部12では
メッセージ履歴情報テーブル30のメッセージ名称,受
信オブジェクト,メッセージ受信オブジェクト起動回数
から、特定のオブジェクトに対応するオブジェクト変更
情報40を探しだし、それを参照して表示部3で、オブ
ジェクトのメッセージ受信前の内部状態を表示すること
が可能になり、処理の任意な時点でのオブジェクトの状
態を確認することができる。
【0023】さらに、同一オブジェクトが複数回メッセ
ージを受信しても、メッセージを受信する毎にオブジェ
クト変更情報40が格納されるので、メッセージを受信
したそれぞれの時点で、オブジェクト変更情報40をも
とにオブジェクトのメッセージ受信以前の内部状態を参
照し、表示することが可能になる。すなわち、図3のオ
ブジェクト102がオブジェクト108からメッセージ
107を受信した後に、オブジェクト100からのメッ
セージ101を受信する以前の状態を確認することがで
きる。
ージを受信しても、メッセージを受信する毎にオブジェ
クト変更情報40が格納されるので、メッセージを受信
したそれぞれの時点で、オブジェクト変更情報40をも
とにオブジェクトのメッセージ受信以前の内部状態を参
照し、表示することが可能になる。すなわち、図3のオ
ブジェクト102がオブジェクト108からメッセージ
107を受信した後に、オブジェクト100からのメッ
セージ101を受信する以前の状態を確認することがで
きる。
【0024】また、メッセージ受信後のオブジェクトの
内部状態を表示するには、直接、そのオブジェクトを参
照する。あるいは図3のオブジェクト102のように、
同一オブジェクトのメッセージ受信後の内部状態を表示
する場合には、オブジェクト102がオブジェクト10
0からのメッセージ101を受信した後の状態は、オブ
ジェクト108からのメッセージ107を受信する前の
状態に等しいので、オブジェクト108からのメッセー
ジ107を受信した際に格納されるオブジェクト変更情
報40を参照して表示することができる。
内部状態を表示するには、直接、そのオブジェクトを参
照する。あるいは図3のオブジェクト102のように、
同一オブジェクトのメッセージ受信後の内部状態を表示
する場合には、オブジェクト102がオブジェクト10
0からのメッセージ101を受信した後の状態は、オブ
ジェクト108からのメッセージ107を受信する前の
状態に等しいので、オブジェクト108からのメッセー
ジ107を受信した際に格納されるオブジェクト変更情
報40を参照して表示することができる。
【0025】また、図4で示すメッセージ履歴情報テー
ブル30には、メッセージの送信順序をメッセージ送信
順序エリア31に番号で付加している。図8はこの番号
を逆方向へ参照し、メッセージ履歴情報テーブル30の
オブジェクト変更情報参照エリア35で参照するオブジ
ェクト変更情報40と、メッセージ受信オブジェクトエ
リア33の受信オブジェクトを用いることで、処理が進
められた方向とは逆方向へのデバッグを可能とする処理
を示す。
ブル30には、メッセージの送信順序をメッセージ送信
順序エリア31に番号で付加している。図8はこの番号
を逆方向へ参照し、メッセージ履歴情報テーブル30の
オブジェクト変更情報参照エリア35で参照するオブジ
ェクト変更情報40と、メッセージ受信オブジェクトエ
リア33の受信オブジェクトを用いることで、処理が進
められた方向とは逆方向へのデバッグを可能とする処理
を示す。
【0026】メッセージ履歴情報テーブル30の最後の
テーブルにポインタを張り(ステップ802)、受信オ
ブジェクトエリア33のオブジェクトをオブジェクト変
更情報エリア35で参照するオブジェクト変更情報40
を用いてメッセージ受信前の状態に変更する(ステップ
803)。すなわち、図4のメッセージ履歴情報テーブ
ル30で、メッセージ送信順序エリア31で、6と示さ
れた位置から逆方向に、各テーブルのメッセージ受信オ
ブジェクトエリア33のオブジェクトおよび、オブジェ
クト変更情報参照エリア35で参照するオブジェクト変
更情報40から、各オブジェクトをメッセージ受信以前
の状態に戻すことが可能になり、処理が進められる方向
とは逆方向へのデバッグが可能になる。
テーブルにポインタを張り(ステップ802)、受信オ
ブジェクトエリア33のオブジェクトをオブジェクト変
更情報エリア35で参照するオブジェクト変更情報40
を用いてメッセージ受信前の状態に変更する(ステップ
803)。すなわち、図4のメッセージ履歴情報テーブ
ル30で、メッセージ送信順序エリア31で、6と示さ
れた位置から逆方向に、各テーブルのメッセージ受信オ
ブジェクトエリア33のオブジェクトおよび、オブジェ
クト変更情報参照エリア35で参照するオブジェクト変
更情報40から、各オブジェクトをメッセージ受信以前
の状態に戻すことが可能になり、処理が進められる方向
とは逆方向へのデバッグが可能になる。
【0027】図9は処理の途中から、指定したオブジェ
クトの処理を再実行させる処理を示す。任意に指定した
オブジェクトに対して、オブジェクト変更情報40を用
いて、オブジェクトの内部状態をメッセージ受信以前の
内部状態に戻し(ステップ903)、操作部4からオブ
ジェクトの内部状態を変更し(ステップ904)、その
オブジェクトに対してメッセージを送信する(ステップ
905)ことで、処理が止まった時点以後の処理を再実
行することが可能である。
クトの処理を再実行させる処理を示す。任意に指定した
オブジェクトに対して、オブジェクト変更情報40を用
いて、オブジェクトの内部状態をメッセージ受信以前の
内部状態に戻し(ステップ903)、操作部4からオブ
ジェクトの内部状態を変更し(ステップ904)、その
オブジェクトに対してメッセージを送信する(ステップ
905)ことで、処理が止まった時点以後の処理を再実
行することが可能である。
【0028】図2で示す処理の中の、オブジェクト10
2の中でエラーが起こり処理が止まった場合、メッセー
ジ履歴情報テーブル30とオブジェクト変更情報40を
用いて、オブジェクト102がメッセージを受信する以
前の内部状態に戻し、操作部14からオブジェクト10
2の内部状態をメッセージ受信以前の状態に変更したう
えで、再度オブジェクト102にメッセージを送ること
で、処理の途中から再実行することができ、エラーが起
こって処理が止まった時点以後に生じる可能性があるエ
ラーを検出することが可能になる。これにより、デバッ
グの回数が減少する。
2の中でエラーが起こり処理が止まった場合、メッセー
ジ履歴情報テーブル30とオブジェクト変更情報40を
用いて、オブジェクト102がメッセージを受信する以
前の内部状態に戻し、操作部14からオブジェクト10
2の内部状態をメッセージ受信以前の状態に変更したう
えで、再度オブジェクト102にメッセージを送ること
で、処理の途中から再実行することができ、エラーが起
こって処理が止まった時点以後に生じる可能性があるエ
ラーを検出することが可能になる。これにより、デバッ
グの回数が減少する。
【0029】本発明によれば、デバッグする際に、処理
全体のオブジェクトとメッセージに対して、メッセージ
履歴情報テーブル30とオブジェクト変更情報40を保
持するのではなく、ある特定の間の処理を対象にして、
これらの間のメッセージ履歴情報やオブジェクト変更情
報を保持することで、実行処理部分の一部のデバッグを
行うことも可能である。また、処理単位の全てのオブジ
ェクトを対象に、メッセージ受信毎にオブジェクト変更
情報40を参照させるのではなく、処理を進める上で重
要なオブジェクトに対してのみ、オブジェクト変更情報
40を参照させるようにすることも可能である。
全体のオブジェクトとメッセージに対して、メッセージ
履歴情報テーブル30とオブジェクト変更情報40を保
持するのではなく、ある特定の間の処理を対象にして、
これらの間のメッセージ履歴情報やオブジェクト変更情
報を保持することで、実行処理部分の一部のデバッグを
行うことも可能である。また、処理単位の全てのオブジ
ェクトを対象に、メッセージ受信毎にオブジェクト変更
情報40を参照させるのではなく、処理を進める上で重
要なオブジェクトに対してのみ、オブジェクト変更情報
40を参照させるようにすることも可能である。
【0030】メッセージ履歴情報テーブル30から参照
するオブジェクト変更情報40を取り出すには、メッセ
ージの名称,メッセージ受信オブジェクト,オブジェク
ト起動回数の組を識別子として取り出すこともできる
が、メッセージ送信順序はプログラム実行中に一意に決
まるので、これを用いても良い。
するオブジェクト変更情報40を取り出すには、メッセ
ージの名称,メッセージ受信オブジェクト,オブジェク
ト起動回数の組を識別子として取り出すこともできる
が、メッセージ送信順序はプログラム実行中に一意に決
まるので、これを用いても良い。
【0031】さらに、図6で示した実行処理の流れ図の
中のオブジェクトをボタンとして表示し、ポインティン
グデバイスを用いてオブジェクトを指定することで、内
部状態を参照したいオブジェクトを指定することも可能
である。
中のオブジェクトをボタンとして表示し、ポインティン
グデバイスを用いてオブジェクトを指定することで、内
部状態を参照したいオブジェクトを指定することも可能
である。
【0032】
【発明の効果】本発明によれば、オブジェクト指向プロ
グラムの処理の実行状態を表示し、オブジェクトのメッ
セージ受信前後の内部状態を表示することができるの
で、個々のオブジェクトの内部状態を確認しながらデバ
ッグすることができる。また、デバッグ中に、処理の途
中から再実行することが可能になり、デバッグの回数が
減り、アプリケーションの開発効率が向上する。
グラムの処理の実行状態を表示し、オブジェクトのメッ
セージ受信前後の内部状態を表示することができるの
で、個々のオブジェクトの内部状態を確認しながらデバ
ッグすることができる。また、デバッグ中に、処理の途
中から再実行することが可能になり、デバッグの回数が
減り、アプリケーションの開発効率が向上する。
【図1】本発明の対象となる計算機システムのブロック
図。
図。
【図2】本発明の一実施例に係わるシステムのブロック
図。
図。
【図3】システム内部での、オブジェクトとオブジェク
ト間のメッセージの流れの説明図。
ト間のメッセージの流れの説明図。
【図4】メッセージ履歴情報テーブルを表した説明図。
【図5】オブジェクト変更情報のテーブルを表した説明
図。
図。
【図6】図3におけるオブジェクト間の処理の流れを表
示部で表示したブロック図。
示部で表示したブロック図。
【図7】図4で示すメッセージ履歴情報テーブルを構成
する処理のフローチャート。
する処理のフローチャート。
【図8】処理の流れとは逆方向にオブジェクトの内部状
態を変更する処理のフローチャート。
態を変更する処理のフローチャート。
【図9】処理の途中から、指定したオブジェクトから処
理を再実行する処理のフローチャート。
理を再実行する処理のフローチャート。
3…表示部、10…メッセージ履歴情報格納部、11…
オブジェクト変更情報格納部、12…メッセージ解析
部、13…プログラム実行部。
オブジェクト変更情報格納部、12…メッセージ解析
部、13…プログラム実行部。
Claims (2)
- 【請求項1】オブジェクト指向言語を用いたプログラム
において、オブジェクト間で送受信されるメッセージの
受信先オブジェクト,メッセージ名称を格納するメッセ
ージ履歴情報と、メッセージ受信によるオブジェクト変
更情報と、オブジェクト間のメッセージの流れを表示す
る実行状態表示手段を用いて、実行処理の特定な時点で
オブジェクトの内部状態を表示することを特徴とするオ
ブジェクト指向プログラムのデバッグ装置。 - 【請求項2】請求項1において、前記オブジェクトの内
部情報表示手段と、前記オブジェクトのメッセージ受信
によるオブジェクト変更情報に基づいて、エラー発生時
点より後の処理を、デバッグ中に再実行するオブジェク
ト指向プログラムのデバッグ装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5053725A JPH06266579A (ja) | 1993-03-15 | 1993-03-15 | オブジェクト指向プログラムのデバッグ装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5053725A JPH06266579A (ja) | 1993-03-15 | 1993-03-15 | オブジェクト指向プログラムのデバッグ装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06266579A true JPH06266579A (ja) | 1994-09-22 |
Family
ID=12950813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5053725A Pending JPH06266579A (ja) | 1993-03-15 | 1993-03-15 | オブジェクト指向プログラムのデバッグ装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06266579A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1083326A (ja) * | 1996-05-01 | 1998-03-31 | Internatl Business Mach Corp <Ibm> | トレース・データ収集方法およびコンピュータ読み取り可能コード |
JP2007094631A (ja) * | 2005-09-28 | 2007-04-12 | Hitachi Electronics Service Co Ltd | アプリケーション稼働監視システム及び顧客アプリケーション稼働監視サービス提供システム及びアプリケーション稼働監視方法及び顧客アプリケーション稼働監視サービス提供方法 |
JP2012059305A (ja) * | 2011-12-26 | 2012-03-22 | Hitachi Systems Ltd | アプリケーション稼働監視システム及び顧客アプリケーション稼働監視サービス提供システム |
-
1993
- 1993-03-15 JP JP5053725A patent/JPH06266579A/ja active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1083326A (ja) * | 1996-05-01 | 1998-03-31 | Internatl Business Mach Corp <Ibm> | トレース・データ収集方法およびコンピュータ読み取り可能コード |
JP2007094631A (ja) * | 2005-09-28 | 2007-04-12 | Hitachi Electronics Service Co Ltd | アプリケーション稼働監視システム及び顧客アプリケーション稼働監視サービス提供システム及びアプリケーション稼働監視方法及び顧客アプリケーション稼働監視サービス提供方法 |
JP2012059305A (ja) * | 2011-12-26 | 2012-03-22 | Hitachi Systems Ltd | アプリケーション稼働監視システム及び顧客アプリケーション稼働監視サービス提供システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6981248B2 (en) | Conditional breakpoint encountered indication | |
US7769821B2 (en) | Systems and methods for enhanced meassage support using a generic client proxy | |
US7178135B2 (en) | Scope-based breakpoint selection and operation | |
JPH04163630A (ja) | オブジェクト指向計算機システムにおけるメソッド起動装置 | |
JPH05341819A (ja) | Sfcプログラムのデバッグ装置及びデバッグ方法 | |
JPH06266579A (ja) | オブジェクト指向プログラムのデバッグ装置 | |
US6279104B1 (en) | Debugging system for parallel processed program and debugging method thereof | |
CN108304321A (zh) | 一种创建前后端开发联调环境的方法、系统及装置 | |
KR960014980B1 (ko) | 랜(lan) 감시장치 및 통신절차 감시방법 | |
US6983454B2 (en) | Extended “run to” function | |
US7533132B2 (en) | Parallel replication mechanism for state information produced by serialized processing | |
US7509413B2 (en) | Tool for displaying JMX monitoring information | |
JP3404730B2 (ja) | プログラミング装置のプログラム更新検出方法 | |
JPH06214792A (ja) | メッセージパッシング機構 | |
JPH0784901A (ja) | 端末動作再現装置 | |
CN115934542A (zh) | 一种ui界面测试、监控预警的方法及装置 | |
JPH03290741A (ja) | エラーロギング方法 | |
JPH06295247A (ja) | リアルタイム処理実現方法 | |
JP2845694B2 (ja) | データ処理装置 | |
CN118414231A (zh) | 机器人或机床的模拟装置 | |
JPH01125634A (ja) | モジュール連携テスト方法 | |
JPH0267671A (ja) | オンライン処理の実行再開方式 | |
JP2002342096A (ja) | 自動タスク起動装置およびその方法 | |
JPS61169954A (ja) | 端末情報伝送方式 | |
JPH0659935A (ja) | デバッグ装置 |