JPH05324399A - 情報監視装置 - Google Patents

情報監視装置

Info

Publication number
JPH05324399A
JPH05324399A JP4122402A JP12240292A JPH05324399A JP H05324399 A JPH05324399 A JP H05324399A JP 4122402 A JP4122402 A JP 4122402A JP 12240292 A JP12240292 A JP 12240292A JP H05324399 A JPH05324399 A JP H05324399A
Authority
JP
Japan
Prior art keywords
message
display
level
execution
monitoring
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
JP4122402A
Other languages
English (en)
Inventor
Kenichi Maeda
賢一 前田
Rajibu Torehan
ラジブ トレハン
Shinsuke Sawajima
信介 澤島
Koji Yamaguchi
浩司 山口
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 JP4122402A priority Critical patent/JPH05324399A/ja
Publication of JPH05324399A publication Critical patent/JPH05324399A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 情報の監視を可能とする。 【構成】 オブジェクトの実行状態やメッセージを監視
する手段、これを記録または表示する手段によってオブ
ジェクトの実行状態やメッセージの時間的変化を把握す
ることを可能とする。 【効果】 メッセージの到着順序など時間的要因に起因
したトラブルを解析できるため、例えば並行実行プログ
ラムのデバッグが可能となる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、情報監視装置に関す
る。
【0002】
【従来の技術】従来、ソフトウェアのデバッグは逐次型
の実行を前提としており、プログラムの特定の場所のブ
レークポイントをセットすることを主な手段としてき
た。これは、プログラムの実行がその場所にさしかかっ
たときに実行を止めて変数の状態等を調べるという方式
である。
【0003】しかし、逐次型の実行を前提としているた
めに、並行実行に起因するトラブルをデバッグしにくい
という問題があった。具体的には、並行実行のプログラ
ムはオブジェクトまたはエージェント、(以下オブジェ
クトで代表)間でメッセージのやりとりを行なうことに
よって機能を利用し合うものである。一つのオブジェク
トが複数のメッセージを受け取る場合、メッセージの到
着順序によって実行が変化する場合がある。さらに、並
行オブジェクト指向プログラムでは複数のオブジェクト
が並行に独立に動作していて、互いにメッセージを交換
するので、複数のオブジェクトから一つのオブジェクト
に到着するメッセージの順序は、実行の度に必ずしも一
定にはならない。このような並行処理特有の現象に起因
するトラブルを、従来のブレークポイントを主体とする
デバッグ方式で解決するのは極めて困難である。
【0004】また、従来のデバッガは、並行に動作する
複数のオブジェクト間のメッセージ交換の状態と、ある
一つのオブジェクト内部での複数スレッドの実行状態
と、逐次に実行される各スレッドの実行状態という複数
の異なるレベルとを相互に関連させながらユーザーに効
果的に提示することはできなかった。
【0005】
【発明が解決しようとする課題】以上述べたように、従
来のデバッグ方式は逐次型の実行を前提としており、並
行実行のデバッグが困難であるという欠点があった。ま
た、複数のオブジェクト間のメッセージ交換の状態と、
オブジェクト内部での複数スレッドの実行状態と、各ス
レッドの実行状態という複数の異なるレベルを相互に関
連させながらデバッグすることができないという問題が
あった。
【0006】本発明は、このような事情を考慮してなさ
れたものであり、その目的とするところは、並行実行プ
ログラムのデバッグ等に用いる情報監視装置を提供する
こと、及び並行オブジェクト指向プログラムにおいて前
述の各レベルを関連づけながらのデバッグを可能とする
情報監視装置を提供することにある。
【0007】
【課題を解決するための手段】本発明の第1の発明は、
メッセージ、オブジェクト、スレッド等(以下オブジェ
クトで代表)の動作状態の時間関係を記録または表示
し、並行実行の様子をプログラマに提示することを特徴
とする情報監視装置である。また、オブジェクトの動作
の記録または表示を特定のオブジェクトの動作の発生に
よって開始することにより、特定の状態の時間的近傍の
状態を提示することも可能とする。
【0008】本発明の第2の発明は、メッセージ、オブ
ジェクト、スレッド等の動作状態の時間関係を記録する
手段と、その記録情報を提示する際のレベル情報を指示
する手段を具備することにより、ユーザに並行オブジェ
クト指向プログラムの実行状態を効果的に提示すること
を特徴とする情報監視装置である。
【0009】
【作用】本発明の第1の発明によれば、オブジェクトの
動作状態を監視できるようになるので、オブジェクトの
動作状態を記録したりユーザにこの状態を表示したりす
ることが可能となる。また、特定のオブジェクトの動作
状態のみを常時監視しておいて、そのオブジェクトの動
作の発生によって他の必要なメッセージまたはオブジェ
クトの動作状態を記録したり表示したりする制御を行な
うことも可能となる。したがって、メッセージの到着順
序によるような並行実行プログラムのデバッグという問
題点を解決することができる。
【0010】本発明の第2の発明によれば、メッセー
ジ、オブジェクト、スレッド等の動作状態を各レベルご
とに階層的に提示できるので、監視対象に関する情報を
適切に表示することが可能となる。
【0011】
【実施例】以下、図面に基づいて本発明の一実施例につ
いて説明する。 実施例1
【0012】図1は本発明の第1の発明の一実施例の構
成を示す図である。図示しない入力部から処理を行うた
めの情報が入力されると、制御部1は処理を開始する。
制御部1は複数の処理部a、b、cと、監視部2からな
り、入力された情報の処理は処理部a、b、cが行う。
処理部a、b、cは各々オブジェクトa、オブジェクト
b、オブジェクトcからなり監視部2は各処理部a、
b、cのスレッドまたは実行状態(以下スレッドとして
説明)を監視するものである。記憶部3は監視部2から
の監視情報を一旦記憶するもので、この情報は表示制御
部4において表示に必要なデータに変換され、表示部5
で監視情報がユーザに提供される。概念的にスレッドが
オブジェクト中にある状態を実行状態、オブジェクト中
にない場合を停止状態として説明する。以下に動作につ
いて図2を参照して説明する。尚、図2は処理の流れを
概念的に示したものである。
【0013】所定のスレットXが処理部aのオブジェク
トaに入った状態、すなわちオブジェクトaが実行状態
になったことをトリガーとして表示制御部4を起動し、
表示部5には図3に示すような表示が出力される。図3
中11aは処理部aのオブジェクトaの実行状態を表示
している。同様に11bは処理部bのオブジェクトb、
11cは処理部cのオブジェクトcの実行状態を表示し
ている。12a〜12c(×印)は、その時点で、それ
ぞれオブジェクトa〜オブジェクトcが停止状態になっ
たことを示している。14はメッセージを示している。
13は時間の経過を示すスケールであり、また16はト
リガーの時点を示している。この表示は、この時点から
ある程度遡った時点から開始される場合には有効であ
る。
【0014】この表示により、ユーザは各オブジェクト
に対応する実行状態や、メッセージの時間的関係が把握
できるようになっている。この例の場合オブジェクトb
からオブジェクトaへのメッセージがオブジェクトcか
らのメッセージより早く到達したことなどが分る。これ
により例えば、並行実行のデバッグが可能となる。
【0015】尚、図3の表示形態において、14のメッ
セージは特に表示しなくてもよい。また、14のメッセ
ージを表示する場合でも、返答のメッセージがあった時
に点線の色を変えるようにしてもよい。この場合上述し
た表示制御部4の構成に返答メッセージの検出部を設け
るように設定する。
【0016】図4は、スレッドの代わりにメッセージを
用いる場合である。図中2x,2yはオブジェクトaか
らそれぞれオブジェクトb、オブジェクトcへのメッセ
ージであり、それぞれメッセージx、メッセージyとる
す。また、2xx、2yyはそれぞれ返答である。
【0017】メッセージyの発行をトリガーとして表示
手段を起動すると、例えば図5に示すような表示が得ら
れる。図中17x、17yはそれぞれメッセージx、メ
ッセージyを表し、18x、18yはそれぞれ返答であ
る。19x、19yはそれぞれメッセージx、メッセー
ジyのメッセージIDであり、この場合はそれぞれメッ
セージx、メッセージyという文字列である。
【0018】つまり、上述したようにどの処理部からど
の処理部にメッセージが送られたかについても監視部2
において監視できるように設定されて、監視部2におい
て監視された情報は逐次記憶部3に記憶される。この監
視部2はメッセージ監視部である。さらにこの情報は表
示制御部4に読み出され図5に示す表示形態が出力され
る。尚、上記したメッセージは例えば処理部aのオブジ
ェクトaがメインルーチンプログラムであり、処理部b
のオブジェクトbがサブルーチンプログラムであるよう
な場合に、メインルーチンプログラムからサブルーチン
プログラムへのサブルーチンコールなどがこれに当る。
尚、表示は図6に示す状態にしてもよい。この図6は返
答のメッセージを別の行に表示した場合である。
【0019】次に監視部2の動作について詳しく説明す
る。監視部2におけるスレッド又はメッセージの監視は
図7に示すフローチャートに従って行われる。図中スレ
ッド1、スレッド2はオブジェクトa、bに対応して示
している。
【0020】監視方法として最も簡単な例は、メッセー
ジとしてソケットによる通信を用い、スレッドの動作状
態を監視する場合について説明する。まず各スレッドは
初期化される。ソケットにメッセージが書き込まれる前
にソケットの読み込みを行なうと、そのスレッドは停止
状態になる。その後メッセージが書き込まれると実行状
態となる。したがって、図に示すようにソケットのre
ad前にそのスレッドの状態フラグを「停止」とし、r
ead後に「実行」とすれば良い。スレッド1でソケッ
ト1を「write」し、状態フラグ1を「停止」とす
る。次にソケット2を「read」とする。以後停止状
態を示す。一方スレッド2は初期状態から状態フラグ2
を「停止」とし、メッセージを受けると、状態フラグ2
を「実行」とし処理する。そしてスレッド2において、
ソケット2を「write」とメッセージをスレッド1
に返送する。この状態でスレッド1は状態フラグを「実
行」とする。つまり、このフラグを見ることにより、特
定のスレッドの実行状態を監視することができる。
【0021】以上により、メッセージの到着順序やオブ
ジェクトの動作状態の時間的変化を把握することがで
き、これだけでも並行実行プログラムのデバッグに有効
であるが、以下のような機能を用意すればさらに効果的
である。図8に示すのは、従来の逐次型デバッガとの結
合方法である。図中20は図3に示した表示結果と同じ
ものであるとする。21は例えばマウスで移動するカー
ソルである。(a)に示すように、オブジェクトbに対
応する位置を指示し、例えばボタンをクリックするなど
すると、(b)に示すように別のウィンドウ22がオー
プンし、例えば、dbx等のような良く知られた逐次的
デバッガが起動して、例えば、オブジェクトbのソース
コードを表示するようにする。
【0022】このようにすることにより、プログラマは
視覚的にオブジェクトやメッセージの時間関係を把握し
ながら、オブジェクト内の逐次型デバッグも可能とな
る。これは実用上は極めて有効である。
【0023】さらに、図9に示すように、例えば、マウ
スとカーソルによってメッセージの内容を示す別のウイ
ンドウ23a、bを開くようにするとさらに効果的であ
る。ここでは、マルチウインドウによって別のウインド
ウを開く例を述べたが、同じウインドウの中にメッセー
ジの内容を表示しても良い。また、図7では実行状態の
監視方法を説明したが、メッセージの監視のためには、
ソケットに書き込む内容を単に取り出せば良い。
【0024】オブジェクトやメッセージの指定方法とし
ては、図3の表示を前提として説明したが、図5や図6
の表示であっても良い、この場合、メッセージは表示さ
れているがオブジェクトは明示的には表示されていな
い。したがって、メッセージの指定によって、そのメッ
セージを発行したオブジェクトというように間接的に指
定する必要がある。すると表示すべきものがメッセージ
自身なのかオブジェクトのソースコードなのかを指定す
る必要が生じる。これは、例えば、マウスのボタンを変
えたり、クリック数を変えたりすることで、容易に実現
できる。 実施例2
【0025】図10は本発明の第2の発明の一実施例の
構成を示す図である。図示しない入力部から処理を行な
うための情報が入力されると、制御部1は処理を開始す
る。制御部1は複数の処理部a、b、cと、監視部2か
らなり、入力された情報の処理は処理部a、b、cが行
なう。処理部a、b、cは各々オブジェクトa、オブジ
ェクトb、オブジェクトcからなり、監視部2は各処理
部a、b、cの実行状態を監視するものである。監視情
報記憶部3は監視部2からの監視情報を一旦記憶するも
のである。レベル指定部6は表示するレベルを指定する
もので、この指定はレベル記憶部7に知らされ記憶され
る。レベル記憶部7と監視情報記憶部3からの情報は表
示制御部4において表示に必要なデータに変換され、表
示部5でそのレベルに応じた監視情報がユーザに提示さ
れる。
【0026】以下に図11に示されるメッセージレベ
ル、オブジェクトレベル、メソッドレベルの3レベルに
ついて説明する。この例では、処理部全体(a〜c)は
複数のオブジェクトからなるとしており、その中の一つ
のオブジェクトについて注目した時、そのオブジェクト
は複数のメソッドを持つ、というように、処理部全体、
オブジェクト、メソッドという3つのレベルからなって
いると言える。この3レベルを表すのが、それぞれ図1
1におけるメッセージレベル、オブジェクトレベル、メ
ソッドレベルである。
【0027】メッセージレベルでは、オブジェクト間の
メッセージの送受信に注目し、その様子をユーザーに提
示する。オブジェクトレベルでは、一つのオブジェクト
に注目し、オブジェクト内の変数の状態やそのオブジェ
クトの持つメソッドの実行状態をスレッドを単位にして
ユーザーに提示する。図11ではオブジェクトa、オブ
ジェクトb、オブジェクトcに対応するオブジェクトレ
ベルa、オブジェクトレベルb、オブジェクトレベルc
を示したが、一般に処理部を構成するオブジェクトの数
だけオブジェクトレベルが存在することになる。また、
オブジェクトの数は処理の進行と共に変わり得るので、
それに対応するオブジェクトレベルの数も変わり得る。
メソッドレベルでは、一つのオブジェクト内の一つのメ
ソッド内を走る一つのスレッドに注目し、そのスレッド
による処理の進行状況を従来の逐次型デバッガでユーザ
ーに提示する。図11ではオブジェクトaの持つメソッ
ドa1、メソッドa2、メソッドa3に対応するメソッ
ドレベルa1、メソッドレベルa2、メソッドレベルa
3を示したが、一般に注目しているオブジェクトの持つ
メソッドの数だけそのオブジェクトレベルの下位にメソ
ッドレベルが存在することになる。
【0028】次に、各レベルの表示例について説明す
る。なお、以下に説明する表示例は従来からあるウイン
ドウシステムを使用していると仮定しるが、キャラクタ
ベースの表示など他の表示手段でも同様の機能を容易に
実現できる。
【0029】まず、メッセージレベルの表示例に関して
説明する。図12はオブジェクト間のメッセージの送受
信を表し、メッセージレベルの概念図となっている。a
はオブジェクトa、bはオブジェクトb、cはオブジェ
クトcを示す。m1はメッセージm1、m2はメッセー
ジm2を示す。オブジェクトaがオブジェクトbにメッ
セージm1を発信し、次にオブジェクトcがオブジェク
トaにメッセージm2を発信する状況を示している。
【0030】図12の概念図に対応する表示例が図13
である。図13で31は、この表示における実行状態を
指示するためのコントロールパネルを示す。これについ
ては、後で詳しく説明する。32は現在の経過時間を表
示するパネルを示す。ここで、経過時間とは正確な時間
でも良いし、時間的順序を保存するためだけの目安、例
えばステップ数などでも良い。これからは、経過時間と
いう言葉をこの意味で使うことにする。33は監視して
いるオブジェクトを表示するオブジェクトパネルを示
す。34はメッセージの送受信状況などを表示するメッ
セージパネルを示す。35は経過時間を表す目盛であ
る。36は目盛35上で現在の経過時間を指し示すもの
である。
【0031】オブジェクトパネル33には監視している
オブジェクトが横方向に並んで表示される。監視してい
るオブジェクトの数は時間と共に変わり得るので、表示
しているオブジェクトの数も動的に変わるようになって
いる。これは、監視部2がオブジェクトの生成消滅の状
況を監視し、監視情報記憶部3がその履歴を逐次記憶す
ることにより実現できる。メッセージパネル34にはメ
ッセージが矢印として表示される。この時、図にあるよ
うに矢印の上、または下などにメッセージ名やメッセー
ジの内容を表示しても良い。この矢印をマウスなどでク
リックすると新しくウインドウがオープンされ、そこに
この矢印に対応するメッセージの詳しい内容が表示する
ようにしてもよい。この時、クリックされたメッセージ
がすでに処理が終了したものだったならば、このウイン
ドウにそのメッセージの返り値を表示するようにしても
よい。メッセージパネル内の下方向は経過時間を示して
おり、まずメッセージm1が送信され、次にメッセージ
m2が送信されたというようにメッセージの時間的順序
が一目でわかるようになっている。これにより、メッセ
ージの送信順序に伴うバグなどが容易に見つけられるよ
うになる。
【0032】各矢印の始点の横方向の位置はオブジェク
トパネル内にあるそのメッセージを送信したオブジェク
トの表示の位置に常に一致し、終点の横方向の位置はメ
ッセージを受信したオブジェクト表示の位置に常に一致
している。これにより、そのメッセージがどのオブジェ
クトから送信されてどのオブジェクトが受信したか一目
でわかるようになっている。また、一つのメッセージに
も送信、受信、実行などの複数のフェーズがあるので、
それぞれのフェーズによって色を変えたり、破線などを
使っても良い。
【0033】表示面の大きさに限りがある場合は、オブ
ジェクトパネル33を横方向に、メッセージパネル34
を縦および横方向にスクロールさせることにより、全オ
ブジェクト、全メッセージを見ることが可能となる。こ
の時、メッセージパネル内のメッセージを表す矢印の始
点と終点の横方向の位置をオブジェクトパネル内にある
対応するオブジェクトの表示の横方向の位置に一致させ
るために、オブシェクトパネルとメッセージパネルの横
方向のスクロールは同期させる必要がある。また、縦方
向のスクロールをするときは、経過時間を指し示すため
の36も同期させて動かす必要がある。オブジェクト数
が多くなり過ぎて表示が繁雑になるときは、既に処理の
終ったメッセージ、およびそれに関わるオブジェクトを
メッセージパネル34、およびオブジェクトパネル33
から消去することにより、表示を見やすくすることもで
きる。
【0034】次にオブジェクトレベルの表示例に関して
説明する。図14は一つのオブジェクトに注目した時、
そのオブジェクトのメソッドにスレッドが割り当てられ
る様子を表し、オブジェクトレベルの概念図となってい
る。aは、注目しているオブジェクトaを示す。a1、
a2、a3はオブジェクトaが持つメソッドであり、そ
れぞれメソッドa1、メソッドa2、メソッドa3を示
している。x1、x2はスレッドであり、それぞれスレ
ッドx1、スレッドx2を示している。スレッドx1は
メソッドa1をまず処理し、次にメソッドa2を処理し
ている。スレッドx2はメソッドa2をまず処理し、次
にメソッドa3を処理している。この時、スレッドx1
とスレッドx2は並行に動作しているとする。
【0035】図14の概念図に対応する表示例が図15
である。図15で41は、この表示における動作状態を
指示するためのコントロールパネルを示す。これについ
ては、後で詳しく説明する。42は現在の経過時間を表
示するパネルを示す。43は注目しているオブジェクト
の名前を表示している。44は注目しているオブジェク
トのもつ変数の値など、内部状態を表示している。この
時、表示が繁雑になるのを避けるため普段は44を表示
せずに、例えば43のマウスなどでクリックすると新し
くウインドウがオープンされ、そこにオブジェクトの内
容を表示するようにしても良い。45a1、45a2、
45a3は注目しているオブジェクトが持つ複数のメソ
ッド名を表示している。メソッド名に対応して、そのメ
ソッド内のスレッドの様子を示すのが、46a1、46
a2、46a3の複数のスレッドパネルである。この
時、やはり表示が繁雑になるのを避けるため普段は46
a1、46a2、46a3を表示せず、例えば45a2
がマウスなどでクリックされた時にそれに対応する46
a2が表示される、などしても良い。47は経過時間を
表す目盛である。48は目盛47上で現在の経過時間を
示すものである。
【0036】スレッドパネル内の下方向は、図13にお
けるメッセージパネル34の場合と同様、時間経過を示
している。ただし、すべてのスレッドパネル内の縦位置
は同じ経過時間を示しており、その経過時間は目盛47
で参照される。そのため、縦方向にスクロールする機能
を付加する場合はすべてのスレッドパネルが同期してス
クロールするようにしなければならない。また、経過時
間を指し示すための48も同期させて動かす必要があ
る。
【0037】スレッドパネル内では、スレッドを矢印と
して表示している。矢印の始点の縦位置かそのメソッド
の実行が開始された経過時間を示し、矢印の終点の縦位
置がそのメソッドの実行が終了した経過時間を示す。図
15では、スレッドx1がまずメソッドa1を実行し次
にメソッドa2を実行、同時にスレッドx2がメソッド
a2を実行し次にメソッドa3を実行している様子を表
している。このような表示により、スレッドが時間的に
メソッド間を移り変わる様子が良くわかり、並行オブジ
ェクトのデバッグなどに非常に役立つことになる。
【0038】スレッドパネル内の横方向は、この例の場
合はスレッドを表す矢印が互いに重ならないように配置
するための空間として使われている。他の配置方法とし
ては、スレッドの数が有限の場合、すべてのスレッドに
通し番号をつけて、その番号を横方向の位置に対応させ
ても良い。また、メソッド内での他のオブジェクトにメ
ッセージを送り、そのオブジェクトからの返答を持つた
めスレッドが途切れることがある。その場合の表示とし
て矢印を途切れさせても良いが、その途切れに対応する
矢印の部分の色を変えたり、破線にしたりするとなお一
層スレッドの状態がわかりやすくなる。
【0039】次に、メソッドレベルの表示例に関して説
明する。図16は一つのメソッドに注目した時、そのメ
ソッド内の一つのスレッドの処理の流れを示しており、
メソッドレベルの概念図となっている。aはオブジェク
トa、a1はオブジェクトaがもつメソッドa1、x1
はスレッドx1を示し、メソッドa1内でスレッドx1
が次々に処理を実行している様子を示す。
【0040】図16の概念図に対応する表示例が図17
である。図17で51は、この表示における動作状態を
指示するためのコントロールパネルを示す。これについ
ては、後で詳しく説明する。52は現在の経過時間を表
示するパネルを示す。53は注目しているメソッドの名
前を表示している。54は従来の逐次型デバッガ部分で
ある。メソッドレベルとは従来の逐次型デバッガと同等
のレベルであり、図17の表示例ではメソッドのソース
コードを表示するなどしている。
【0041】次にレベルの指定方法について説明する。
例えばメッセージレベルからオブジェクトレベルを呼び
出す時には、図13に示されるオブジェクトパネル33
のオブジェクトaをマウスでクリックすると、それに対
応する図15のようなオブジェクトレベルの表示が新た
にウインドウとして現れるようにすれば良い。この時、
例えば続けてオブジェクトbをクリックした時には、さ
らに新たにオブジェクトbに対応するオブジェクトレベ
ルのウインドウを開いても良いし、先にあったオブジェ
クトaに対応するウインドウをオブジェクトbに対応す
る表示に書き換えても良い。また、オブジェクトレベル
からメソッドレベルを呼び出す時には、図15に示され
るスレッドパネル46a1内のx1をマウスでクリック
すると、それに対応する図17のようなメソッドレベル
の表示が新たにウインドウとして現れるようにすれば良
い。この時、例えば続けてx2をクリックした時には、
さらに新たにスレッドx2に対応するメソッドレベルの
ウインドウを開いても良いし、先にあったスレッドx1
に対応するウインドウをスレッドx2に対応する表示に
書き換えても良い。他の指定方法としては、図11で示
される木構造を直接独立したウインドウ上に表示して、
見たいレベルをマウスなどでクリックするようにしても
良い。このとき処理の行進とともにオブジェクト数も変
わり得るので、それに対応し表示されている木構造も変
化するようにすると良い。
【0042】各レベルの表示を終了するときは、例えば
メッセージレベルの表示例である図13のコントロール
パネル31にある「終了」の領域をマウスでクリックす
ることでメッセージレベルの表示の終了を指示するよう
にすれば良い。
【0043】次に、この表示例において図13の31、
図15の14、図17の51に示されるコントロールパ
ネルについて説明する。コントロールパネルとは、処理
部の実行状態を指定するパネルである。この例の場合、
実行状態としては実行停止状態、ステップ状態、継続実
行状態の3状態がある。実行停止状態とは処理部の実行
を停止し、ユーザの次の指定を待っている状態である。
ステップ実行状態とは、ある時間またはステップ数だけ
処理部を実行させ、その後実行を停止しユーザの次の指
定を待つ、という状態である。継続実行状態とは、処理
部を連続して実行させる状態である。
【0044】例えば、メッセージレベルにおいてステッ
プ実行状態を指定するときは図13のコントロールパネ
ル31に示される「ステップ」の領域をクリックすれば
良い。そうすると、メッセージレベルに応じた経過時間
だけ処理部の実行が行なわれ、その後実行停止状態とな
る。ここで、メッセージレベルに応じた経過時間とは、
例えば、次のメッセージが発信するまでの時間とすれば
良い。他のレベルの場合、オブジェクトレベルでは注目
しているオブジェクトに新たに一つスレッドが入ってく
る時か、スレッドが出ていく時までをステップ実行の経
過時間とすれば良い。メッセージレベルでは図16に示
されるスレッドx1がする複数の処理1、処理2、処理
3の一つ一つの実行時間をステップ実行の経過時間とす
れば良い。ここでメソッド内の複数の処理1、処理2、
処理3は全体を通じて処理の最小単位となっている。
【0045】同様に、メッセージレベルの場合、図13
のコントロールパネル31において継続実行状態を指定
する時は「継続」を、実行停止状態を指定する時は「停
止」をそれぞれクリックすれば良い。
【0046】ここで、ステップ実行中または継続実行中
でも「停止」をクリックすることによりユーザによる処
理の停止が可能である。また、図16に示される複数の
処理1、処理2、処理3の間にウエイトを置くことによ
り、実行の速度をユーザが表示を見易い速度に自由に変
えられるようにしても良い。さらに、実行中の表示の状
態は、処理の進行に応じて逐次表示を更新していっても
良いし、ユーザが実行の停止を指定するまで表示を変え
ずに、実行が停止した時にその時の状態に対応した表示
をするようにしても良い。また、これらのレベルの表示
が例えば複数のウインドウなどで表示されている時は、
すべてのウインドウで同期して表示される。すなわち、
複数の表示上で常に同じ経過時間を示す表示をしている
ことになる。これにより、各レベル間の関連を把握しな
がら、効果的なデバッグができることになる。
【0047】
【発明の効果】かくして本発明によれば、従来困難であ
ったメッセージの到着順序に起因するようなトラブルを
解析することが可能となり、例えば並行実行プログラム
のデバッグに対して極めて効果的である。さらに、メッ
セージ、オブジェクト、スレッド等の動作状態を各レベ
ルごとに階層的に提示できるので、監視対象に関する情
報を適切に表示することが可能となる。
【図面の簡単な説明】
【図1】 本発明の第1の発明の1つの実施例の構成を
示す図。
【図2】 図1における処理の流れを概念的に示す図。
【図3】 表示の一例を示す図。
【図4】 図1における別の処理の流れを概念的に示す
図。
【図5】 表示の別の例を示す図。
【図6】 表示の別の例を示す図。
【図7】 実行状態監視手段を説明する図。
【図8】 逐次型デバッガの起動を説明する図。
【図9】 メッセージ内容表示方法を説明する図。
【図10】 本発明の第2の発明の1つの実施例の構成
を示す図。
【図11】 各レベルの関係を説明する図。
【図12】 メッセージレベルの概念を説明する図。
【図13】 メッセージレベルにおける表示の一例を示
す図。
【図14】 オブジェクトレベルの概念を説明する図。
【図15】 オブジェクトレベルにおける表示の一例を
示す図。
【図16】 メソッドレベルの概念を説明する図。
【図17】 メソッドレベルにおける表示の一例を示す
図。
【符号の説明】
a〜c オブジェクト 2x〜yy メッセージ a1〜a3 メソッド x1、x2 スレッド 2 監視部 3 監視情報記憶部 4 表示制御部 5 表示部 6 レベル指定部 7 レベル記憶部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山口 浩司 神奈川県川崎市幸区小向東芝町1番地 株 式会社東芝総合研究所内

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 オブジェクトまたはスレッドの動作状態
    を監視する手段と、 この手段によって監視された動作状態を記録または表示
    する手段と、 を具備してなる情報監視装置。
  2. 【請求項2】 オブジェクトが発するメッセージを監視
    する手段と、 この手段によって監視されたメッセージを記録または表
    示する手段と、 を具備してなる情報監視装置。
  3. 【請求項3】 オブジェクトまたはスレッドの動作状態
    を監視する手段と、 この手段によって監視された動作状態を記録する手段
    と、 オブジェクトが発するメッセージを監視する手段と、 この手段によって監視されたメッセージを記録する手段
    と、 表示するレベルを指定する手段と、 この手段によって指定されたレベルの情報を記録された
    前記動作状態及び前記メッセージに基づき作成して表示
    する手段と、 を具備してなる情報監視装置。
