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

プログラムデバッグ方法

Info

Publication number
JPH06274373A
JPH06274373A JP5061607A JP6160793A JPH06274373A JP H06274373 A JPH06274373 A JP H06274373A JP 5061607 A JP5061607 A JP 5061607A JP 6160793 A JP6160793 A JP 6160793A JP H06274373 A JPH06274373 A JP H06274373A
Authority
JP
Japan
Prior art keywords
access
array
access history
history information
status
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
JP5061607A
Other languages
English (en)
Inventor
Hiroyuki Hashimoto
博幸 橋本
Takayoshi Iizuka
孝好 飯塚
Sumio Kikuchi
純男 菊池
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
Original Assignee
Hitachi 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 filed Critical Hitachi Ltd
Priority to JP5061607A priority Critical patent/JPH06274373A/ja
Publication of JPH06274373A publication Critical patent/JPH06274373A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【構成】 対象配列名設定処理10によって生成された
対象配列名ファイル40と、ソースプログラム50を入
力としてコンパイルをコンパイル20で行う。その結
果、ロードモジュール60が得られる。アクセス履歴制
御30に、ロードモジュール60を実行処理25で処理
して得られたアクセス履歴情報ファイル70と、ソース
プログラム50と、参照パターン格納ファイル75とを
入力し、各配列要素のアクセス状況をアクセス状況格納
ファイル34に格納し、メモリアクセス履歴を表示装置
90に表示する。 【効果】 特定の配列要素に着目したときに、この要素
に対するアクセス履歴を表示し、アクセス状態をあるア
クセス発生時点に戻すことができるため、プログラムの
デバッグを容易に行える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムのデバッグ
方法に関する。
【0002】
【従来の技術】ソースプログラムをコンパイルし、得ら
れたロードモジュールを実行させたとき、プログラム作
成者が期待していた結果と異なる結果が出力されること
がある。この結果の異なる原因を調べ、ソースプログラ
ムを修正するデバッグに関しては、ソースプログラム中
にデバッグ行を挿入し再度実行して検査する方法があ
る。
【0003】従来、プログラムを実行して得られた実行
時の情報を基にプログラム実行時のメモリアクセス順を
表示し、プログラムデバッグ時に利用できるプログラミ
ング支援ツールが、米国のパラソフト(ParaSof
t)社よりVtoolとして製品化されている。これ
は、プログラム実行時のメモリアクセス順に着目したプ
ログラミング支援ツールの一つであり、プログラムを逐
次実行したときのメモリアクセス順を2次元のマトリッ
クス上で可視化して見せるものである。
【0004】
【発明が解決しようとする課題】上記従来技術では、ソ
ースプログラムを実行させて得られた結果が期待してい
たものと異なる場合、実行時のメモリアクセス順情報を
ファイル等に記憶しておき、その実行時の情報を基に実
際に行われたメモリアクセス順を可視化して見るが、可
視化されたすべての要素に対して実行結果を追跡しなけ
ればならない。
【0005】本発明の目的は、プログラム実行結果の不
正に関係していると思われるある配列要素に着目したと
きにその配列要素に対して行われたメモリアクセス履歴
を表示し、メモリアクセス履歴中の一つのアクセスを指
定することによりその配列に関する全配列要素のメモリ
アクセス履歴状態を選択したアクセスが発生した時点に
戻すことを特徴とするプログラムデバッグ方法を提供す
ることにある。
【0006】
【課題を解決するための手段】本発明によれば、デバッ
グ対象のソースプログラムにおいて、手続き名称と繰り
返し文の先頭行番号と繰り返し文内の実行文で定義また
は引用されている検査対象配列名とを指定して、繰り返
し文内の対象配列の要素が定義または引用される実行文
を実行した際にメモリアクセス情報をファイルに出力
し、このメモリアクセス情報を一つずつ読み込みながら
そのメモリアクセス情報を、対応する要素のメモリアク
セス履歴として記憶し、ある要素がユーザによって指定
された場合その要素に対してその時点までに行われたメ
モリアクセスの履歴として記憶してあるアクセス情報を
アクセス履歴として表示し、アクセス履歴中の一つのア
クセスをユーザが指定することにより、ファイルから入
力したアクセス情報を一つずつ読み戻し、読み戻すアク
セス情報に対応する要素のアクセス履歴からこのアクセ
ス情報を取り除き、対象配列に関する全配列要素のアク
セス履歴状態を指定したアクセスが発生した時点に戻す
処理を行う。これにより、プログラム実行結果の不正に
関係していると思われるある配列要素に着目したデバッ
グをすることができる。
【0007】また、本発明によれば、配列要素を2次元
の格子状に表示し、各要素に対して行われたアクセスの
順序により唯一の状態を示すアクセス状況を格納する領
域を全要素数分用意し、アクセス情報を一つ読み込む毎
に対応する要素のアクセス状況を更新し、このアクセス
状況を格子上に表示し、ある要素を指定することにより
要素に対して行われたアクセス履歴情報を表示し、アク
セス履歴中の一つのアクセスを指定することによりその
配列に関する全配列要素のアクセス履歴状況を指定した
アクセスが発生した時点に戻す処理を行う。これによ
り、プログラム実行結果の不正に関係していると思われ
るある配列要素に着目したデバッグをすることができ
る。
【0008】さらに、本発明では、要素に対して行われ
るアクセスに対し、ある特定の参照パターンをファイル
から入力し、検査対象配列の要素にアクセス情報を記憶
する際に、その要素に対して行われた参照パターンが上
記の参照パターンで示したものと同じであるかを検出
し、検出時に要素に対するアクセス履歴を表示し、アク
セス履歴中の一つのアクセスを指定することによりその
配列に関する全配列要素のアクセス履歴状況を指定した
アクセスが発生した時点に戻す処理を行う。これによ
り、プログラム実行結果の不正に関係していると思われ
るある配列要素に着目したデバッグをすることができ
る。
【0009】
【作用】本発明によれば、ソースプログラムをコンパイ
ルし、得られたロードモジュールを実行したときに得ら
れるアクセス履歴情報をアクセス履歴制御ツールで解析
を行い、ある配列要素に着目したときにアクセス履歴中
の任意のアクセスを選択することで、選択されたアクセ
スが発生した時点にアクセス履歴状態を戻すことができ
る。
【0010】
【実施例】まず、各図面の説明を行う前に、本実施例の
中で用いるアクセス状況と参照パターンの二つの意味に
ついて説明を行う。
【0011】まず、アクセスには値を更新する定義と値
を参照する引用とがある。そして、ある要素に対して行
われる複数のアクセスをこの二つのアクセス(定義・引
用)の組み合わせで考えることにし、このアクセスの組
み合わせをある一つの状態として表示することをアクセ
ス状況の表示と呼ぶことにする。ここで、考えられる組
み合わせの状態としては以下の四つがある。「アクセス
なし」、「引用のみ」、「定義のみ」、「定義と引
用」。このアクセス状況の決定は、要素に対して行われ
たアクセスと、そのアクセスが行われる直前のアクセス
状況とを用いて新たなアクセス状況を決定する。従っ
て、あるアクセスについての処理終了時には、全配列要
素に対しある一つのアクセス状況が決定されていること
になる。
【0012】参照パターンとは、ある要素に対して行わ
れたアクセス(定義・引用)の組み合わせを示すもので
あり、「定義の後に引用が行われる」、「定義、参照の
後に参照が行われる」などの指定が可能である。この参
照パターンは、アクセス情報を対応する要素に登録する
際に、その要素に対して行われた参照パターンが参照パ
ターンと同じであるかを検出する際に用いる。また、検
出された場合は、その要素に対するアクセス状況を「特
定参照」とする。従って、本実施例の中で用いるアクセ
ス状況は「アクセスなし」、「引用のみ」、「定義の
み」、「定義と引用」、「特定参照」の五つとする。
【0013】以下、本発明の実施例を図面を用いて説明
する。
【0014】図12は、ある要素に対して行われたアク
セスの順序からアクセス状況を決定する際に用いるアク
セス状況決定テーブル120を示す。新たなアクセス状
況は、アクセス情報を読み込む直前のアクセス状況と読
み込んだアクセス情報とで決定する。アクセス状況の初
期値はアクセスなしとする。それぞれの場合のアクセス
状況の決定方法について説明をする。
【0015】まず、テーブル121について説明をす
る。現在のアクセス状況がアクセスなしでアクセス情報
の定義・引用の区別が引用の場合は、新たなアクセス状
況を引用のみ、または参照パターンが「引用のみ」と設
定されている場合は新たなアクセス状況を特定参照と
し、アクセス情報の定義・引用の区別が定義の場合に
は、新たなアクセス状況を定義のみ、または参照パター
ンが「定義のみ」と設定されている場合は新たなアクセ
ス状況を特定参照とする。テーブル122については、
アクセスが引用の場合は、新たなアクセス状況を引用の
み、または参照パターンが「引用の後に引用」と設定さ
れている場合には新たなアクセス状況を特定参照とし、
アクセスが定義の場合は、新たなアクセス状況を定義と
引用、または参照パターンが「引用の後に定義」と設定
されている場合には新たなアクセス状況を特定参照とす
る。テーブル123については、アクセスが引用の場合
は、新たなアクセス状況を定義と引用、または参照パタ
ーンが「定義の後に引用」と設定されている場合は新た
なアクセス状況を特定参照とし、アクセスが定義の場合
は、新たなアクセス状況を定義のみ、または参照パター
ンが「定義の後に定義」と設定されている場合は新たな
アクセス状況を特定参照とする。テーブル124につい
ては、アクセスが引用の場合は、新たなアクセス状況を
定義と引用、または参照パターンに設定されているパタ
ーンでアクセスが行われている場合は新たなアクセス状
況を特定参照とし、アクセスが定義の場合は、新たなア
クセス状況を定義と引用、または参照パターンに設定さ
れているパターンでアクセスが行われている場合は新た
なアクセス状況を特定参照とする。テーブル125に示
すように、現在のアクセス状況が特定参照の場合には、
読み込んだアクセス情報の定義・引用の区別に関係なく
新たなアクセス状況を特定参照のままとする。
【0016】図16は、ある1要素に対するアクセス状
況を格納するテーブルの例を示したものである。このテ
ーブルは、配列の先頭要素から何番目の要素かを示すオ
フセット値フィールドと、その要素に対する現在のアク
セス状況を示すアクセス状況フィールドと、その要素に
対して行われた複数のアクセスを登録するアクセス情報
リストフィールドを備えている。そして、このテーブル
を、図1のアクセス状況格納ファイル34に対象配列の
全配列要素数分だけ確保する。
【0017】図1は本発明のプログラムデバッグ方法の
一実施例のブロック図である。
【0018】対象配列名設定10は、入力装置80から
入力されたアクセス履歴情報を取得する範囲とその範囲
内の実行文で定義または引用されていてアクセス履歴情
報を取得する対象となる配列名を対象配列名ファイル4
0に出力する。
【0019】対象配列名設定10は、対象配列名設定1
1を有する。
【0020】対象配列名設定11は、入力装置80から
入力されたアクセス履歴情報を取得する範囲とその範囲
内の対象配列名とを有する対象配列名ファイル40を生
成する。
【0021】対象配列名ファイル40とデバッグ対象の
ソースプログラム50は、コンパイル20に入力され、
ロードモジュール60が生成される。
【0022】コンパイル20は、アクセス履歴情報付加
21と、アクセス履歴情報出力コード生成22とを有し
ている。
【0023】アクセス履歴情報付加21は、ソースプロ
グラム50に対して対象配列名ファイル40で示される
アクセス履歴情報取得範囲内にある実行文で配列要素の
定義または引用がある場合に、その実行文に対し配列要
素の定義または引用があることを示すアクセス識別子を
付加する。
【0024】アクセス履歴情報出力コード生成22は、
ソースプログラム50にアクセス識別子の付加された実
行文がある場合にアクセス履歴情報をアクセス履歴情報
ファイル70に出力するためのオブジェクトコードを生
成し、ロードモジュール60に付加する。
【0025】従って、コンパイル20が出力するロード
モジュール60を実行25すれば、入力装置80から指
示されたアクセス履歴情報を取得する範囲内の実行文で
定義または引用されている対象配列について、配列要素
のメモリアクセスに関するアクセス履歴情報を格納した
アクセス履歴情報ファイル70が作成される。
【0026】アクセス履歴制御30は、ソースプログラ
ム50と、アクセス履歴情報ファイル70と、参照パタ
ーン格納ファイル75と、入力装置80からの指示によ
り、各要素のアクセス状況をアクセス状況格納ファイル
34に格納し、アクセス履歴情報の表示などを行いその
結果を表示装置90に出力する。
【0027】アクセス履歴制御30は、アクセス状況制
御31を有する。
【0028】アクセス状況制御31は、参照パターン格
納ファイル75に格納されている参照パターンを入力
し、ソースプログラム50と、アクセス履歴情報ファイ
ル70との内容をそれぞれのファイルに格納されている
順に一つずつ入力しながら、各要素のアクセス状況をア
クセス状況格納ファイル34に格納し、入力装置80か
ら入力されるコマンドの指示に従いアクセス履歴の表
示、アクセス状況の表示、アクセス履歴状態を以前の状
態に戻すなどの制御を行い、表示装置90に結果を表示
する。
【0029】図2は、図1ソースプログラム50の一実
施例である。図2のプログラムの左に付いている数字は
行番号を表わしており、1から番号付けされているもの
とする。
【0030】図3は、図1の入力装置80から「アクセ
ス履歴情報を取得する範囲:手続き名MAINのDO1
0のループ、対象配列:A」と指示し、図2のソースプ
ログラムを図1のコンパイル20で処理したときに生成
される図1のロードモジュール60のソースイメージを
示している。なお、図3の左端にある数字は図2の行番
号に対応させる為に便宜上示したものであり、ロードモ
ジュール中には存在しないものである。また、PRIN
T文中にあるaddr(name)は、nameで示さ
れた配列要素のアクセスアドレスを出力するものとす
る。各実行文で引用されている対象配列は、実行文が実
行される前にアクセス情報を出力する。そして、各実行
文で定義されている対象配列は、実行文が実行された後
にアクセス情報を出力する。
【0031】301はアクセス情報出力開始を示す識別
子であり、アクセス情報取得対象範囲の先頭である図2
の202の前に付加される。302はアクセス配列情報
を示す識別子であり、図2のAの配列宣言201を基に
生成される。303、304は配列の定義・引用を示す
アクセス情報である。305はアクセス情報出力終了を
示す識別子であり、アクセス情報取得範囲の最後である
図2の204の後に付加される。
【0032】図4は、図1のアクセス履歴情報ファイル
70の内容の一例を示している。アクセス履歴情報ファ
イル70は、複数のアクセス情報401−1〜401−
nから構成されている。
【0033】図5は、図4のアクセス情報401−iの
内容の一例を示している。アクセス情報401−iは、
以下の4種類の情報のうちの一つである。この4種類の
情報を区別するために識別子を設ける。まず、アクセス
情報の取得が開始されたことを示す識別子ON。対象配
列の次元数、各次元の宣言範囲などを示す識別子AR
Y。ソースプログラムの実行文で対象配列の要素に対し
定義または引用が行われたことを示すACCESS。最
後に、アクセス情報の取得を終了することを示す識別子
OFF。
【0034】アクセス情報510は、識別子ON、手続
き名、行番号からなり、図1のソースプログラム50の
アクセス情報取得範囲の実行が開始される直前に出力さ
れる。アクセス情報520は、識別子ARY、手続き
名、行番号、配列の先頭アドレス、配列名、配列の型、
配列の長さ、配列の次元数、次元毎の下限値・上限値か
らなり、図1のソースプログラム50のアクセス情報取
得範囲の実行が開始される直前でかつアクセス情報51
0が出力された直後に出力される。アクセス情報530
は、識別子ACCESS、手続き名、行番号、配列名、
定義・引用の区別、要素の値、要素のアクセスアドレス
からなり、図1のソースプログラム50のアクセス情報
取得範囲内の実行文において対象配列の要素が定義また
は引用されたときに出力される。アクセス情報540
は、識別子OFF、手続き名、行番号からなり、図1の
ソースプログラム50のアクセス情報取得範囲の実行が
終了した直後に出力される。
【0035】図6は、図3のロードモジュールを実行し
たときに生成される図1のアクセス履歴情報ファイル7
0を示している。
【0036】図3を用いて図6のアクセス履歴情報ファ
イルが生成される過程を説明する。まず、アクセス情報
取得範囲の実行が開始される前に301、302が実行
され601、602が生成される。そして、アクセス情
報取得範囲内の実行で303、304が繰り返し実行さ
れ603、604、605、606が生成される。最後
に、アクセス情報取得範囲の実行が終了された直後に3
05が実行され607が生成される。
【0037】図7は、図1のアクセス履歴制御30の処
理の一例を示したものである。
【0038】ステップ701bでは、要素に対して行わ
れるある特定の参照パターンを検出するために用いる参
照パターンを図1の参照パターン格納ファイル75から
入力し、ステップ701aに進む。
【0039】ステップ701aでは、図1の入力装置8
0からのコマンドの入力を待つ。入力されたコマンドは
ステップ705b〜dで解析を行い、各コマンドに該当
する処理を行う。
【0040】ステップ705bでは、ステップ701a
で入力されたコマンドがアクセス状況表示再開コマンド
であるかどうかを判定する。アクセス状況表示再開コマ
ンドであれば、ステップ701cに進む。アクセス状況
表示再開コマンドでなければ、ステップ705cに進
む。ステップ701cでは、図1のアクセス履歴情報フ
ァイル70に格納されているアクセス情報を一つずつ入
力し、対応する配列要素に対しそのアクセス情報を登録
する。また、登録後にその要素に対するアクセス状況を
図12に従って決定し、アクセス状況を図1の出力装置
90に表示する。さらに、アクセス状況決定の際に、ア
クセス状況が特定参照に設定された場合は、その要素に
対してそれまでに行われたアクセス履歴を図1の出力装
置90に表示し、そのまま処理を継続するか、対象配列
に関する全配列要素のアクセス履歴情報をあるアクセス
が発生した時点に戻すかをユーザが指示する。さらに、
アクセス状況表示中断がユーザによって指示された場合
は、アクセス状況表示処理を中断する。
【0041】ステップ705cでは、ステップ701a
で入力されたコマンドが1要素アクセス履歴表示コマン
ドであるかどうかを判定する。1要素アクセス履歴表示
コマンドであれば、ステップ701dに進む。1要素ア
クセス履歴表示コマンドでなければ、ステップ705d
に進む。ステップ701dでは、ユーザによって指定さ
れたある要素に対してその時点までに行われたアクセス
履歴を図1の出力装置90に表示し、そのアクセス履歴
中の一つのアクセスを指定することにより対象配列に関
する全配列要素のアクセス履歴情報を指定されたアクセ
スが発生した時点に戻す処理を行う。
【0042】ステップ705dでは、ステップ701a
で入力されたコマンドがアクセス状況制御終了コマンド
であるかどうかを判定する。アクセス状況制御終了コマ
ンドであれば、アクセス状況制御処理を終了する。アク
セス状況制御終了コマンドでなければ、ステップ701
aに進み、次のコマンドの入力を待つ。
【0043】図8および図9は、図7のステップ701
cの処理を示す。
【0044】図8のステップ805aでは、図1の入力
装置80からアクセス状況表示中断コマンドが入力され
たかどうかを判定する。入力されていれば、アクセス状
況表示処理を終了する。入力されていなければ、ステッ
プ805bに進む。
【0045】ステップ805bでは、アクセス履歴情報
があるかどうかを判定する。アクセス履歴情報があれ
ば、ステップ801aに進む。アクセス履歴情報がなけ
れば、アクセス状況表示処理を終了する。
【0046】ステップ801aでは、図1のアクセス履
歴情報ファイル70からアクセス情報を1つ読み込み、
ステップ805cに進む。
【0047】ステップ805cでは、アクセス情報の識
別子がON,ARY,ACCESS,OFFのいずれか
であるかを判定する。識別子が上記のものであれば、ス
テップ805dに進む。識別子が上記のものでなけれ
ば、ステップ901fに進む。ステップ805dでは、
アクセス情報の識別子がONであるかを判定する。識別
子がONであれば、ステップ801bに進む。識別子が
ONでなければ805eに進む。
【0048】ステップ801bでは、アクセス情報取得
範囲が含まれる手続き名を示すcrt_nameに、ア
クセス情報の手続き名の位置に登録されている手続き名
が設定される。そして、ステップ805aに進む。
【0049】ステップ805eでは、アクセス情報の手
続き名の位置に登録されている手続き名がcrt_na
meに等しいかを判定する。等しい場合は、ステップ8
05fに進む。等しくない場合は、ステップ805aに
進む。
【0050】ステップ805fでは、アクセス情報の識
別子がARYであるかを判定する。識別子がARYであ
れば、ステップ801cに進む。識別子がARYでなけ
れば、ステップ905aに進む。
【0051】ステップ801cでは、対象配列の先頭ア
ドレスを示すarea_startに、アクセス情報の
先頭アドレスの位置に登録されているアドレス値が設定
される。さらに、対象配列の最終アドレスを示すare
a_endに、アクセス情報の先頭アドレスの位置に登
録されているアドレス値と次元数の位置に登録されてい
る次元数と下限値・上限値の位置に登録されている各次
元の下限値・上限値とから最終アドレスが計算され設定
される。そして、ステップ801dに進む。
【0052】ステップ801dでは、アクセス情報の次
元数の位置に登録されている次元数と下限値・上限値の
位置に登録されている各次元の下限値・上限値とから対
象配列の全要素数を計算し、要素数だけ格納可能な図1
6のアクセス状況格納テーブルを図1のアクセス状況格
納ファイル34に確保する。そして、ステップ805a
に進む。
【0053】ステップ905aでは、アクセス情報の識
別子がACCESSであるかを判定する。識別子がAC
CESSであれば、ステップ905bに進む。識別子が
ACCESSでなければ、ステップ901aに進む。
【0054】ステップ905bでは、アクセス情報のア
クセスアドレスがarea_startとarea_e
ndの間のアドレスであるかを判定する。area_s
tartとarea_endの間のアドレスであれば、
ステップ901bに進む。area_startとar
ea_endの間のアドレスでなければ、ステップ80
5aに進む。
【0055】ステップ901aでは、アクセス情報の識
別子がOFFであるので、対象配列の全要素に対してア
クセス状況の検索を行い、アクセス状況が特定参照の状
態に設定されている参照パターンとして設定された参照
パターンと同じパターンでアクセスが行われた要素の一
覧を図1の表示装置90に表示する。そして、ステップ
805aに進む。
【0056】ステップ901bでは、アクセス情報のア
クセスアドレスとarea_startとから求められ
るオフセット値を基に各次元の添字値を計算し、対応す
る要素位置にアクセス情報を登録する。そして、ステッ
プ905cに進む。
【0057】ステップ905cでは、図1の参照パター
ン格納ファイル75から入力された参照パターンと、要
素に対して行われたアクセスのパターンが同じかどうか
を判定する。同じ場合は、ステップ901cに進む。同
じでない場合は、ステップ901dに進む。
【0058】ステップ901dでは、ステップ901b
で登録が行われる要素に対して、その時点でのアクセス
状況と新たに登録するアクセス情報との組み合わせによ
り新たなアクセス状況を決定する。アクセス状況とアク
セス情報による新たなアクセス状況の決定は、図12を
用いて行う。
【0059】ステップ901cでは、ステップ901b
で登録の行われた要素に対する新たなアクセス状況を特
定参照の状態にする。そして、ステップ901eに進
む。
【0060】ステップ901eでは、ステップ901c
でアクセス状況が特定参照の状態になった要素のその時
点までのアクセス履歴を図1の表示装置90に表示す
る。そして、ステップ805aに進む。
【0061】ステップ901fでは、アクセス状況表示
処理中に処理不可能なアクセス情報が読み込まれた旨の
エラーを図1の表示装置90に表示する。そして、異常
終了する。
【0062】図10は、図7のステップ701dの処理
を示す。
【0063】図10の、ステップ101aでは、ある要
素に対して行われたアクセス履歴を図1の表示装置90
に表示する。表示の一例を図14に示す。そして、ステ
ップ101bに進む。
【0064】ステップ101bでは、アクセス履歴表示
後の処理を行うために、図1の入力装置80からコマン
ドの入力を待つ。コマンドが入力された場合は、ステッ
プ105aに進む。
【0065】ステップ105aでは、コマンドの解析を
行いコマンドが戻るであれば、ステップ105cに進
む。コマンドが戻るでなければ、ステップ105bに進
む。
【0066】ステップ105cでは、アクセスリスト中
の現在注目しているアクセス情報が選択されたアクセス
情報と同じであるかの判定を行う。同じであれば、ステ
ップ101dに進む。同じでなければ、ステップ101
cに進む。
【0067】ステップ101cでは、現在注目している
アクセス情報に対応する要素のアクセス履歴からアクセ
ス情報を取り除く処理を行った後、アクセス情報を図1
のアクセス履歴情報ファイル70に戻す処理を行う。そ
して、ステップ105cに進む。
【0068】ステップ101dでは、対象配列の全要素
に対するアクセス状況を再決定した後、再決定したアク
セス状況を図1の表示装置90に表示する。そして、ア
クセス履歴表示処理を終了する。
【0069】ステップ105bでは、コマンドの解析を
行いコマンドが継続であれば、アクセス履歴表示処理を
終了する。コマンドが継続でなければ、ステップ101
bに進む。
【0070】図11は、図9のステップ901aの処理
を示す。
【0071】図11のステップ111aでは、対象配列
の全要素のアクセス状況を検索し、アクセス状況が特定
参照の状態に設定されている要素をすべて図1の表示装
置90に表示する。表示の一例を図15に示す。そし
て、ステップ111bに進む。
【0072】ステップ111bでは、特定参照パターン
要素表示後の処理を行うために、図1の入力装置80か
らコマンドの入力を待つ。コマンドが入力された場合
は、ステップ115aに進む。
【0073】ステップ115aでは、コマンドの解析を
行いコマンドが選択であれば、ステップ111cに進
む。コマンドが選択でなければ、ステップ115bに進
む。
【0074】ステップ111cでは、選択された要素に
対して行われたアクセス履歴を図1の表示装置90に表
示する。そして、特定参照パターン要素表示処理を終了
する。
【0075】ステップ115bでは、コマンドの解析を
行いコマンドが終了であれば、特定参照パターン要素表
示処理を終了する。コマンドが終了でなければ、ステッ
プ111bに進む。
【0076】図13は、対象配列の各要素に対するアク
セス状況を表示するウィンドウの一例を示す。アクセス
状況表示領域132は、格子上に表示した一つの格子を
1要素に対応させ、その要素に対するアクセス状況を表
示する。また、ソースプログラム表示領域131は、現
在処理を行っているアクセス情報がソースプログラム上
のどの位置で起こったものかを示すために対応する行を
高輝度表示させる。
【0077】図14は、ある特定の要素のアクセス履歴
を表示するウィンドウの一例を示す。アクセス履歴の表
示では、アクセスの行われた手続き名、行番号、定義・
引用の区別、値を表示する。このアクセス履歴の中から
一つのアクセス情報を選択することによりそのアクセス
が発生した時点までアクセス履歴情報を戻すことがで
き、アクセス状況もその時点のものに戻される。
【0078】図15は、対象配列の各要素に対して図1
の参照パターン格納ファイルで指定された参照パターン
と同じ参照パターンでアクセスが行われた要素の一覧を
表示するウィンドウの一例を示す。このウィンドウは、
アクセス情報として識別子OFFが読み込まれた場合に
作成する。また、要素の一覧の中からある一つの要素を
選択すると、その要素に対して行われたアクセス履歴を
図14のウィンドウ上に表示する。
【0079】
【発明の効果】本発明によれば、特定の配列要素に着目
したときに、この要素に対するアクセス履歴を表示し、
表示されたアクセス履歴のなかからある一つのアクセス
を選択することにより、アクセス状態を選択したアクセ
ス発生時点に戻すことができるため、プログラムのデバ
ッグを容易に行える。
【図面の簡単な説明】
【図1】本発明の一実施例のブロック図。
【図2】ソースプログラムの一実施例を示す説明図。
【図3】図2のソースプログラムをコンパイルした結果
得られるロードモジュールのソースイメージを示す説明
図。
【図4】アクセス履歴情報ファイルを示す説明図。
【図5】アクセス履歴情報を示す説明図。
【図6】図3のロードモジュールを実行したときに得ら
れるアクセス履歴情報ファイルを示す説明図。
【図7】アクセス履歴制御処理の動作を示すフローチャ
ート。
【図8】アクセス状況表示処理の動作を示すフローチャ
ート。
【図9】アクセス状況表示処理の動作を示すフローチャ
ート。
【図10】アクセス履歴表示処理の動作を示すフローチ
ャート。
【図11】特定参照パターン要素表示処理を示すフロー
チャート。
【図12】アクセス状況の決定方法を示す説明図。
【図13】アクセス状況表示画面の例示図。
【図14】アクセス履歴表示画面の説明図。
【図15】特定参照パターン要素表示画面の説明図。
【図16】アクセス状況格納テーブルを示す説明図。
【符号の説明】
1…CPU装置、2…メモリ装置、10…対象配列名設
定、11…対象配列名設定、20…コンパイル、21…
アクセス履歴情報付加、22…アクセス履歴情報出力コ
ード生成、25…実行、30…アクセス履歴制御、31
…アクセス状況制御、34…アクセス状況格納ファイ
ル、40…対象配列名ファイル、50…ソースプログラ
ム、60…ロードモジュール、70…アクセス履歴情報
ファイル、75…参照パターン格納ファイル、80…入
力装置、90…表示装置。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】デバッグ対象のソースプログラムにおい
    て、手続き名称と繰り返し文の先頭行番号と前記繰り返
    し文内の実行文で定義または引用されている配列名とを
    指定して、前記繰り返し文内の配列の要素が定義または
    引用される実行文を実行した際に、ある要素のメモリア
    クセスの履歴をアクセス履歴として表示し、前記アクセ
    ス履歴中の一つのアクセスを指定することにより前記配
    列に関する全配列要素のアクセス履歴状態を前記アクセ
    スが発生した時点に戻すことを特徴とするプログラムデ
    バッグ方法。
  2. 【請求項2】請求項1において、デバッグ対象ソースプ
    ログラムのアクセス履歴情報出力の範囲となる繰り返し
    文と前記範囲におけるアクセス履歴情報出力の対象配列
    名を入力し、前記入力を基に、前記繰り返し文を含む手
    続き名と、前記繰り返し文内でアクセス履歴情報出力対
    象となる配列名を対象配列名ファイルとして出力し、前
    記デバッグ対象ソースプログラムのコンパイル時に、前
    記対象配列名ファイルと前記ソースプログラムを入力
    し、アクセス履歴情報出力範囲において、前記対象配列
    の要素が定義または引用されている実行文に対し、各実
    行文を実行する毎に手続き名、行番号、配列名、定義・
    引用の区別、要素の値、アクセスアドレスをアクセス履
    歴情報として出力し、前記アクセス履歴情報から、ある
    要素のアクセス履歴を表示し、前記アクセス履歴中の一
    つのアクセスを指定することにより前記配列に関する全
    配列要素のアクセス履歴状態を該アクセスが発生した時
    点に戻すプログラムデバッグ方法。
  3. 【請求項3】請求項2において、配列要素を2次元の格
    子状に表示し、各要素に対して行われたアクセスの順序
    により唯一の状態を示すアクセス状況を格子上に表示
    し、ある要素を指定することにより該要素に対して行わ
    れたアクセス履歴情報を表示し、アクセス履歴中の一つ
    のアクセスを指定することにより該配列に関する全配列
    要素のアクセス履歴状況を前記アクセスが発生した時点
    に戻すプログラムデバッグ方法。
  4. 【請求項4】請求項2または3において、要素に対して
    行われるアクセスに対し、ある特定の参照パターンをフ
    ァイルから入力し、アクセス履歴表示中に前記参照パタ
    ーンと同じパターンでアクセスされた要素を検出し、前
    記検出時に前記要素に対するアクセス履歴を表示し、ア
    クセス履歴中の一つのアクセスを指定することにより前
    記配列に関する全配列要素のアクセス履歴状況を前記ア
    クセスが発生した時点に戻すプログラムデバッグ方法。
