JP3130421B2 - プログラム解析方法および装置 - Google Patents

プログラム解析方法および装置

Info

Publication number
JP3130421B2
JP3130421B2 JP05331443A JP33144393A JP3130421B2 JP 3130421 B2 JP3130421 B2 JP 3130421B2 JP 05331443 A JP05331443 A JP 05331443A JP 33144393 A JP33144393 A JP 33144393A JP 3130421 B2 JP3130421 B2 JP 3130421B2
Authority
JP
Japan
Prior art keywords
program
analysis target
language analysis
target program
execution
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.)
Expired - Fee Related
Application number
JP05331443A
Other languages
English (en)
Other versions
JPH07191878A (ja
Inventor
孝憲 武井
哲仁 渡辺
五郎 永井
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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co 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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP05331443A priority Critical patent/JP3130421B2/ja
Publication of JPH07191878A publication Critical patent/JPH07191878A/ja
Application granted granted Critical
Publication of JP3130421B2 publication Critical patent/JP3130421B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理装置におけるプ
ログラムのデバッグ方法およびその装置に関する。
【0002】
【従来の技術】ユーザ言語で記述されたプログラムであ
るユーザ言語プログラムをコンパイラやアセンブラによ
りマシン言語レベルのプログラムに翻訳し、翻訳された
マシン言語プログラムを中央処理装置が解釈、実行する
情報処理装置において、開発中のユーザ言語プログラム
のデバッグは必要不可欠な作業である。
【0003】現在では開発すべきソフトウェアの大規模
化と複雑化に伴い、デバッグ作業を効率よく行うこと
は、ソフトウェア開発の現場においてますます重要な課
題になっている。
【0004】図13は一般的な情報処理装置の構成図で
ある。図13で中央処理装置23はプログラムメモリ2
1中のマシン言語プログラムを順次実行し、その指令に
従ってデータメモリ22および入出力装置24との間で
データの転送を行い、演算を実行する。
【0005】図14は図13の情報処理装置によるプロ
グラムの翻訳処理を示す図である。図14でユーザ言語
プログラム26はC、FORTRAN、アセンブリ言語
等のユーザ言語で記述されており、トランスレータ27
により、中央処理装置23が実行できるマシン言語プロ
グラム25に翻訳される。トランスレータ27はユーザ
言語プログラム26の種類に応じたコンパイラまたはア
センブラである。
【0006】このようなユーザ言語プログラムをデバッ
グするために、中央処理装置内には特定のイベントを検
出したらプログラムの実行を停止させるイベント検出部
が設けられている。イベント検出部は中央処理装置内の
演算処理部が行うプログラムの実行を監視し、予め指定
されたイベント、例えば演算処理部がデータメモリに格
納された特定のオペランドをアクセスしたこと等を検出
すると、演算処理部に停止指令を与える。演算処理部は
これにより、プログラムの実行を停止し、そのときの実
行状態である、演算レジスタの内容等をデータメモリへ
出力する。
【0007】図15はこのようなイベント検出部を用い
た従来のプログラム解析方法のフローチャートである。
図15のステップS101において、中央処理装置内の
演算処理部はマシン言語に翻訳されたユーザ言語プログ
ラムであるマシン言語プログラムをプログラムメモリか
ら、一命令ずつ取り出し実行している。
【0008】イベント検出部は演算処理部の実行状態と
して、例えばオペランドをアクセスするときにデータメ
モリに対して出力するオペランドアドレスを監視し、特
定のオペランドアドレスを検出すると、演算処理部に停
止指令を出す。
【0009】演算処理部はイベント検出部からの停止指
令を受け取ると(S102、YES)、マシン言語プロ
グラムの実行を停止し(S103)、停止した時の演算
レジスタの値等をデータメモリへ出力する(S10
4)。
【0010】ユーザはデータメモリへ出力された演算レ
ジスタの値等を調べて、上記特定のオペランドアドレス
を検出したとき、すなわち演算処理部が特定のオペラン
ドをアクセスしたときのプログラムの実行状態を解析す
る(S105)。イベント検出部からの停止指令がなく
(S102、NO)、かつマシン言語プログラムが終了
していなければ(S106、NO)、S101にもど
り、マシン言語プログラムの実行を継続する。
【0011】
【発明が解決しようとする課題】しかしながら上述のよ
うな従来のプログラム解析方法では、あるイベントが発
生するとプログラムの実行を停止させてしまうため、イ
ベント発生位置より後のプログラムを実行するには、解
析対象のプログラムをもう一度最初から実行しなければ
ならず、イベントの発生回数が多くなると、デバッグに
多大な手間と時間がかかる。
【0012】また情報処理装置がプラントの制御システ
ムに用いられている場合には、プログラムの実行の停止
によりプラントの動作が途中で停止してしまうため、プ
ログラムの実行を停止させることそのものが難しく、プ
ログラム解析が困難である。
【0013】さらに複数のイベントが特定の順序で起こ
るイベントシークエンスが発生した時の実行状態を解析
するには、個々のイベント発生時に次のイベント検出条
件を設定する機構が必要となる。従って多数のイベント
から成るイベントシークエンスを検出するイベント検出
部のハードウェアが複雑で高価なものになる。
【0014】本発明の第1の目的は、ユーザ言語プログ
ラムをマシン言語プログラムに翻訳して実行する情報処
理装置において、プログラム動作中の実行状態を、プロ
グラムの実行を停止させることなく行うプログラム解析
方法を提供することである。
【0015】本発明の第2の目的は、簡単なハードウェ
アでイベントシークエンスを検出する方法を提供するこ
とである。
【0016】
【課題を解決するための手段】本発明は情報処理装置に
おけるプログラム解析方法およびその装置である。本発
明のプログラム解析方法は、ユーザ言語で記述され、解
析の対象となるユーザ言語解析対象プログラムを、マシ
ン言語で記述されたマシン言語解析対象プログラムに翻
訳し、翻訳したマシン言語解析対象プログラムを実行
し、その実行中に、予め設定された設定条件が成立する
と、マシン言語解析対象プログラムの実行を停止するこ
となく直ちに、マシン言語解析対象プログラムの実行中
に扱う解析対象の情報を実行状態として格納し、格納さ
れた実行状態を解析することを特徴とする。
【0017】
【作用】本発明のプログラム解析方法では、まずユーザ
言語解析対象プログラムを実行可能なマシン言語解析対
象プログラムに翻訳する。
【0018】次にマシン言語解析対象プログラムを実行
し、その実行中に設定条件が成立したことを認識する
と、その実行を停止することなく、解析対象の情報を実
行状態として格納する。
【0019】その後、格納した実行状態を解析し、解析
対象の情報を得る。本発明のプログラム解析方法によれ
ば、マシン言語解析対象プログラムの実行を停止させる
ことなく、設定条件が成立したときのプログラムポイン
タの値等の情報を解析することができる。
【0020】また設定条件が成立したときのプログラム
ポインタの値等に基づいて、上記設定条件を更新するこ
とも可能になる。
【0021】
【実施例】以下、図面を参照しながら、本発明の実施例
を説明する。図1は本発明のプログラム解析方法により
デバッグを行う情報処理装置の構成図である。
【0022】情報処理装置1は、プログラムメモリ2と
中央処理装置3、データメモリ4を有する。データメモ
リ4は、ユーザ言語で記述され、解析の対象となるユー
ザ言語解析対象プログラム10を格納し、実行状態格納
領域14を有する。
【0023】プログラムメモリ2は、ユーザ言語解析対
象プログラム10をマシン言語に翻訳するコンパイラま
たはアセンブラであるトランスレータ9と、翻訳された
マシン言語解析対象プログラム8、ユーザ言語解析対象
プログラム10とマシン言語解析対象プログラム8の解
析を行う解析プログラム13を格納する。
【0024】中央処理装置3はマシン言語解析対象プロ
グラム8をプログラムメモリ2から取り出し実行する演
算処理部5と、演算処理部5によるマシン言語解析対象
プログラム8の実行を監視し、予め設定された設定条件
が成立したと判定すると演算処理部5に設定条件成立を
通知するイベント検出部6を有する。
【0025】演算処理部5は、プログラムメモリ2内の
命令コードのアドレスであるプログラムアドレスを指定
するポインタ値を格納するプログラムポインタ7を有
し、マシン言語解析対象プログラム8の実行中に扱う解
析対象の情報を、実行状態としてデータメモリ4の実行
状態格納領域14に格納する実行状態出力手段11と、
解析プログラム13を起動して実行状態を解析する解析
手段12とを備える。マシン言語解析対象プログラム8
の実行中に扱う解析対象の情報とは、プログラムポイン
タ7のポインタ値や演算処理部5内の演算レジスタおよ
びフラグの値、データメモリ4内の特定のデータ等を指
す。
【0026】本発明による第1のプログラム解析方法
は、マシン言語解析対象プログラム8の実行中にイベン
ト検出部6から設定条件成立を通知されると、マシン言
語解析対象プログラム8の実行を停止することなく直ち
に実行状態出力手段11がそのときの実行状態を実行状
態格納領域14に格納し、続いて解析手段12が割り込
みにより解析プログラム13を起動して格納された前記
実行状態を解析し、解析終了後直ちに割り込まれたマシ
ン言語解析対象プログラム8の実行に復帰する方法であ
る。
【0027】また本発明による第2のプログラム解析方
法は、マシン言語解析対象プログラム8の実行中にイベ
ント検出部6から設定条件成立を通知されると、マシン
言語解析対象プログラム8の実行を停止することなく直
ちに実行状態出力手段11がそのときの実行状態を実行
状態格納領域14に格納し、マシン言語解析対象プログ
ラム8の実行終了後に解析手段12が解析プログラム1
3を起動して格納された前記実行状態を解析する方法で
ある。
【0028】本発明の第1および第2のプログラム解析
方法によれば、マシン言語解析対象プログラム8の実行
を停止させることなく、イベント検出部6から設定条件
成立を通知されたときのプログラムポインタ7のポイン
タ値や、演算処理部5内の演算レジスタの値、データメ
モリ4内の特定のデータ等の実行状態を解析することが
可能である。
【0029】上述の第1および第2のプログラム解析方
法において、解析手段12が解析プログラム13の実行
により、イベント検出部6の設定条件が成立したときの
ユーザ言語解析対象プログラム10中の位置を認識する
方法として、トランスレータ9がテーブル生成手段1
5、プログラム位置識別子付加手段16、オペランド変
換手段17の何れかを備える方法を用いる。
【0030】テーブル生成手段15は、トランスレータ
9がユーザ言語解析対象プログラム10をマシン言語解
析対象プログラム8に翻訳するときに、ユーザ言語解析
対象プログラム10中の位置を指定するプログラム位置
識別子と、マシン言語解析対象プログラム8中の位置を
指定するプログラムアドレスとを含むプログラム位置テ
ーブルを生成してプログラムメモリ2に格納する。
【0031】このプログラム位置テーブルによる方法で
は、解析手段12は実行状態として実行状態格納領域1
4に格納されたプログラムポインタのポインタ値と、前
記プログラム位置テーブルを用いて、設定条件が成立し
た時のユーザ言語解析対象プログラム10中の位置を認
識する。
【0032】プログラム位置識別子付加手段16は、ト
ランスレータ9がユーザ言語解析対象プログラム10を
マシン言語解析対象プログラム8に翻訳するときに、前
記プログラム位置識別子を、マシン言語解析対象プログ
ラム8中の対応する位置に付加する。
【0033】このプログラム位置識別子を付加する方法
では、解析手段12は格納されたポインタ値とマシン言
語解析対象プログラム8中に付加された前記プログラム
位置識別子を用いて、設定条件が成立した時のユーザ言
語解析対象プログラム10中の位置を認識する。
【0034】オペランド変換手段17を用いる方法で
は、ユーザが不図示のユーザ言語解析プログラムをユー
ザ言語で作成する時に、予めユーザ言語解析対象プログ
ラム10中の位置を指定するオペランドとしてプログラ
ム位置指定オペランドを書き込んでおく。トランスレー
タ9が前記ユーザ言語解析プログラムをマシン言語で記
述された解析プログラム13に翻訳するときに、オペラ
ンド変換手段17は前記プログラム位置指定オペランド
を、マシン言語解析対象プログラム8中の対応する位置
を指定するアドレスオペランドに変換する。
【0035】このプログラム位置指定オペランドの方法
では、解析手段12は格納されたポインタ値と解析プロ
グラム13中の前記アドレスオペランドを用いて、設定
条件が成立した時のユーザ言語解析対象プログラム10
中の位置を認識する。
【0036】テーブル生成手段15、プログラム位置識
別子付加手段16、オペランド変換手段17の何れかを
備えることにより、プログラムポインタ7のポインタ値
から、イベント検出部6から設定条件成立を通知された
ときのユーザ言語解析対象プログラム10中の位置を認
識することができる。
【0037】また上記第1のプログラム解析方法におい
ては、解析プログラム13はイベント検出部6が判定す
る設定条件を更新するプログラムを含み、解析手段12
は解析プログラム13を実行することにより前記設定条
件を更新する。解析が終了してマシン言語解析対象プロ
グラム8の実行に復帰した後、イベント検出部6はマシ
ン言語解析対象プログラム8の実行を再び監視し、更新
された設定条件が成立するかどうかを判定する。
【0038】一つのイベントが検出されたとき、マシン
言語解析対象プログラム8の実行を停止させることなく
次のイベントの検出条件を設定できるので、一つのイベ
ント検出装置だけでイベントシークエンスを検出するこ
とが可能になる。
【0039】図2は図1の構造を持つ情報処理装置にお
ける一実施例のプログラム解析装置の構成図である。図
2でデータメモリ61に格納されているユーザ言語解析
対象プログラム62は、入出力装置71上でLISP
(List Processor)系のユーザ言語を用いて作成され
た、デバッグの対象となるソースプログラムである。
【0040】このユーザ言語解析対象プログラム62の
一例を図3に示す。図3のユーザ言語解析対象プログラ
ムはAとBを加えた結果をCとするプログラムで、Pr
og1はプログラム番号が1であることを示している。
【0041】中央処理装置41はプログラムメモリ31
に格納されているコンパイラ35を用いてユーザ言語解
析対象プログラム62をマシン言語に翻訳し、マシン言
語解析対象プログラム32としてプログラムメモリ31
に格納する。コンパイラ35は図1のトランスレータ9
に対応する。
【0042】図3のユーザ言語解析対象プログラムをコ
ンパイラ34により翻訳した結果のマシン言語解析対象
プログラムを図4に示す。図4のマシン言語解析対象プ
ログラムでは、オペレーションの格納されているプログ
ラムアドレスと、オペレーションと、オペレーションが
対象とするオペランドとが一組になっている。
【0043】中央処理装置41の演算処理部42はデバ
ッグの際に、マシン言語解析対象プログラム32をプロ
グラムメモリ31から取り出し、データメモリ61にア
クセスしながら実行処理を行う。具体的には命令フェッ
チ部43がマシン言語解析対象プログラム32の命令コ
ードを取り出し、命令解読実行部44がその命令コード
を解釈、実行し、演算部45はオペランドをデータメモ
リ61から読み出したして演算を行い、演算結果をデー
タメモリ61に格納する。命令フェッチ部43は図1の
プログラムポインタ7を備えており、フェッチする命令
コードの命令アドレスをポインタ値として格納してい
る。
【0044】イベント検出部46は演算処理部42によ
るマシン言語解析対象プログラム32の実行を監視し、
特定のイベントの検出を行う。図2では特定のイベント
として、命令フェッチ部43による特定の命令コードの
フェッチ、あるいは演算部45による特定のオペランド
へのアクセスを検出する構成となっている。
【0045】そのために命令アドレス比較値レジスタ4
8には、予め特定の命令コードの命令アドレスが格納さ
れており、オペランドアドレス比較値レジスタ50に
は、予め特定のオペランドのオペランドアドレスが格納
されている。これらの特定アドレスは、イベント検出の
ための設定条件としてプログラムにより演算処理部42
から設定することができるが、例えばパーソナルコンピ
ュータを入出力装置71として用いることにより、入出
力装置71から直接設定することもできる。
【0046】命令アドレス比較部47は命令フェッチ部
43がプログラムメモリ31に送出する命令アドレス
を、命令アドレス比較値レジスタ48に格納されている
特定の命令アドレスと比較し、両者が一致すれば論理
「1」の信号を、一致しなければ論理「0」の信号をO
Rゲート51に入力する。
【0047】同様にオペランドアドレス比較部49は演
算部45がデータメモリ61に送出するオペランドアド
レスを、オペランドアドレス比較値レジスタ50に格納
されている特定のオペランドアドレスと比較し、両者が
一致すれば論理「1」の信号を、一致しなければ論理
「0」の信号をORゲート51に入力する。
【0048】ORゲート51は命令アドレス比較部47
より入力される信号とオペランドアドレス比較部49よ
り入力される信号の論理和をとり、命令解読実行部44
に対し、割り込み指令52として出力する。命令解読実
行部44は割り込み指令52が論理「1」になると、割
り込みによりプログラムメモリ31に格納されている実
行状態出力プログラム34と解析プログラム33を起動
し、ユーザ言語解析対象プログラム62の解析を行う。
【0049】図5はこのとき演算処理部42により行わ
れる第1のプログラム解析方法のフローチャートであ
る。まずステップS201では命令フェッチ部43がマ
シン言語解析対象プログラム32の命令コードを一つず
つ取り出し、命令解読実行部44がその命令コードを実
行し、演算部45は命令コードに含まれるオペランドを
データメモリ61から取り出して演算を行っている。
【0050】このときイベント検出部46が特定のイベ
ントを検出して、割り込み指令52が論理「1」になる
と(S202、YES)、命令解読実行部44はマシン
言語解析対象プログラム32の実行を一時的に中断し、
割り込みにより実行状態出力プログラム34を起動する
(S203)。
【0051】図6はこの実行状態出力プログラム34に
より行われる、マシン言語解析対象プログラム32の実
行状態出力処理のフローチャートである。図6のステッ
プS211、S212、S213において、マシン言語
解析対象プログラム32の実行状態として、割り込みが
発生した時のプログラムポインタのポインタ値、演算部
45内の演算レジスタの値とフラグの値、データメモリ
61内の特定のデータがそれぞれ読み出された後、デー
タメモリ61に出力され、実行状態格納領域63に格納
される。これらの値が実行状態格納領域63に格納され
ると、図5のフローに戻り、次に命令解読実行部44は
解析プログラム33を起動する。実行状態出力プログラ
ム34を実行している時の命令解読実行部44は図1の
実行状態出力手段11に対応する。
【0052】解析プログラム33により、実行状態格納
領域63に格納された実行状態の解析が行われ(S20
4)、その解析結果、例えばイベントが検出されたマシ
ン言語解析対象プログラム32上の位置に対応するユー
ザ言語解析対象プログラム62上の位置等がユーザ言語
解析対象プログラム62のデバッグに用いられる。解析
プログラム33を実行している時の命令解読実行部44
は図1の解析手段12に対応する。
【0053】解析プログラム33の実行が終了すると、
直ちに中断していたマシン言語解析対象プログラム32
に復帰し、中断した位置から後のマシン言語解析対象プ
ログラム32を実行する。S205でマシン言語解析対
象プログラム32が終了していなければS201に戻
り、終了していれば実行を終える。
【0054】図5では割り込みにより解析プログラム3
3を実行するものとしたが、これをマシン言語解析対象
プログラム32の実行終了後に実行することも可能であ
る。図7は解析プログラム33をマシン言語解析対象プ
ログラム32の実行終了後に実行する第2のプログラム
解析方法のフローチャートである。
【0055】図7のステップS221からS223まで
は図5の場合と同様である。図7のS223で実行状態
出力プログラム34が終了すると、直ちに中断していた
マシン言語解析対象プログラム32に復帰し、中断した
位置から後のマシン言語解析対象プログラム32を実行
する。そしてマシン言語解析対象プログラム32が終了
した後に(S224、YES)、解析プログラム33を
起動し、実行状態格納領域63に格納された実行状態の
解析を行う(S225)。
【0056】マシン言語解析対象プログラム32の実行
中に、イベントが発生した時の実行状態の解析結果を知
る必要がない場合は、この第2のプログラム解析方法が
有効であり、これによりマシン言語解析対象プログラム
32が中断される時間を減少させることができる。
【0057】また上記第1および第2のプログラム解析
方法において、実行状態出力プログラム34による図6
の処理を、図1の実行状態出力手段11に対応する演算
処理部のハードウェアにより実現することも可能であ
る。特に第2のプログラム解析方法においては、実行状
態の出力をハードウェアで行うことにより、マシン言語
解析対象プログラム32に割り込む必要がなくなり、マ
シン言語解析対象プログラム32の実行を中断すること
なく、実行途中の解析ができる。
【0058】次に図8、9、10、11を参照しなが
ら、実行状態が実行状態格納領域63に格納された後
に、解析プログラム33により、イベントが発生した時
のユーザ言語解析対象プログラム62上の位置を認識す
る3つの異なる方法を説明する。
【0059】第1の認識方法はユーザ言語解析対象プロ
グラム62のトランスレータであるコンパイラ35が、
図1のテーブル生成手段15を有し、ユーザ言語解析対
象プログラム62をマシン言語解析対象プログラム32
に翻訳するときに、プログラム位置テーブルを生成する
方法である。
【0060】図8は図3のユーザ言語解析対象プログラ
ムを図4のマシン言語解析対象プログラムに翻訳する時
に、コンパイラ35が生成するプログラム位置テーブル
の一例である。図8ではユーザ言語解析対象プログラム
中の位置を指定するプログラム位置識別子として、ユー
ザ言語解析対象プログラムの関数番号とオペランド番号
が用いられ、マシン言語解析対象プログラム中の位置を
指定するプログラムアドレスと対応付けられている。こ
のプログラム位置テーブルはプログラムメモリ31に格
納される。
【0061】この第1の認識方法では、解析プログラム
33は実行状態格納領域63に格納されたプログラムポ
インタのポインタ値を図8のプログラムアドレスから検
索して、対応する関数番号とオペランド番号を得ること
により、図3のユーザ言語解析対象プログラム中の位置
を認識する。
【0062】図8のプログラム位置テーブルではプログ
ラム位置識別子として関数番号とオペランド番号の両方
を用いているが、これを関数番号のみにしてプログラム
位置テーブルに要するメモリを削減することもできる。
この場合は解析プログラム33がプログラムメモリ31
からマシン言語解析対象プログラムを読み出して、オペ
ランド番号を算出する。
【0063】この方法ではコンパイラ35の負担が大き
く、プログラム位置テーブルの格納場所が必要になるの
で、プログラム位置テーブルの生成はデバッグモードで
のみ行い、通常のモードでは翻訳時にプログラム位置テ
ーブルを生成しない。
【0064】第2の認識方法はコンパイラ35が図1の
プログラム位置識別子付加手段16を有し、ユーザ言語
解析対象プログラム62をマシン言語解析対象プログラ
ム32に翻訳するときに、プログラム位置識別子をマシ
ン言語解析対象プログラム32中の対応する位置に付加
する方法である。
【0065】図9は図3のユーザ言語解析対象プログラ
ムを図4のマシン言語解析対象プログラムに翻訳する時
に、プログラム位置識別子としてユーザ言語解析対象プ
ログラムの関数番号コードを付加した例である。図9で
プログラムアドレス0001に付加されたFunc 1
が関数番号コードで、これは一つ前のプログラムアドレ
ス0000のオペレーションに対応する関数番号が1で
あることを示している。プログラムアドレス0003、
0006の関数番号コードについても同様である。
【0066】図9の例では必ずしも全てのオペレーショ
ンについて、対応する関数番号コードを付加しているわ
けではないが、もちろん全てのオペレーションの関数番
号コードを付加することも可能である。
【0067】この第2の認識方法では、解析プログラム
33は実行状態格納領域63に格納されたプログラムポ
インタのポインタ値から、図9のマシン言語解析対象プ
ログラムを検索し、ポインタ値が示すプログラムアドレ
スのオペレーションに対応する関数番号を得て、図3の
ユーザ言語解析対象プログラム中の位置を認識する。こ
の方法ではプログラム位置テーブルを生成、格納する必
要がない。
【0068】第3の認識方法はユーザ言語でユーザ言語
解析プログラムを作成する時に、予めイベントが検出さ
れそうなユーザ言語解析対象プログラム62中の位置を
予測し、その位置を指定するオペランドであるプログラ
ム位置指定オペランドを書き込んでおく方法である。コ
ンパイラ35は図1のオペランド変換手段17を有し、
ユーザ言語解析プログラムをマシン言語で記述された解
析プログラム33に翻訳するときに、プログラム位置指
定オペランドを、マシン言語解析対象プログラム32中
の対応する位置を指定するアドレスオペランドに変換す
る。
【0069】図10はプログラム位置指定オペランドを
用いて作成したユーザ言語解析プログラムの一例であ
る。図10でIfの次の行のProg 1、Func
3、Operand 1がプログラム位置指定オペラン
ドで、Prog 1はプログラム番号が1であることを
示し、Func 3は関数番号が3であることを、Op
erand 1はオペランド番号が1であることを示
す。
【0070】図10のプログラムは、図4のマシン言語
解析対象プログラムを実行した時に、関数番号が3でオ
ペランド番号が1の位置でイベントが発生することが予
測される場合を前提としている。そして、イベントが発
生して実行状態出力プログラム34により実行状態格納
領域63に格納されたプログラムポインタのポインタ値
PCが、上記プログラム位置指定オペランドにより指定
された位置に対応するプログラムアドレスに一致する
と、ポインタ値と共に実行状態格納領域63に格納され
ているオペランドA、Bの値をそれぞれX、Yに格納す
る操作を表している。
【0071】図11は図10のユーザ言語解析プログラ
ムをコンパイラ35により翻訳して得た解析プログラム
である。オペランド変換手段17は、翻訳時にプログラ
ム位置指定オペランドのプログラム番号により指定され
る図4のマシン言語解析対象プログラムを検索し、指定
された関数番号とオペランド番号に対応するプログラム
アドレスを表すアドレスオペランドに変換する。図11
では関数番号が3でオペランド番号が1の位置に対応す
るプログラムアドレス0001がアドレスオペランドと
して解析プログラムに書き込まれている。
【0072】図11の解析プログラムを実行すると、イ
ベントが発生した時のポインタ値PCが実行状態格納領
域63から読み出され、アドレスオペランド0001と
比較される。もし両者が一致すれば予め予測した位置で
イベントが発生したことがわかり、オペランドX、Yの
値を読み出すことにより、そのときのオペランドA、B
の値を知ることができる。
【0073】図10ではイベント発生予測位置として一
つのプログラム位置のみを指定しているが、予測位置が
複数ある場合は、それらに対応する複数のプログラム位
置指定オペランドを書き込んでおき、ポインタ値が何れ
かの位置に該当したとき、そのユーザ言語解析対象プロ
グラム中の位置を認識するものとする。
【0074】この第3の認識方法では、予めイベントが
発生しそうな位置を予測してユーザ言語解析プログラム
を作成するので、解析プログラムの実行時にプログラム
位置テーブルやマシン言語解析対象プログラムを検索す
る必要がなく、短い処理時間でユーザ言語解析対象プロ
グラム中の位置を認識することができる。
【0075】最後に解析プログラム33によるイベント
シークエンスの検出方法を説明する。図12は最初にイ
ベント検出部46に設定したイベント検出条件を変更す
る解析プログラムの処理を示すフローチャートである。
【0076】図12の例では、イベント検出部46の命
令アドレス比較値レジスタ48には予めプログラムアド
レス0002がイベント検出条件として設定されてい
る。図4のマシン言語解析対象プログラムの実行中に命
令フェッチ部43がプログラムアドレス0002にアク
セスすると、命令アドレス比較部47は論理「1」の信
号をORゲート51に入力し、割り込み指令52が論理
「1」になる。
【0077】これを受けて命令解読実行部44は割り込
みにより実行状態出力プログラム34を実行し、プログ
ラムポインタのポインタ値0002とオペランドBの値
を実行状態格納領域63に格納する。次に命令解読実行
部44は解析プログラム33を起動し、図12の処理を
行う。
【0078】まず図12のステップS231で、実行状
態格納領域63に格納されたポインタ値を読み出す。読
み出したポインタ値が0002(S232)なのでS2
33に進み、次にオペランドBの値を読み出す。S23
4で、読み出したオペランドBの値が異常であれば、演
算部45を介して命令アドレス比較値レジスタ48の値
を0002から0004に変更して(S235)、中断
されていたマシン言語解析対象プログラムに復帰する。
オペランドBの値が異常でなければ、命令アドレス比較
値レジスタ48の値は変更せずに、マシン言語解析対象
プログラムに復帰する。
【0079】S235で命令アドレス比較値レジスタ4
8が0004に設定された場合は、命令フェッチ部43
がプログラムアドレス0004にアクセスしたときに、
割り込み指令52が再び論理「1」になる。このとき命
令解読実行部44は実行状態出力プログラム34によ
り、ポインタ値0004とオペランドCの値を実行状態
格納領域63に格納し、続いて解析プログラム33によ
り図12の処理を行う。
【0080】このときはS232でポインタ値が000
4なのでS236に進み、オペランドCの値を読み出
す。S237でオペランドCの値が異常であれば、これ
を異常記録としてデータメモリへ格納し(S238)、
マシン言語解析対象プログラムの実行を停止する。オペ
ランドCの値が異常でなければ、マシン言語解析対象プ
ログラムに復帰して、その実行を継続する。
【0081】このように図12の処理を行う解析プログ
ラムを用いれば、マシン言語解析対象プログラムの実行
中に、割り込みにより最初の命令アドレス比較値レジス
タ48の設定値0002を0004に変更することがで
きる。イベント検出部46は変更された設定値を用いて
イベントシークエンスを検出し、ユーザはオペランドB
の値が異常で、かつオペランドCの値も異常な場合のオ
ペランドCの値を記録することができる。
【0082】尚、図12は2つのイベントより成るイベ
ントシークエンスを検出するための処理であるが、分岐
を増やすことにより、3つ以上のイベントより成るイベ
ントシークエンスを検出する処理に拡張することができ
るのは言うまでもない。
【0083】また図12のS237でオペランドCの値
が異常のときは、オペランドCの値をデータメモリへ格
納後マシン言語解析対象プログラムの実行を停止してい
るが、オペランドCの値を格納後にマシン言語解析対象
プログラムに復帰して、これを最後まで実行することも
可能である。
【0084】
【発明の効果】本発明のプログラム解析方法によれば、
解析の対象となるプログラムの実行を停止させることな
く、実行途中のプログラムの実行状態を解析することが
でき、デバッグ作業の効率を著しく向上させる。特に稼
働しているプラントに影響を与えずに、プラントを制御
しているプログラムの解析を行うことができる。
【0085】また簡単かつ安価なハードウェアで、プロ
グラム実行中に起こる複数のイベントのシークエンスを
検出することが可能になる。
【図面の簡単な説明】
【図1】本発明による情報処理装置の構成図である。
【図2】本発明の一実施例のプログラム解析装置の構成
図である。
【図3】ユーザ言語解析対象プログラムを示す図であ
る。
【図4】マシン言語解析対象プログラムを示す図であ
る。
【図5】第1のプログラム解析方法のフローチャートで
ある。
【図6】実行状態出力処理のフローチャートである。
【図7】第2のプログラム解析方法のフローチャートで
ある。
【図8】プログラム位置テーブルを示す図である。
【図9】関数番号コードを示す図である。
【図10】プログラム位置指定オペランドを示す図であ
る。
【図11】アドレスオペランドを示す図である。
【図12】イベントシークエンス検出方法のフローチャ
ートである。
【図13】情報処理装置の構成図である。
【図14】プログラムの翻訳処理を示す図である。
【図15】従来のプログラム解析方法のフローチャート
である。
【符号の説明】
1 情報処理装置 2、21、31 プログラムメモリ 3、23、41 中央処理装置 4、22、61 データメモリ 5、42 演算処理部 6、46 イベント検出部 7 プログラムポインタ 8、32 マシン言語解析対象プログラム 9、27 トランスレータ 10、62 ユーザ言語解析対象プログラム 11 実行状態出力手段 12 解析手段 13、33 解析プログラム 14、63 実行状態格納領域 15 テーブル生成手段 16 プログラム位置識別子付加手段 17 オペランド変換手段 24、71 入出力装置 25 マシン言語プログラム 26 ユーザ言語プログラム 34 実行状態出力プログラム 35 コンパイラ 43 命令フェッチ部 44 命令解読実行部 45 演算部 47 命令アドレス比較部 48 命令アドレス比較値レジスタ 49 オペランドアドレス比較部 50 オペランドアドレス比較値レジスタ 51 ORゲート 52 割り込み指令
───────────────────────────────────────────────────── フロントページの続き (72)発明者 永井 五郎 東京都日野市富士町1番地 富士ファコ ム制御株式会社内 (56)参考文献 特開 平5−233364(JP,A) 特開 平4−256036(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/28 315 G06F 11/28 310

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 ユーザ言語で記述され、解析の対象とな
    るユーザ言語解析対象プログラム(10)を、マシン言
    語で記述されたマシン言語解析対象プログラム(8)に
    翻訳し、 翻訳した前記マシン言語解析対象プログラム(8)を実
    行し、 前記マシン言語解析対象プログラム(8)の実行中に、
    イベントシークエンスの検出のために予め設定された設
    定条件が成立すると、前記マシン言語解析対象プログラ
    ム(8)の実行を停止することなく直ちに、前記マシン
    言語解析対象プログラム(8)の実行中に扱う解析対象
    の情報を実行状態として格納し、 解析プログラム(13)を起動して、格納された前記実
    行状態を解析し、該実行状態が前記イベントシークエン
    スに含まれる所定の状態であれば、前記マシン言語解析
    対象プログラム(8)の実行を停止することなく、前記
    設定条件を更新し、 解析が終了して前記マシン言語解析対象プログラム
    (8)の実行に復帰した後、前記マシン言語解析対象プ
    ログラム(8)の実行を再び監視し、更新された設定条
    件が成立するかどうかを判定することを特徴とするプロ
    グラム解析方法。
  2. 【請求項2】 ユーザ言語で記述され、解析の対象とな
    るユーザ言語解析対象プログラム(10)を格納するデ
    ータメモリ(4)と、前記ユーザ言語解析対象プログラ
    ム(10)からトランスレータ(9)によりマシン言語
    に翻訳されたマシン言語解析対象プログラム(8)を格
    納するプログラムメモリ(2)と、前記マシン言語解析
    対象プログラム(8)を前記プログラムメモリ(2)か
    ら取り出し実行する演算処理部(5)および該演算処理
    部(5)による前記マシン言語解析対象プログラム
    (8)の実行を監視し、予め設定された設定条件が成立
    したと判定すると前記演算処理部(5)に前記設定条件
    成立を通知するイベント検出部(6)を有する中央処理
    装置(3)とから成る情報処理装置(1)において、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から、イベントシークエンス
    の検出のために設定された設定条件の成立を通知される
    と、前記マシン言語解析対象プログラム(8)の実行を
    停止することなく直ちに、前記マシン言語解析対象プロ
    グラム(8)の実行中に扱う解析対象の情報を、実行状
    態として前記データメモリ(4)の実行状態格納領域
    (14)に格納する実行状態出力手段(11)と、 割り込みにより前記プログラムメモリ(2)に格納され
    た解析プログラム(13)を起動して、格納された前記
    実行状態を解析する解析手段(12)とを有し、 前記解析手段(12)は前記解析プログラム(13)を
    起動することにより、前記実行状態が前記イベントシー
    クエンスに含まれる所定の状態であれば、前記マシン言
    語解析対象プログラム(8)の実行を停止することな
    く、前記イベント検出部(6)が判定する設定条件を更
    新し、解析終了後直ちに割り込まれた前記マシン言語解
    析対象プログラム(8)の実行に復帰し、 前記マシン言語解析対象プログラム(8)の実行に復帰
    した後、前記イベント検出部(6)は前記マシン言語解
    析対象プログラム(8)の実行を再び監視し、更新され
    た設定条件が成立するかどうかを判定することを特徴と
    するプログラム解析装置。
  3. 【請求項3】 ユーザ言語で記述され、解析の対象とな
    るユーザ言語解析対象プログラム(10)を格納するデ
    ータメモリ(4)と、前記ユーザ言語解析対象プログラ
    ム(10)からトランスレータ(9)によりマシン言語
    に翻訳されたマシン言語解析対象プログラム(8)を格
    納するプログラムメモリ(2)と、前記マシン言語解析
    対象プログラム(8)を前記プログラムメモリ(2)か
    ら取り出し実行する演算処理部(5)および該演算処理
    部(5)による前記マシン言語解析対象プログラム
    (8)の実行を監視し、予め設定された設定条件が成立
    したと判定すると前記演算処理部(5)に前記設定条件
    成立を通知するイベント検出部(6)を有する中央処理
    装置(3)とから成る情報処理装置(1)において、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると、前記マシン言語解析対象プログラム(8)の
    実行を停止することなく直ちに、前記マシン言語解析対
    象プログラム(8)の実行中に扱う解析対象の情報を、
    実行状態として前記データメモリ(4)の実行状態格納
    領域(14)に格納する実行状態出力手段(11)と、 割り込みにより前記プログラムメモリ(2)に格納され
    た解析プログラム(13)を起動して、格納された前記
    実行状態を解析する解析手段(12)とを有し、 前記トランスレータ(9)は、前記ユーザ言語解析対象
    プログラム(10)を前記マシン言語解析対象プログラ
    ム(8)に翻訳するときに、前記ユーザ言語解析対象プ
    ログラム(10)中の関数を指定する関数識別子および
    オペランドを指定するオペランド識別子のうち少なくと
    も一方と、前記マシン言語解析対象プログラム(8)中
    の位置を指定するプログラムアドレスとを有するプログ
    ラム位置テーブルを生成して、前記プログラムメモリ
    (2)に格納するテーブル生成手段(15)を含み、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると直ちに、前記実行状態出力手段(11)がその
    ときの前記プログラムアドレスを指定するプログラムポ
    インタ(7)のポインタ値を、前記実行状態として前記
    実行状態格納領域(14)に格納し、 前記解析手段(12)は格納された前記ポインタ値と前
    記プログラム位置テーブルを用いて、前記設定条件が成
    立した時の前記ユーザ言語解析対象プログラム(10)
    中の対応する位置を認識し、 解析終了後直ちに割り込まれた前記マシン言語解析対象
    プログラム(8)の実行に復帰することを特徴とするプ
    ログラム解析装置。
  4. 【請求項4】 ユーザ言語で記述され、解析の対象とな
    るユーザ言語解析対象プログラム(10)を格納するデ
    ータメモリ(4)と、前記ユーザ言語解析対象プログラ
    ム(10)からトランスレータ(9)によりマシン言語
    に翻訳されたマシン言語解析対象プログラム(8)を格
    納するプログラムメモリ(2)と、前記マシン言語解析
    対象プログラム(8)を前記プログラムメモリ(2)か
    ら取り出し実行する演算処理部(5)および該演算処理
    部(5)による前記マシン言語解析対象プログラム
    (8)の実行を監視し、予め設定された設定条件が成立
    したと判定すると前記演算処理部(5)に前記設定条件
    成立を通知するイベント検出部(6)を有する中央処理
    装置(3)とから成る情報処理装置(1)において、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると、前記マシン言語解析対象プログラム(8)の
    実行を停止することなく直ちに、前記マシン言語解析対
    象プログラム(8)の実行中に扱う解析対象の情報を、
    実行状態として前記データメモリ(4)の実行状態格納
    領域(14)に格納する実行状態出力手段(11)と、 割り込みにより前記プログラムメモリ(2)に格納され
    た解析プログラム(13)を起動して、格納された前記
    実行状態を解析する解析手段(12)とを有し、 前記トランスレータ(9)は、前記ユーザ言語解析対象
    プログラム(10)を前記マシン言語解析対象プログラ
    ム(8)に翻訳するときに、前記ユーザ言語解析対象プ
    ログラム(10)中の位置を指定するプログラム位置識
    別子を、前記マシン言語解析対象プログラム(8)中の
    対応する位置に付加するプログラム位置識別子付加手段
    (16)を含み、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると直ちに、前記実行状態出力手段(11)がその
    ときの前記マシン言語解析対象プログラム(8)中の位
    置を指定するプログラムポインタ(7)のポインタ値
    を、前記実行状態として前記実行状態格納領域(14)
    に格納し、 前記解析手段(12)は格納された前記ポインタ値と前
    記マシン言語解析対象プログラム(8)中に付加された
    前記プログラム位置識別子を用いて、前記設定条件が成
    立した時の前記ユーザ言語解析対象プログラム(10)
    中の位置を認識し、 解析終了後直ちに割り込まれた前記マシン言語解析対象
    プログラム(8)の実行に復帰することを特徴とするプ
    ログラム解析装置。
  5. 【請求項5】 ユーザ言語で記述され、解析の対象とな
    るユーザ言語解析対象プログラム(10)を格納するデ
    ータメモリ(4)と、前記ユーザ言語解析対象プログラ
    ム(10)からトランスレータ(9)によりマシン言語
    に翻訳されたマシン言語解析対象プログラム(8)を格
    納するプログラムメモリ(2)と、前記マシン言語解析
    対象プログラム(8)を前記プログラムメモリ(2)か
    ら取り出し実行する演算処理部(5)および該演算処理
    部(5)による前記マシン言語解析対象プログラム
    (8)の実行を監視し、予め設定された設定条件が成立
    したと判定すると前記演算処理部(5)に前記設定条件
    成立を通知するイベント検出部(6)を有する中央処理
    装置(3)とから成る情報処理装置(1)において、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると、前記マシン言語解析対象プログラム(8)の
    実行を停止することなく直ちに、前記マシン言語解析対
    象プログラム(8)の実行中に扱う解析対象の情報を、
    実行状態として前記データメモリ(4)の実行状態格納
    領域(14)に格納する実行状態出力手段(11)と、 割り込みにより前記プログラムメモリ(2)に格納され
    た解析プログラム(13)を起動して、格納された前記
    実行状態を解析する解析手段(12)とを有し、 前記トランスレータ(9)は、ユーザ言語で記述された
    ユーザ言語解析プログラムをマシン言語で記述された前
    記解析プログラム(13)に翻訳するときに、前記ユー
    ザ言語解析プログラム中に前記ユーザ言語解析対象プロ
    グラム(10)中の位置を指定するオペランドとして書
    き込まれた、プログラム位置指定オペランドを、前記マ
    シン言語解析対象プログラム(8)中の対応する位置を
    指定するアドレスオペランドに変換するオペランド変換
    手段(17)を含み、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると直ちに、前記実行状態出力手段(11)がその
    ときの前記マシン言語解析対象プログラム(8)中のプ
    ログラムアドレスを指定するプログラムポインタ(7)
    のポインタ値を、前記実行状態として前記実行状態格納
    領域(14)に格納し、 前記解析手段(12)は格納された前記ポインタ値と前
    記解析プログラム(13)中の前記アドレスオペランド
    を用いて、前記設定条件が成立した時の前記ユーザ言語
    解析対象プログラム(10)中の位置を認識し、 解析終了後直ちに割り込まれた前記マシン言語解析対象
    プログラム(8)の実行に復帰することを特徴とするプ
    ログラム解析装置。
  6. 【請求項6】 ユーザ言語で記述され、解析の対象とな
    るユーザ言語解析対象プログラム(10)を格納するデ
    ータメモリ(4)と、前記ユーザ言語解析対象プログラ
    ム(10)からトランスレータ(9)によりマシン言語
    に翻訳されたマシン言語解析対象プログラム(8)を格
    納するプログラムメモリ(2)と、前記マシン言語解析
    対象プログラム(8)を前記プログラムメモリ(2)か
    ら取り出し実行する演算処理部(5)および該演算処理
    部(5)による前記マシン言語解析対象プログラム
    (8)の実行を監視し、予め設定された設定条件が成立
    したと判定すると前記演算処理部(5)に前記設定条件
    成立を通知するイベント検出部(6)を有する中央処理
    装置(3)とから成る情報処理装置(1)において、前
    記マシン言語解析対象プログラム(8)の実行中に、前
    記イベント検出部(6)から前記設定条件成立を通知さ
    れると、前記マシン言語解析対象プログラム(8)の実
    行を停止することなく直ちに、前記マシン言語解析対象
    プログラム(8)の実行中に扱う解析対象の情報を、実
    行状態として前記データメモリ(4)の実行状態格納領
    域(14)に格納する実行状態出力手段(11)と、 前記マシン言語解析対象プログラム(8)の実行終了後
    に、前記プログラムメモリ(2)に格納された解析プロ
    グラム(13)を起動して、格納された前記実行状態を
    解析する解析手段(12)とを有し、 前記トランスレータ(9)は、前記ユーザ言語解析対象
    プログラム(10)を前記マシン言語解析対象プログラ
    ム(8)に翻訳するときに、前記ユーザ言語解析対象プ
    ログラム(10)中の関数を指定する関数識別子および
    オペランドを指定するオペランド識別子のうち少なくと
    も一方と、前記マシン言語解析対象プログラム(8)中
    の位置を指定するプログラムアドレスとを有するプログ
    ラム位置テーブルを生成して、前記プログラムメモリ
    (2)に格納するテーブル生成手段(15)を含み、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると直ちに、前記実行状態出力手段(11)がその
    ときの前記プログラムアドレスを指定するプログラムポ
    インタ(7)のポインタ値を、前記実行状態として前記
    実行状態格納領域(14)に格納し、 前記解析手段(12)は格納された前記ポインタ値と前
    記プログラム位置テーブルを用いて、前記設定条件が成
    立した時の前記ユーザ言語解析対象プログラム(10)
    中の対応する位置を認識することを特徴とするプログラ
    ム解析装置。
  7. 【請求項7】 ユーザ言語で記述され、解析の対象とな
    るユーザ言語解析対象プログラム(10)を格納するデ
    ータメモリ(4)と、前記ユーザ言語解析対象プログラ
    ム(10)からトランスレータ(9)によりマシン言語
    に翻訳されたマシン言語解析対象プログラム(8)を格
    納するプログラムメモリ(2)と、前記マシン言語解析
    対象プログラム(8)を前記プログラムメモリ(2)か
    ら取り出し実行する演算処理部(5)および該演算処理
    部(5)による前記マシン言語解析対象プログラム
    (8)の実行を監視し、予め設定された設定条件が成立
    したと判定すると前記演算処理部(5)に前記設定条件
    成立を通知するイベント検出部(6)を有する中央処理
    装置(3)とから成る情報処理装置(1)において、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると、前記マシン言語解析対象プログラム(8)の
    実行を停止することなく直ちに、前記マシン言語解析対
    象プログラム(8)の実行中に扱う解析対象の情報を、
    実行状態として前記データメモリ(4)の実行状態格納
    領域(14)に格納する実行状態出力手段(11)と、 前記マシン言語解析対象プログラム(8)の実行終了後
    に、前記プログラムメモリ(2)に格納された解析プロ
    グラム(13)を起動して、格納された前記実行状態を
    解析する解析手段(12)とを有し、 前記トランスレータ(9)は、前記ユーザ言語解析対象
    プログラム(10)を前記マシン言語解析対象プログラ
    ム(8)に翻訳するときに、前記ユーザ言語解析対象プ
    ログラム(10)中の位置を指定するプログラム位置識
    別子を、前記マシン言語解析対象プログラム(8)中の
    対応する位置に付加するプログラム位置識別子付加手段
    (16)を含み、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると直ちに、前記実行状態出力手段(11)がその
    ときの前記マシン言語解析対象プログラム(8)中の位
    置を指定するプログラムポインタ(7)のポインタ値
    を、前記実行状態として前記実行状態格納領域(14)
    に格納し、 前記解析手段(12)は格納された前記ポインタ値と前
    記マシン言語解析対象プログラム(8)中に付加された
    前記プログラム位置識別子を用いて、前記設定条件が成
    立した時の前記ユーザ言語解析対象プログラム(10)
    中の位置を認識することを特徴とするプログラム解析装
    置。
  8. 【請求項8】 ユーザ言語で記述され、解析の対象とな
    るユーザ言語解析対象プログラム(10)を格納するデ
    ータメモリ(4)と、前記ユーザ言語解析対象プログラ
    ム(10)からトランスレータ(9)によりマシン言語
    に翻訳されたマシン言語解析対象プログラム(8)を格
    納するプログラムメモリ(2)と、前記マシン言語解析
    対象プログラム(8)を前記プログラムメモリ(2)か
    ら取り出し実行する演算処理部(5)および該演算処理
    部(5)による前記マシン言語解析対象プログラム
    (8)の実行を監視し、予め設定された設定条件が成立
    したと判定すると前記演算処理部(5)に前記設定条件
    成立を通知するイベント検出部(6)を有する中央処理
    装置(3)とから成る情報処理装置(1)において、前
    記マシン言語解析対象プログラム(8)の実行中に、前
    記イベント検出部(6)から前記設定条件成立を通知さ
    れると、前記マシン言語解析対象プログラム(8)の実
    行を停止することなく直ちに、前記マシン言語解析対象
    プログラム(8)の実行中に扱う解析対象の情報を、実
    行状態として前記データメモリ(4)の実行状態格納領
    域(14)に格納する実行状態出力手段(11)と、 前記マシン言語解析対象プログラム(8)の実行終了後
    に、前記プログラムメモリ(2)に格納された解析プロ
    グラム(13)を起動して、格納された前記実行状態を
    解析する解析手段(12)とを有し、 前記トランスレータ(9)は、ユーザ言語で記述された
    ユーザ言語解析プログラムをマシン言語で記述された前
    記解析プログラム(13)に翻訳するときに、前記ユー
    ザ言語解析プログラム中に前記ユーザ言語解析対象プロ
    グラム(10)中の位置を指定するオペランドとして書
    き込まれた、プログラム位置指定オペランドを、前記マ
    シン言語解析対象プログラム(8)中の対応する位置を
    指定するアドレスオペランドに変換するオペランド変換
    手段(17)を含み、 前記マシン言語解析対象プログラム(8)の実行中に、
    前記イベント検出部(6)から前記設定条件成立を通知
    されると直ちに、前記実行状態出力手段(11)がその
    ときの前記マシン言語解析対象プログラム(8)中のプ
    ログラムアドレスを指定するプログラムポインタ(7)
    のポインタ値を、前記実行状態として前記実行状態格納
    領域(14)に格納し、 前記解析手段(12)は格納された前記ポインタ値と前
    記解析プログラム(13)中の前記アドレスオペランド
    を用いて、前記設定条件が成立した時の前記ユーザ言語
    解析対象プログラム(10)中の位置を認識することを
    特徴とするプログラム解析装置。
  9. 【請求項9】 前記トランスレータ(9)は、前記プロ
    グラム位置識別子として、前記ユーザ言語解析対象プロ
    グラム(10)の関数識別子およびオペランド識別子の
    うち少なくとも一方を用いることを特徴とする請求項4
    または7記載のプログラム解析装置。
JP05331443A 1993-12-27 1993-12-27 プログラム解析方法および装置 Expired - Fee Related JP3130421B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05331443A JP3130421B2 (ja) 1993-12-27 1993-12-27 プログラム解析方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05331443A JP3130421B2 (ja) 1993-12-27 1993-12-27 プログラム解析方法および装置

Publications (2)

Publication Number Publication Date
JPH07191878A JPH07191878A (ja) 1995-07-28
JP3130421B2 true JP3130421B2 (ja) 2001-01-31

Family

ID=18243722

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05331443A Expired - Fee Related JP3130421B2 (ja) 1993-12-27 1993-12-27 プログラム解析方法および装置

Country Status (1)

Country Link
JP (1) JP3130421B2 (ja)

Also Published As

Publication number Publication date
JPH07191878A (ja) 1995-07-28

Similar Documents

Publication Publication Date Title
US7620802B2 (en) Instruction execution device, debugging method, debugging device, and debugging program
JPH0429093B2 (ja)
JP2003050715A (ja) コンパイラおよびデバッグ装置
JP3130446B2 (ja) プログラム変換装置及びプロセッサ
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
JP3130421B2 (ja) プログラム解析方法および装置
JP3461185B2 (ja) ロードモジュールへのソースコード行番号登録方法および装置
JP3313859B2 (ja) 冗長式除去装置
JP3716635B2 (ja) 情報処理装置、及びその割込み制御方法
JPH09288595A (ja) 演算処理装置
JP2540605B2 (ja) デ―タフロ―コンピュ―タの実行検知方式
JPH0535499A (ja) データ処理装置及びデータ処理方法
JPH0795288B2 (ja) マイクロコンピュータ
JP3098501B2 (ja) ソースステップ実行方法およびその装置
JP2606658B2 (ja) 論理シミュレータおよび制御方法
JPS6367695B2 (ja)
JPS5835648A (ja) プログラム実行制御方式
JP2687750B2 (ja) 電子計算機用処理装置
KR950005523B1 (ko) 프로그램어블 로직 콘트롤러의 스텝 런 처리방법
JPH03100826A (ja) 情報処理装置
JPH07281924A (ja) トレース装置及びこれを備えたエミュレータ
US20060225063A1 (en) Method for configuring non-script language library files to be run as scripts
JPS593643A (ja) 関数型マシンの実行制御方式
JPH10301804A (ja) デバッグ方法およびデバッグプログラムを記録する記録媒体
JPH04290130A (ja) プロセッサのエラー管理方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001107

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees