JPH04287137A - ビジュアル・デバッガ - Google Patents

ビジュアル・デバッガ

Info

Publication number
JPH04287137A
JPH04287137A JP3051845A JP5184591A JPH04287137A JP H04287137 A JPH04287137 A JP H04287137A JP 3051845 A JP3051845 A JP 3051845A JP 5184591 A JP5184591 A JP 5184591A JP H04287137 A JPH04287137 A JP H04287137A
Authority
JP
Japan
Prior art keywords
procedure
visual
program
displayed
argument
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.)
Withdrawn
Application number
JP3051845A
Other languages
English (en)
Inventor
Mayumi Kamiko
神子 真弓
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP3051845A priority Critical patent/JPH04287137A/ja
Publication of JPH04287137A publication Critical patent/JPH04287137A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムの実行状況
を視覚的に表示することによってプログラム開発におけ
るデバッグ作業を効率的に行うビジュアル・デバッガに
関する。
【0002】
【従来の技術】プログラム開発において、プログラムの
デバッグを行う場合、そのプログラムの構造および動作
を理解することが必要である。従来、プログラムの構造
や動作を解析する場合には、ソースプログラムを解析す
ることやデバッガのトレース情報を解読する方法が用い
られてきた。
【0003】
【発明が解決しようとする課題】しかし、デバッガのト
レース情報からプログラムの実行状況を解読するために
は、出力される文字情報を順を追って解読する必要があ
り、複雑なプログラムを短時間でデバッグすることが困
難となり、プログラマに大きな負担がかかるという問題
が生じていた。
【0004】本発明は、上述の問題点に鑑みてなされた
もので、プログラム中のプロシジャおよび変数を図形で
表示することによりプログラムの実行状況を視覚的に表
示するビジュアル・デバッガを提供することを目的とす
る。
【0005】
【課題を解決するための手段】上記目的を達成するため
、本発明は、プログラム中のプロシジャとそのプロシジ
ャの変数とをそれぞれ所定の形状の図形で表し、プロシ
ジャには識別名を表示し、他のプロシジャとの関係に応
じて各プロシジャとその変数を表す図形を配置するよう
にし、プログラムの実行に対応して該当するプロシジャ
とその変数を表す図形を表示してゆくとともに、この変
数を表す図形は変数の変化に対応し、図形の特徴を変化
させて表示するビジュアル・トレーサを備えたものであ
る。
【0006】また、前記プロシジャを表す図形または前
記変数を表す図形と、表示内容を指定して、そのデータ
構造を表示するビジュアル・インスペクタを備えたもの
である。
【0007】また、前記表示内容をスパイ機能、実行保
留機能、ズーム機能を含むプログラム解析支援機能とす
る。
【0008】
【作用】上記構成により、プログラムの実行に対応して
該当するプロシジャとその変数を表す図形が表示され、
さらに変数を表す図形はその変数の変化に応じて図形の
色や模様など図形の特徴が変化するビジュアル・トレー
サにより、プログラムの実行状況およびデータの流れが
理解しやすくなる。また、プロシジャまたは変数を表す
図形と、表示内容を指定してそのプロシジャまたは変数
の詳細なデータ構造も表示するビジュアル・インスペク
タにより、プログラムの実行状況やデータの流れの理解
がさらに容易となる。
【0009】この表示内容として、ビジュアル・トレー
サ上のまだ具体化されていない変数を表す図形を指定し
、この変数が具体化されたときにビジュアル・インスペ
クタ上にそのデータを示す図形を表示するスパイ機能や
、ビジュアル・トレーサ上のまだ実行されていないプロ
シジャを表す図形を指定し実行を保留させる実行保留機
能、ビジュアル・トレーサ上の任意のプロシジャあるい
は変数を表す図形を指定し、これらの詳細なデータ構造
を表示するズームアップ機能などのプログラム解析支援
機能を用いることよよりプログラムの実行状況やデータ
の流れの理解が容易となる。
【0010】
【実施例】以下、本発明の実施例を図面を参照して説明
する。まず、本実施例を構成するビジュアル・トレーサ
、ビジュアル・インスペクタおよびプログラム解析支援
機能について説明する。図1はビジュアル・トレーサに
おけるプロシジャを表す基本図形である。本実施例のビ
ジュアル・トレーサ上では、プログラム中のプロシジャ
( Procedure )を図1に示すような箱型の
図形で表示する。箱の内部に表示されている矩形は引数
を表している。プロシジャの引数が他のプロシジャの引
数と共有されているような場合には、引数を表す矩形の
枠を同じ色で表示する。これにより、プロシジャと引数
の間の参照関係が分かる。
【0011】引数に予め整数、アトム(Prolog言
語で定数を示し、小文字のアルファベットから始まる文
字列) 等の値が与えられている場合には、矩形の内部
にその値が表示されている。スペースに表示しきれない
値(例えば、2桁以上の整数、リスト、ストリング等)
である場合には、データの型が分かるような図形を表示
する。例を図2に示す。また、引数が何らかの値に具体
化されている場合には、引数を表す矩形の内部を塗り潰
して表現し、まだ、変数の場合には矩形の内部は白色で
表す。図1の例では、引数1には予め整数2が与えられ
ていることを示している。また、引数2には実行中に値
が入ったことを示す。また、引数3は、まだ変数である
ことを表わしている。
【0012】次に図形の書き換えについて説明する。図
3はプログラムの実行の際に抽出するトレース情報につ
いて示す。図3に示すようにプログラム実行中のプロシ
ジャの状態として、プロシジャの呼び出しを表すcal
lと、成功して終了したことを表すexitが用いられ
る。本実施例では、call,exit をトレース情
報とし、この情報に従って図形を表示する。
【0013】あるプロシジャのcallがトレース情報
として通知されると、このプロシジャを表す箱型の図形
が表示される。子プロシジャのcallが通知されると
、呼び出しの深さを上部に表示するとともに、子プロシ
ジャを表す図形を、呼び出しを行ったプロシジャを表す
図形の右側に表示する。また、同じ深さの子プロシジャ
は同じ列に表示される。図4にcallが通知された場
合の表示例を示す。つまり、呼び出しが深くなるにつれ
、表示は右側の方向に成長していく。
【0014】また、プロシジャのexitがトレース情
報として通知され、プロシジャの引数が何らかの値に具
体化されている場合には、引数を表す図形の書き換えが
行われる。図5に書き換えの例を示す。この例は、プロ
シジャrがexitした場合の表示例である。exit
の際にrの第1引数が具体化されているため、ビジュア
ル・トレーサは今まで白色で表されていたrの第1引数
を表す図形の内部を塗り潰す書き換えを行う。また、こ
の引数は、プロシジャqの第2引数と共有されているた
め、プロシジャqの第2引数を表す図形の書き換えも行
う。さらにプロシジャqのexitが通知され、この際
に第1引数が具体化されていたために、ビジュアル・ト
レーサはプロシジャqを表す図形の第1引数を表す矩形
の塗り潰しを行うとともに、共有変数であるプロシジャ
pの第2引数を塗りつぶす。
【0015】次にビジュアル・トレーサによる表示例を
説明する。図6はエラトステネスのふるいの例題をPr
ologで表わしたプログラム例を示す。これはトップ
レベルの呼び出しがprimes(Max,List)
であり、1からMax までの整数のうち素数をLis
tに返すプログラムである。このプログラムは次のステ
ップからなっている。■  1からMax までの数を
『ふるい』に入れる。■  ふるいの中の最小の数を選
んでこれを取り除く。■  この数を素数のなかに含め
る。■  ふるいから、この数の全ての倍数を取り除く
。■  ふるいが空でなければステップ■から■を繰り
返す。
【0016】図7はエラトステネスのふるいの例題を図
形表示した例を示す。本実施例のビジュアル・トレーサ
が行う図形表示では、深さ1の列にprimesを表す
箱型が表示される。primes(Max,List)
の子プロシジャは2つあり、一つはgen(1,Max
,GenList)、もう一つはsift(GenLi
st,List)である。プロシジャgen では、1
からMax までの整数を生成しリストListに整数
を順に格納する。プロシジャsiftはこのリストLi
stに格納されている整数列をそれまでに得られた素数
によってふるいにかける。ふるいにかけるのはプロシジ
ャsiftの子プロシジャのfilterであり、fi
lterは、自分( 素数 )が割り切れることができ
る数を取り除き、残りを深さ3のsiftに渡す。si
ftは新しい素数に対し新しいfilterを生成する
【0017】処理が進んで行く様子を図7に示している
。図7では、色分けされていることをパターンの違いで
示している。プロシジャgen の第3引数は次の深さ
のgen の第3引数と共有されている変数であること
がわかる。図中(d)では、深さ5のgen がexi
tし、第3引数が空リスト〔〕に具体化されたことによ
って、共有変数である深さ4,3,2の第3引数がこの
順に塗りつぶされていく。また、この変数はさらに深さ
2のsiftの第1引数と共有されていることも分かる
【0018】最終的に正常終了した場合には、図7に示
すように全ての引数が塗りつぶされた状態になる。しか
し、プログラム中にミスタイプ等のバグが混入していた
場合には、ビジュアル・トレーサの出力は図8(a)に
示すようになる。例えば、この場合には図8(b)に示
すように、プログラム中にミスタイプがあるため、深さ
5のgen の第3引数の値が具体化されていないとい
うように、プログラム中のどこにバグがあるかを知るこ
とができる。
【0019】次にビジュアル・インスペクタについて説
明する。本実施例のビジュアル・インスペクタではプロ
シジャ及び変数に具体化された複雑なデータ構造を図形
表示することによって、プログラム中のデータを視覚的
に理解できることを特徴としている。本実施例のビジュ
アル・インスペクタで表示される基本的なデータ構造と
してリスト、スタック、配列を表す表示図形を図9に示
す。具体化されているデータの構造によって、表示され
る図形が変わる。
【0020】次にプログラムの解析支援機能について説
明する。本実施例のビジュアル・トレーサとビジュアル
・インスペクタを用いて、図形上で操作できるプログラ
ムの解析を支援するプログラム解析支援機能を実現でき
る。解析支援機能はビジュアル・トレーサ上に表示され
ている図形上で操作することができる。解析支援機能と
して、スパイ機能、実行保留機能、ズーム機能等がある
。 1.スパイ機能 プログラム実行中に、ビジュアル・トレーサ上のまだ具
体化されていない変数を表す図形を指定し、この変数が
具体化された際にビジュアル・インスペクタ上にそのデ
ータを示す図形を表示することができるスパイ機能を持
つ。スパイが指定されている変数を表す図形上には、ア
イコンが表示され、現在どの変数にスパイが指定されて
いるかを一目で分かるようになる。また、スパイの対象
としてプロシジャを指定することもできる。この場合に
は、プロシジャがcallされたタイミングでビジュア
ル・インスペクタ上にプロシジャの状態を詳細に図形表
示する。変数を指定した場合と同様に、スパイが指定さ
れているプロシジャを表す図形上にはアイコンが表示さ
れ、現在スパイが指定されているプロシジャはどれであ
るか一目で分かる。
【0021】2.実行保留機能 ビジュアル・トレーサ上のまだ実行されていないプロシ
ジャを表す図形を指定し、実行を保留させる機能を持つ
。実行の保留中は、実行保留が指定されているプロシジ
ャを表す図形上にはアイコンが表示されている。実行の
再開も図形上で指示を与えることができる。
【0022】3.ズーム機能 ビジュアル・トレーサ上のあるプロシジャあるいは変数
を表す図形を指定することにより、このプロシジャある
いは変数の詳細なデータ構造をインスペクタ上に表示す
るズームアップ機能を持つ。
【0023】次に本実施例のビジュアル・デバッガにつ
いて説明する。図10はビジュアル・デバッガの構成を
示す。ビジュアル・デバッガは抽出部1、ビジュアル・
トレーサ2、ビジュアル・インスペクタ3、proce
dure 情報テーブル4、引数情報テーブル5、トレ
ーサ画面6、インスペクタ画面7からなる。抽出部1は
、既存のデバッガを用いる。抽出部1では、実行前にプ
ロシジャの引数の共有(参照)関係を調べ、ビジュアル
・トレーサ2に通知しておく。ビジュアル・トレーサ2
はprocedure 情報テーブル4内にプロシジャ
と引数の情報を、さらに引数情報テーブル5に引数の参
照関係を保持する。抽出部1上で、プログラムを実行し
、プログラムの実行情報としてプロシジャのcallお
よびexitのトレース情報を得る。
【0024】プログラムの実行に伴って、トレース情報
callが送られてくると、ビジュアル・トレーサ2で
はプロシジャまたは引数を表す図形を生成し、プロシジ
ャあるいは引数と図形の対応関係を保持する。さらに、
トレーサ画面6にプロシジャ及び引数の図形を表示する
グラフィック命令を送る。図10中、procedur
e 情報テーブル4、引数情報テーブル5内の綱掛け部
分が生成された図形を示している。
【0025】また、トレース情報exitがビジュアル
・トレーサ2に通知された場合、プロシジャの引数に値
が入っていた際には、この引数を表す図形を塗りつぶす
ためのグラフィック命令をトレーサ画面6に送る。さら
に、この変数を参照している他のプロシジャがあるか否
かを引数情報テーブル5を参照して調べ、存在する場合
には、参照している引数を表す図形を塗りつぶすための
グラフィック命令をトレーサ画面6に送る。以上の処理
の流れを図11に示す。
【0026】次に表示画面について説明する。ビジュア
ル・デバッガの画面を図12に示す。図中上部はビジュ
アル・トレーサの表示画面である。これをトレーサ画面
6と呼ぶ。また下部はビジュアル・インスペクタの表示
画面である。これをインスペクタ画面7と呼ぶ。ビジュ
アル・デバッガの操作メニューは上部画面の右側に表示
されている。
【0027】次にビジュアル・デバッガの機能と操作に
ついて説明する。図12中、上部画面右側のアイコンは
ビジュアル・デバッガの操作を行うためのアイコンであ
る。アイコンは上から順に、スパイ、実行保留( スリ
ープ)、ズーム、非表示、取消し、拡大/縮小、コマ送
り、実行再開、実行中止の機能を表わしている。基本的
な操作は、アイコンをクリックした後、トレーサ画面6
上でプロシジャあるいは引数を表す図形をマウスクリッ
クすることにより行う。指定を行うと、指定されたプロ
シジャあるいは引数上に機能を表すアイコンが表示され
、指定の状態を表す。
【0028】ビジュアル・トレーサ2はトレーサ画面6
上のマウスによる指示を読み、指示に従って、インスペ
クタ画面7への表示を行ったり、抽出部1へ実行制御を
行うための通知をする。図12では、プロシジャfil
terにスパイが指定されており、filterがca
llされたタイミングで、インスペクタ画面7上に、f
ilterの各引数の詳細な図形表示が行われている様
子を示している。インスペクタ画面7上のプロシジャを
表す箱型の図形の左側には入力引数が表示されており、
また、右側には出力引数が表示されている。ここでは、
第1引数が整数2、第2引数がリスト〔3,4〕、第3
引数が変数であることを表している。
【0029】スパイが指定されたプロシジャあるいは引
数に関しては、procedure 情報テーブル4あ
るいは引数情報テーブル5にスパイが指定されていると
いう情報が保持されている。ビジュアル・トレーサ2は
、スパイが指定してあるプロシジャあるいは引数の図形
を描くグラフィック命令をトレーサ画面6に送った後、
ビジュアル・インスペクタ3に対して図形表示命令を送
る。この際には、抽出部1に現在格納されているデータ
等の情報が送られる。ビジュアル・インスペクタ3はビ
ジュアル・トレーサ2から送られてきた情報に基づいて
インスペクタ画面7に詳細なデータ構造を表す図形を表
示するためのグラフィック命令を送る。
【0030】また、図12では、プロシジャgen の
深さ4以降は非表示が指定されていることが非表示の機
能を表すアイコンによって示されている。図13に、ズ
ーム機能をプロシジャgen の第3引数に指定してい
る例を示す。 この場合には、現時点のgen の第3引数の値をイン
スペクタ画面7に表示する。図13では、現在、この引
数がリスト〔1,2,3,4,5〕に具体化されている
ことを表している。また、実行保留の場合には、指定さ
れたプロシジャ上に実行保留を表すアイコンが表示され
る。この際には、ビジュアル・トレーサ2は実行制御命
令を抽出部1に送り、指定されたプロシジャの実行を保
留させる。
【0031】こらの指定を取り消すためには、取消のア
イコンをクリックし、トレース画面6上に表示されてい
る各機能を表すアイコンをクリックする。これにより、
トレース画面6上の指定されたアイコンは消され、その
指定も取り消される。プログラムが大きく、トレース情
報が画面上に表示しきれない場合には、表示されている
全ての図形を縮小したりスクロールすることによって、
プログラム全体の動きの概略を見ることができる。また
、コマ送り、実行再開、実行中止の各アイコンをクリッ
クすることによって、プログラムの実行全体を制御する
ことができる。
【0032】
【発明の効果】以上の説明から明らかなように、本発明
は、プログラムの実行に対応して該当するプロシジャと
その変数を図形で表わし、さらにその変数の変化に応じ
てその変数を表す図形を変化させるので、プログラムの
実行状況およびデータの流れが容易に理解できるように
なる。
【図面の簡単な説明】
【図1】本発明の実施例のビジュアル・トレーサにおけ
るプロシジャを表す基本図形を示す図である。
【図2】本実施例のビジュアル・トレーサ上でのデータ
の表示例を示す図である。
【図3】プログラムの実行の際に抽出するトレース情報
を説明する図である。
【図4】本実施例のビジュアル・トレーサにおけるプロ
シジャへのcallを図形表示した例を示す図である。
【図5】プロシジャのexitに伴う図形の書き換えの
例を示す図である。
【図6】例題エラトステネスのふるいをprologで
表現したプログラムを示す図である。
【図7】本実施例のビジュアル・トレーサ上で図6に示
す例題を実行した場合の図形の書き換えの例を示す図で
ある。
【図8】本実施例のビジュアル・トレーサ上でバグ入り
プログラムを実行した際の出力例を示す図である。
【図9】本実施例のビジュアル・インスペクタにおける
データ構造の図形表示例を示す図である。
【図10】本実施例のビジュアル・デバッガのシステム
構成を示す図である。
【図11】ビジュアル・デバッガによる図形出力の処理
手順を示す図である。
【図12】ビジュアル・デバッガの表示画面の例を示す
図である。
【図13】ビジュアル・デバッガ上でズームを行った表
示画面の例を示す図である。
【符号の説明】
1  抽出部 2  ビジュアル・トレーサ 3  ビジュアル・インスペクタ 4  procedure 情報テーブル5  引数情
報テーブル 6  トレーサ画面 7  インスペクタ画面

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】  プログラム中のプロシジャとそのプロ
    シジャの変数とをそれぞれ所定の形状の図形で表し、プ
    ロシジャには識別名を表示し、他のプロシジャとの関係
    に応じて各プロシジャとその変数を表す図形を配置する
    ようにし、プログラムの実行に対応して該当するプロシ
    ジャとその変数を表す図形を表示してゆくとともに、こ
    の変数を表す図形は変数の変化に対応し、図形の特徴を
    変化させて表示するビジュアル・トレーサを備えたこと
    を特徴とするビジュアル・デバッガ。
  2. 【請求項2】  前記プロシジャを表す図形または前記
    変数を表す図形と、表示内容を指定して、そのデータ構
    造を表示するビジュアル・インスペクタを備えたことを
    特徴とする請求項1記載のビジュアル・デバッガ。
  3. 【請求項3】  前記表示内容がスパイ機能、実行保留
    機能、ズーム機能を含むプログラム解析支援機能である
    ことを特徴とする請求項2記載のビジュアル・デバッガ