JP5061607A 1993-03-22 1993-03-22 プログラムデバッグ方法 Pending JPH06274373A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5061607A JPH06274373A (ja) 1993-03-22 1993-03-22 プログラムデバッグ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5061607A JPH06274373A (ja) 1993-03-22 1993-03-22 プログラムデバッグ方法

Publications (1)

Publication Number Publication Date
JPH06274373A true JPH06274373A (ja) 1994-09-30

Family

ID=13176026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5061607A Pending JPH06274373A (ja) 1993-03-22 1993-03-22 プログラムデバッグ方法

Country Status (1)

Country Link
JP (1) JPH06274373A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305809A (ja) * 1999-02-04 2000-11-02 Sun Microsyst Inc メモリアクセス解析方法、メモリアクセス追跡装置、コンピュータ読取可能な記録媒体
JP2010198132A (ja) * 2009-02-23 2010-09-09 Mitsubishi Electric Corp プログラマブルコントローラ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000305809A (ja) * 1999-02-04 2000-11-02 Sun Microsyst Inc メモリアクセス解析方法、メモリアクセス追跡装置、コンピュータ読取可能な記録媒体
JP2010198132A (ja) * 2009-02-23 2010-09-09 Mitsubishi Electric Corp プログラマブルコントローラ

Similar Documents

