JPH05334119A - プログラムデバッグ方法 - Google Patents

プログラムデバッグ方法

Info

Publication number
JPH05334119A
JPH05334119A JP4144139A JP14413992A JPH05334119A JP H05334119 A JPH05334119 A JP H05334119A JP 4144139 A JP4144139 A JP 4144139A JP 14413992 A JP14413992 A JP 14413992A JP H05334119 A JPH05334119 A JP H05334119A
Authority
JP
Japan
Prior art keywords
program
array
value
module
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
JP4144139A
Other languages
English (en)
Inventor
Sotaro Kawaguchi
荘太郎 川口
Sumio Kikuchi
純男 菊地
Makoto Sato
真琴 佐藤
Shigemi Yamada
重己 山田
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 Ltd
Hitachi Solutions East Japan Ltd
Original Assignee
Hitachi Ltd
Hitachi Tohoku Software 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 Ltd, Hitachi Tohoku Software Ltd filed Critical Hitachi Ltd
Priority to JP4144139A priority Critical patent/JPH05334119A/ja
Publication of JPH05334119A publication Critical patent/JPH05334119A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Digital Computer Display Output (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 プログラム中断時における配列要素の値を2
次元表示することによりデバッグ効率を向上させる。 【構成】 モジュールの実行文に中断点31を設定し、
利用者が配列Aの要素の参照を指示する。添字設定部2
7で可変とする次元のx軸、y軸を設定すると、プログ
ラムデバッガは、解析情報中の配列Aの先頭アドレスを
取り出し、配列Aの各要素のアドレスを求め、そのアド
レスをキーにして、ロードモジュールを参照して、要素
値を読み出して二次元表示する。配列Aの要素値の表示
において、表示部30には不正なデータ(値0)も表示
される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、対話環境で行うプログ
ラムのデバッグ方法に関し、特にプログラム実行中断時
における配列要素を二次元表示するデバッグ方法に関す
る。
【0002】
【従来の技術】従来、プログラム実行時における配列の
値を参照する場合、ダンプリストを用いて配列要素に対
する記憶場所の計算を行うことによって、配列の値を得
ていた。このため、利用者の作業負担が大きくなり、デ
バッグ効率が著しく悪かった。そこで、プログラムの実
行を中断し、配列の値の参照が可能なプログラムデバッ
ガが種々開発され、実用に供されている。
【0003】
【発明が解決しようとする課題】しかしながら、上記し
た従来のデバッグ方法では、プログラム実行の中断時に
参照したい配列の名称と要素を個々に指定しなければな
らず、特に、不連続なアドレスにある複数の配列要素の
値を一度に表示することができないため、プログラムの
デバッグ作業を効率的に行うことができないという問題
があった。
【0004】本発明の目的は、プログラム中断時におけ
る配列要素の値を2次元表示することによりデバッグ効
率を向上させたデバッグ方法を提供することにある。
【0005】
【課題を解決するための手段】前記目的を達成するため
に、本発明では、プログラムの実行を中断させつつデバ
ッグ作業を行うプログラムデバッグ方法において、配列
要素中の表示すべき二次元の添字を表示画面上の所定領
域に設定し、該設定された添字を逐次変化させたときの
対応する配列要素の値をロードモジュールから読み出し
て二次元表示し、該表示された要素の値を一部設定変更
してプログラムを実行することを特徴としている。
【0006】
【作用】利用者は、モジュールの実行文に中断点を設定
し、配列の要素の参照を指示する。プログラムデバッガ
の操作画面上の添字設定部で可変とする次元のx軸、y
軸を設定すると、プログラムデバッガは、解析情報中の
配列の先頭アドレスを取り出し、その配列の各要素のア
ドレスを計算する。計算されたそのアドレスをキーにし
て、ロードモジュールを参照して、要素値を読み出し二
次元表示する。これにより、配列の各要素を任意に参照
することが可能となり、デバッグ作業を効率的に行うこ
とができる。
【0007】
【実施例】以下、本発明の一実施例を図面を用いて具体
的に説明する。図2は、本発明のデバッグ方法が適用さ
れるデバッガのシステム構成図である。コンパイラ2
は、ソースプログラムが登録されたソースファイル1を
入力して、字句解析・構文解析を行い、ソースプログラ
ムの解析情報3を生成すると共に、コード生成処理によ
ってオブジェクトプログラム4を出力する。さらにオブ
ジェクトプログラム4をリンケージエディタ5によって
連系編集し、ロードモジュール6を生成する。
【0008】利用者がプログラムデバッガ7を起動する
と、プログラムデバッガ7は、解析情報3とロードモジ
ュール6、及びソースファイル1を入力して、コンソー
ル8に、モジュールの引用関係を示すコールグラフとモ
ジュールのソースプログラムを同時に表示する(初期表
示)。
【0009】また、後述するように、この初期表示か
ら、利用者はコールグラフのレイアウト表示、拡大表
示、及びプログラム構造の輪郭図を表示するマッピング
表示などを用いながら、任意にモジュールの入口、出口
での中断点を設定し、そのときの引数あるいはCOMM
ON並びの値を参照し、モジュール間のデバッグ作業を
行うことができる。また、この初期表示において、利用
者はコールグラフかソースプログラム、あるいはその両
方の表示を選択することができる。さらに、コールグラ
フ上で指定した任意のモジュールのソースプログラムに
表示内容を変更することもできる。
【0010】図3は、ソースファイル1中に格納されて
いるFORTRANソースプログラムの一例であり、こ
のFORTRANソースプログラムは、プログラム実行
時にモジュールSUBの実行文11において0による割
算が発生して異常終了するプログラムの例である。
【0011】図4(a)は、コンパイル時に格納される
ソース解析情報3を示す図である。すなわち、ソース解
析情報3は、モジュール単位のアドレス、名称の使用位
置、引用している手続き、引数等の情報で構成されてい
る。また、図中の12は、配列Aの先頭アドレスであ
り、13は、SUBの入口のアドレスであり、14、1
5、16は、それぞれ引数P,Q,Rのアドレスであ
る。
【0012】図4(b)は、ロードモジュール6を示
す。すなわち、プログラム実行時に各変数、配列の値が
設定される領域の一部を示し、17、18、19は、そ
れぞれ引数P,Q,Rの値の位置であり、20は、配列
Aの要素値の位置である。
【0013】以下、図3のプログラム実行時におけるプ
ログラムデバッガ7を用いたデバッグ方法について詳細
に説明する。まず、コンソール8の表示ウィンドウは、
図5(a)に示すように初期表示される。該表示ウィンド
ウにおいて、利用者が実行ボタン21を押下することに
よって、プログラムが実行される。
【0014】プログラムデバッガ7は、コールグラフ表
示22上の実行中モジュールの変化に対応してソースプ
ログラム表示23の表示内容を更新する。そして、図5
(b)に示すように、コールグラフ表示22上で異常終了
したモジュールSUBを高輝度表示し、またソースプロ
グラム表示23上で異常終了した実行文(前述したよう
に、0による割算)の位置24を高輝度表示して、実行
を終了する。
【0015】次いで、不良が発生しているモジュールが
特定されると、図6(a)に示すように、利用者がモジ
ュールSUBの入口に中断点25を設定する。プログラ
ムデバッガ7は、設定された実行中断点25における引
数値を表示する(図6(a)の26)。
【0016】すなわち、モジュールSUBの入口でプロ
グラムの実行を中断したとき、ロードモジュール6の内
容は、図6(b)に示す状態になっている。プログラム
デバッガ7は、図4に示す解析情報中の引数のアドレス
14,15,16に対応したロードモジュール位置1
7,18,19から引数値を得て、それらの値を引数名
と共に表示する。このように、モジュールMAINとモ
ジュールSUBの間で受渡しされる引数とその値が表示
されるので、引数Pが値0で渡されていることがその表
示内容から分かる。
【0017】このようにして、本実施例ではモジュール
間で受渡しされるデータの参照を容易に行うことがで
き、不良のあるモジュールを特定することができる。上
記した実施例では、その表示内容からモジュールSUB
の呼び出し元であるMAINが不正な値を渡していると
判断することができる。
【0018】また、不良が発生しているモジュールが特
定されると、任意のソースプログラム行に実行中断点を
設定したり、あるいはソースプログラム上から、変数の
値が現状の値と変化した時点で実行を中断する変数を選
択したり、任意のソースプログラム行に対して実行中断
条件の指定を行うことにより、プログラム実行を中断
し、プログラム実行中の任意の箇所での値の参照を行う
こともできる。
【0019】図1は、MAINモジュールの実行文に中
断点31を設定し、プログラムの実行が該中断点31で
中断された状態で、利用者がソースプログラム上の配列
Aの要素の参照をマウスによって指示したときに(行2
6のプログラム文中で“A”を指示)、配列Aの配列要
素がコンソール8上に二次元表示される図である。
【0020】図1において、添字設定部27で可変とす
る次元のx軸、y軸を設定する。この例では、x軸方向
がI、y軸方向がKとなり、Jは値2に固定され、x,
yがそれぞれ1から5の範囲の配列要素の値が二次元表
示部28に表示されている。また、上下左右のスクロー
ルボタン29を操作することにより、配列要素の値を自
由に二次元表示部28に位置付けて参照することがで
き、更に不連続な配列要素の値も容易に参照することが
できる。
【0021】この配列要素の二次元表示は次のようにし
て行われる。図8は、本実施例のプログラムデバッガ7
における二次元表示の処理フローチャートである。すな
わち、中断点の位置31でプログラム実行が中断したと
き、ロードモジュール6の内容は、図7に示した状態に
なっている。プログラムデバッガ7は、図8の処理に従
って、ユーザによって指定された配列A(x,2,y)
の値を二次元表示する。
【0022】図8において、プログラムデバッガ7は、
図4(a)の解析情報中の配列Aの先頭アドレス12を
取り出す(ステップ32)。配列Aの要素(1,2,
1)、(2,2,1)、(3,2,1)、(4,2,
1)、(5,2,1)....のアドレスを、配列の上
限まで求める(ステップ33、34、35)。図9は、
配列Aの要素位置を示し、図中38は、x=1、y=1
からx=5、y=1(Jは2に固定)までの要素の位置
を示す。
【0023】プログラムデバッガ7は、計算された図9
の位置38〜42のアドレスをキーにして、ロードモジ
ュール6の位置20を参照して、要素値を次々に読み出
す(ステップ36)。そして、読み出された配列の各要
素を図1に示すように二次元表示する(ステップ3
7)。
【0024】この例の場合、配列Aの要素値の表示にお
いて、30で指示される表示部には不正なデータ(デー
タ値=0)が表示されている。これは図3の型宣言文9
で宣言されている配列B、Cの値が、実行文10によっ
て配列外参照されて(つまり、B(I,J,5),C
(I,J,5))、配列Aの値が生成されているからで
ある。そして、図9のK=5の配列要素群には、不正な
データが設定されていて、この結果、図1の表示部30
には不正なデータ(データ値=0)が表示されることに
なる。
【0025】このように本実施例によれば、配列を二次
元表示することによって、不正なデータの確認を容易に
行うことができる。さらに、この不正データの確認時点
でプログラムの動作確認を行う場合には、表示部30に
表示されている要素値に正しい値を設定して、プログラ
ムを実行することにより確認することができる。
【0026】また、配列Aの値を定義点(図3の10の
位置)で参照する場合には、プログラムを再実行し、図
10の実行文に中断点44を設定して値を参照する。し
かし、この文はDOループ中にあるため、そのままでは
各ループ毎に実行が中断してしまう。そこで、本実施例
のプログラムデバッガ7には、各中断点毎に中断までの
繰返し実行回数の設定を行えるようなウィンドウ43が
用意され、ループ中の実行文でも繰返し実行回数の任意
の値の時にプログラムを容易に中断することができ、利
用者のデバッグ効率の向上を図っている。
【0027】
【発明の効果】以上、説明したように、本発明によれ
ば、配列要素を個々に指定することなく、配列要素の値
を二次元表示画面上で任意に参照することができるの
で、配列要素中の不正な値の検出を容易に行うことがで
き、デバッグ作業の効率を大幅に向上させることができ
る。
【図面の簡単な説明】
【図1】本発明により配列の各要素が二次元表示された
図である。
【図2】本発明のデバッグ方法が適用されるデバッガの
システム構成図である。
【図3】FORTRANソースプログラムの一例であ
る。
【図4】(a)は、コンパイル時に格納されるソース解
析情報であり、(b)は、ロードモジュールである。
【図5】(a)はコンソールの初期表示画面であり、
(b)は異常終了したモジュールを高輝度表示した画面
である。
【図6】(a)はモジュールSUBの入口に中断点を設
定した表示画面、(b)はロードモジュールの内容の一
部である。
【図7】プログラム実行が中断したときのロードモジュ
ールの内容である。
【図8】本実施例のプログラムデバッガにおける二次元
表示の処理フローチャートである。
【図9】配列Aの要素位置を示す図である。
【図10】デバッガに用意された中断までの繰返し実行
回数の設定を行うための表示画面である。
【符号の説明】
1 ソースファイル 2 コンパイラ 3 解析情報 4 オブジェクトプログラム 5 リンケージエディタ 6 ロードモジュール 7 プログラムデバッガ 8 コンソール
───────────────────────────────────────────────────── フロントページの続き (72)発明者 佐藤 真琴 東京都国分寺市東恋ケ窪1丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 山田 重己 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 プログラムの実行を中断させつつデバッ
    グ作業を行うプログラムデバッグ方法において、配列要
    素中の表示すべき二次元の添字を表示画面上の所定領域
    に設定し、該設定された添字を逐次変化させたときの対
    応する配列要素の値をロードモジュールから読み出して
    二次元表示し、該表示された要素の値を一部設定変更し
    てプログラムを実行することを特徴とするプログラムデ
    バッグ方法。
JP4144139A 1992-06-04 1992-06-04 プログラムデバッグ方法 Pending JPH05334119A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4144139A JPH05334119A (ja) 1992-06-04 1992-06-04 プログラムデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4144139A JPH05334119A (ja) 1992-06-04 1992-06-04 プログラムデバッグ方法

Publications (1)

Publication Number Publication Date
JPH05334119A true JPH05334119A (ja) 1993-12-17

Family

ID=15355135

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4144139A Pending JPH05334119A (ja) 1992-06-04 1992-06-04 プログラムデバッグ方法

Country Status (1)

Country Link
JP (1) JPH05334119A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438713B1 (en) 1998-02-27 2002-08-20 Hitachi, Ltd. Debugger for support of debugging of program, array data displaying method in debugger, and recording medium having array data displaying program in debugger
US7003761B2 (en) 2000-05-18 2006-02-21 Hitachi, Ltd. Multi-process display method in debugger system
JP2009264782A (ja) * 2008-04-22 2009-11-12 Yokogawa Electric Corp テストプログラム検査装置およびテストプログラム検査方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438713B1 (en) 1998-02-27 2002-08-20 Hitachi, Ltd. Debugger for support of debugging of program, array data displaying method in debugger, and recording medium having array data displaying program in debugger
US7003761B2 (en) 2000-05-18 2006-02-21 Hitachi, Ltd. Multi-process display method in debugger system
JP2009264782A (ja) * 2008-04-22 2009-11-12 Yokogawa Electric Corp テストプログラム検査装置およびテストプログラム検査方法

Similar Documents

Publication Publication Date Title
US6016474A (en) Tool and method for diagnosing and correcting errors in a computer program
JP2795244B2 (ja) プログラムデバッグシステム
EP0690378A1 (en) Tool and method for diagnosing and correcting errors in a computer programm
JP3612294B2 (ja) デバッグ方法およびデバッグ装置
JP2000122886A (ja) 半導体試験装置のプログラム作成方式
JP2919302B2 (ja) Cpuシミュレーション方法
JPH05334119A (ja) プログラムデバッグ方法
JPH0554277A (ja) プラント監視装置
JP2809048B2 (ja) 対画面デバッグ方式
JP2738360B2 (ja) マルチタスクプログラムのデバッグ方法およびデバッグシステム
JP3372387B2 (ja) プログラム検査方法
JP3077627B2 (ja) デバッグ方法およびデバッグプログラムを記録する記録媒体
JP2659366B2 (ja) デバッグ方法及びその装置
JPH05127945A (ja) プログラム実行状況解析方式
JP3130421B2 (ja) プログラム解析方法および装置
JPH0546434A (ja) プログラムデバツグ方式
JPS61180344A (ja) 高級言語のステツプ実行システム
JPH0395638A (ja) デバッグ装置
JPH07200351A (ja) プログラムデバッグ方法およびプログラムデバッグ支援装置
JPS63140344A (ja) 例外処理制御方式
JPH0353335A (ja) コンパイラの処理方式
JPS63178341A (ja) プログラムデバツグ方式
JPH04333146A (ja) デバッグにおけるプログラムの実行制御方式
JPS6143347A (ja) ベクトル命令シミユレ−シヨン方法
JPH05204698A (ja) デバッガ処理方式