JP3051845A 1991-03-18 1991-03-18 ビジュアル・デバッガ Withdrawn JPH04287137A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3051845A JPH04287137A (ja) 1991-03-18 1991-03-18 ビジュアル・デバッガ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3051845A JPH04287137A (ja) 1991-03-18 1991-03-18 ビジュアル・デバッガ

Publications (1)

Publication Number Publication Date
JPH04287137A true JPH04287137A (ja) 1992-10-12

Family

ID=12898191

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3051845A Withdrawn JPH04287137A (ja) 1991-03-18 1991-03-18 ビジュアル・デバッガ

Country Status (1)

Country Link
JP (1) JPH04287137A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916432A (ja) * 1995-06-27 1997-01-17 Nec Commun Syst Ltd トレースデータ解析システム
WO1999061986A1 (fr) * 1998-05-27 1999-12-02 Mitsubishi Denki Kabushiki Kaisha Equipements peripheriques pour controleur programmable et leur procede de surveillance
JP2010020558A (ja) * 2008-07-10 2010-01-28 Internatl Business Mach Corp <Ibm> データ構造の形状を解析する装置及び方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0916432A (ja) * 1995-06-27 1997-01-17 Nec Commun Syst Ltd トレースデータ解析システム
WO1999061986A1 (fr) * 1998-05-27 1999-12-02 Mitsubishi Denki Kabushiki Kaisha Equipements peripheriques pour controleur programmable et leur procede de surveillance
JP2010020558A (ja) * 2008-07-10 2010-01-28 Internatl Business Mach Corp <Ibm> データ構造の形状を解析する装置及び方法