JP4122402A 1992-03-23 1992-05-15 情報監視装置 Pending JPH05324399A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4122402A JPH05324399A (ja) 1992-03-23 1992-05-15 情報監視装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4-65079 1992-03-23
JP6507992 1992-03-23
JP4122402A JPH05324399A (ja) 1992-03-23 1992-05-15 情報監視装置

Publications (1)

Publication Number Publication Date
JPH05324399A true JPH05324399A (ja) 1993-12-07

Family

ID=13276592

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4122402A Pending JPH05324399A (ja) 1992-03-23 1992-05-15 情報監視装置

Country Status (1)

Country Link
JP (1) JPH05324399A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526135A (ja) * 1998-11-16 2003-09-02 インシグニア・ソリューションズ・ピーエルシー コンピュータ・システム、コンピュータ読取り可能な記憶媒体および同媒体を動作させる方法、およびコンピュータ・システムを動作させる方法
JP2013127782A (ja) * 2004-09-14 2013-06-27 Synopsys Inc マルチコアアーキテクチャーにおけるデバッグ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526135A (ja) * 1998-11-16 2003-09-02 インシグニア・ソリューションズ・ピーエルシー コンピュータ・システム、コンピュータ読取り可能な記憶媒体および同媒体を動作させる方法、およびコンピュータ・システムを動作させる方法
JP2013127782A (ja) * 2004-09-14 2013-06-27 Synopsys Inc マルチコアアーキテクチャーにおけるデバッグ