Publication Publication Date Title
US7178135B2 (en) Scope-based breakpoint selection and operation
US8037454B2 (en) Method of generating and utilizing debug history
US7089535B2 (en) Code coverage with an integrated development environment
JP3612294B2 (ja) デバッグ方法およびデバッグ装置
EP0406602A2 (en) Method and apparatus for debugging parallel programs by serialization
US7093165B2 (en) Debugging Method
US6978399B2 (en) Debug thread termination control points
US20090217259A1 (en) Building Operating System Images Based on Applications
CN110737573B (zh) 用户界面ui自动化测试的方法和装置
US9405664B2 (en) Automating software testing
JPH06274373A (ja) プログラムデバッグ方法
US20020129336A1 (en) Automatic symbol table selection in a multi-cell environment
JPH10240578A (ja) マルチタスク処理装置、マルチタスク処理方法およびマルチタスク処理表示方法
JP3094475B2 (ja) プログラム検証方法
JPH09288595A (ja) 演算処理装置
JPH0510692B2 (ja)
JPH08137717A (ja) デバッグ方法及び装置
JP3151811B2 (ja) 情報処理装置の障害処理検証方法および方式
JPH06259209A (ja) プロセス実行状況表示装置
US20050015677A1 (en) Method of executing a computer program
JPS63268040A (ja) プログラムデバツグ方式
Dandamudi SPIM Simulator and Debugger
JPH0468446A (ja) デバッグ支援装置
JP4967861B2 (ja) 出力データ制御装置および出力データ制御方法
JP2013232166A (ja) 計算機システム、情報処理方法、および、情報処理プログラム