Similar Documents

Publication Publication Date Title
JP3016783B2 (ja) コンピュータプログラム方法
US5732277A (en) Graphical system for modelling a process and associated method
US6421821B1 (en) Flow chart-based programming method and system for object-oriented languages
US20020046397A1 (en) Method for debugging flowchart programs for industrial controllers
Fuhrmann et al. Taming graphical modeling
JPH07200278A (ja) 図形を用いたプログラミングシステム
JPH0443465A (ja) 図形編集装置
US20060085783A1 (en) Multi-process display method in debugger system
JPH08221107A (ja) シーケンス制御プログラム作成装置
JPH04287137A (ja) ビジュアル・デバッガ
KR20000018932A (ko) 게임 개발 시스템 및 그 방법
JP2005063136A (ja) 半導体集積回路の設計装置、設計方法、及び設計プログラム
KR101498877B1 (ko) 프로그램 작성 장치 및 화상 제어 시스템
US9021346B2 (en) Systems and methods for displaying and editing state-specific link attributes
Kerfs Creating Simple Games with Sprites and Movement
JPH04290168A (ja) シミュレーション装置とそのシミュレーション結果表示方法
Sutherland et al. UI traces: Supporting the maintenance of interactive software
JPH04326122A (ja) データ処理装置
JPH07334358A (ja) 手順編集装置
JP2006092441A (ja) プログラマブルコントローラ
JPH052477A (ja) グラフイカル・ユーザ・インタフエースの作成方式
JPH08194634A (ja) テスト実行システム
CN117573258A (zh) 车载仪表的人机交互界面管理方法及装置
CN112162749A (zh) 一种基于Angular框架封装表格控件的方法、装置、设备和介质
Zábský GeoGen-Scriptable generator of terrain height maps

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 19980514