Similar Documents

Publication Publication Date Title
US6026362A (en) Tool and method for diagnosing and correcting errors in a computer program
EP0652518B1 (en) Operating system based performance monitoring of programs
US5297274A (en) Performance analysis of program in multithread OS by creating concurrently running thread generating breakpoint interrupts to active tracing monitor
US8032868B2 (en) Storing and restoring snapshots of a computer process
EP0470322B1 (en) Message-based debugging method
US5898873A (en) System and method for visualizing system operation trace chronologies
US5214780A (en) Synchronized journaling system
KR930000592B1 (ko) 타스크 추적장치
JPH06236297A (ja) コンソール・シミュレータ、多重コンソール管理システムおよびコンソール管理分散システム
Kohl et al. XPVM 1.0 user's guide
JPH05324399A (ja) 情報監視装置
JPH06332689A (ja) プログラムの表示方法およびプログラムの編集受付け方法
Biddle et al. Reuse of debuggers for visualization of reuse
JP3372106B2 (ja) プログラムデバッグ装置
JP3339708B2 (ja) イベント記録方式
JP3383138B2 (ja) デバッグ支援装置及びデバッグ支援方法
JP2003208333A (ja) トレース情報検索装置およびその方法
WO2022249358A1 (ja) ロボット制御装置及びロボット制御システム
JPH06149615A (ja) イベント記録方式
JP2815638B2 (ja) デバッグ装置
US20050015677A1 (en) Method of executing a computer program
JPH07306776A (ja) ビジュアルプログラミング方法
JPS60252959A (ja) オンライン・トレ−ス制御方式
Perrott et al. Quasiparallel tracing
Yaghmour et al. System administration: The Linux trace toolkit