JPS62113244A - プログラムテスト装置 - Google Patents

プログラムテスト装置

Info

Publication number
JPS62113244A
JPS62113244A JP60254442A JP25444285A JPS62113244A JP S62113244 A JPS62113244 A JP S62113244A JP 60254442 A JP60254442 A JP 60254442A JP 25444285 A JP25444285 A JP 25444285A JP S62113244 A JPS62113244 A JP S62113244A
Authority
JP
Japan
Prior art keywords
program
machine language
interpreter
intermediate code
memory
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.)
Granted
Application number
JP60254442A
Other languages
English (en)
Other versions
JPH0766342B2 (ja
Inventor
Akira Miyagawa
宮川 彰
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.)
Omron Corp
Original Assignee
Omron Tateisi Electronics Co
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 Omron Tateisi Electronics Co filed Critical Omron Tateisi Electronics Co
Priority to JP60254442A priority Critical patent/JPH0766342B2/ja
Publication of JPS62113244A publication Critical patent/JPS62113244A/ja
Publication of JPH0766342B2 publication Critical patent/JPH0766342B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〈発明の技術分野〉 本発明は、プログラムのテスト装置、特にソースレベル
のプログラムと機械語レベルのプログラムとを結合して
実行テストするものに関する。
〈発明の概要〉 この発明は、C言語等の高級言語で記述されたソースレ
ベルのプログラムと機械語レベルのプログラムとを結合
し、1つのプログラムとして実行可能とするプログラム
テスト装置であって、両プログラムの関数あるいは変数
を共通するシンボルで表示するとともに、該シンボルと
メモリー上の実アドレスとの関係を示すシンボルテーブ
ルを用意し、メモリー上に配置したプログラムのシンボ
ルを適宜シンボルテーブルを参照しながら実アドレス上
の絶対番地で置き換えることにより、オブジェクト構造
が異なるプログラム間相互の自由なデータ参照あるいは
呼び出しを維持しながら、プログラムの実行速度を上げ
、デバッグ能率を向上せんとするものである。
〈発明の背景〉 従来、各種高級言語を用いてプログラムの開発を行う場
合、ソースプログラムをコンパイラ、リンケージエディ
タ等を用いてコンピュータが直接実行しうる機械語プロ
グラムに変換したのち、デバッガを用いてソースプログ
ラム上の誤り部分を発見し、ソースプログラムの訂正と
コンパイル、リンクとをバグがなくなるまで繰り返すこ
とにより、プログラムのデバッグを行うことが一般的で
あった。しかし、かかるコンパイル、リンクを含むデバ
ッグ作業は繁雑を極めるとともに、軽微なバグの存在に
対しても最初からコンパイル、リンクを繰り返す必要が
あるなど、ともすると迅速なプログラム開発を行うこと
は難しかった。
かかる問題に対し、デバッガをインクプリタ形式とする
ことにより、コンパイル、リンク等の余分な作業を要す
ることなく、ソースレベルでデバッグを直接可能とする
試みもなされている。しかしながら、インタプリタは本
質的にプログラムの実行速度が極めて遅く、大規模なプ
ログラムの実行テストには長時間を要し、その結果、コ
ンパイル等のデバッグ以外の作業を必要としないという
インタプリタ側来の長所が阻却される虞が強い。
一方インタプリタ言語であるBAS r Cにおいて、
ソースプログラムと機械語プログラムを結合することも
行われているが、両者を結合するためにはそれ専用の特
別な命令を利用した繁雑な操作を必要とするとともに、
機械語プログラムのメモリー上の配置位置も固定したも
のにする必要があるなど、その目的は専らデバッグを済
ませたプログラムをルーチン化してインタプリタ側から
該ルーチンを呼び出すことによりプログラムの実行速度
を上げることにのみ限定され、ソースプログラムの頻繁
な変更を必要とするプログラムのデバッグには不適当で
あるとともに、機械語側からインタプリタ側のルーチン
或いは変数を呼び出すことが出来ないなど、その機能も
不十分なものであった。
〈発明の目的〉 本発明は、上記問題に鑑みてなされたものであって、デ
バッグを行っている部分のみをインクプリタ形式で実行
させ、他は機械語とするとともに、両者を互いに共通す
るシンボルおよびシンボルテーブルを利用してリンクし
1つのプログラムとして実行可能とすることにより、プ
ログラムの実行速度を高め、しかもデバッグ作業の簡易
化が図れるプログラムテスト装置を提供することを目的
とする。
〈発明の構成および効果〉 上記目的を達成するため、本発明では、参照番地を互い
に共通するシンボルで表示したソースレベルのプログラ
ムと機械語レベルのプログラムとを一体に結合して実行
するプログラムテスト装置であって、プログラムをメモ
リー上に配設する手段と、プログラムのメモリー上にお
ける実際の配置位置に対応して、各シンボルと絶対番地
との関係を検出する手段と、検出された関係に従って、
少なくとも機械語レヘルのプログラムに対応するシンボ
ルを絶対番地で置き換える手段と、ソースレベルのプロ
グラムを1行毎に取り出して解釈実行する手段と、機械
語プログラムを実行する手段とを備えることにした。
本発明の上記構成によれば、プログラムの実行速度を低
下させることなく、インタプリタの豊富なデバッグ機能
を利用してデバッグ作業の簡易化、能率化が図られ、プ
ログラム開発効率を向上できる利点を有する。
〈実施例の説明〉 以下図面に示す実施例に基づき、本発明を具体的に説明
する。
なお実施例では、汎用コンピュータを用い、テスト目的
に応じてソフトウェアを取り替えることにより適用範囲
を広げたC言語用のテストシステムに本発明を実施した
一例を示すがこれに限らず、それ単独で動作するデバッ
グ専用機等にも略同様に実施でき、又、被デバソグブロ
ダラム用の言語もrCJ以外の各種高級言語に変更して
略同様に実施できることは勿論である。
本発明を実施するテストシステムは、第5図に示す如く
、汎用コンピュータを使用したエンジニアリングワーク
ステーション11と、該ワークステーション11に対す
るオペレータの直接的なアクセスを目的とする端末装置
12とから構成される。
ワークステーション11は、マイクロプロセッサを使用
した演算制御装置21を中心として、RAM等の記憶手
段から成る内部記憶装置(メモリー)22と、ハードデ
ィスクドライブ等の外部記憶装置23と、周辺装置に対
するインターフェース回路を備えた入出力装置24とを
各種バス25を介して接続したものであって、更にワー
クステーション11に対し、入出力装置24を介して端
末装置12が接続される。
端末装置12は、ワークステーション11に対してコマ
ンドの入力を可能とするキーボード26と、ワークステ
ーション11内でのデータ処理状況を視認しうる形で表
示するCRT等のディスプレイ装置27とから成り、キ
ーボード26からのコマンド入力と連繋して、外部記憶
装置23に予め格納しておいたコンパイラ31、インタ
プリタデバッガ32等の制御プログラム33や、デバッ
グすべき各種ファイルを適宜内部記憶装置22に送り、
演算制御装置21で順次解釈実行させることにより、ワ
ークステーション11は全体でプログラムテスト装置と
して動作する。
第6図は、上記ワークステーション11の内部における
プログラムの処理手順の概略を示している。
まず最初に、デバッグを既に済ませたソースプログラム
のファイル34と、これからデバッグすべきソースプロ
グラムのファイル35とから成るソースプログラムのフ
ァイル群36を、コンパイラ31を用いて本発明にかか
るインタプリタデバッガ32が実行可能な形式の実行フ
ァイル群37に変換する。すなわち、原則としてデバッ
グ済のファイル34については、リロケータブルな機械
語ファイル38が作られ、そのファイル38には、第1
図(a)の如く、関数あるいは変数の名前が特定のシン
ボルとして表された機械語プログラムリスト40と、メ
そソー22上ヘリロケーションするための情報41と、
前記プログラムリスト40上のシンボルに関する情報4
2が含まれる。一方これからデバッグすべきプログラム
については、該プログラムリスト35を、インタプリタ
32が実行しうる中間コードのりスト43に変換してデ
ータの冗長度を減少させる。なお、機械語コード40に
変換するか中間コード43のまま実行させるかは、テス
ト開始時のコマンド入力により、オペレータが任意に選
択できる。
次にこの実行ファイル群37を、インタプリタデバッガ
32のリンケージ機能を用いて、下記で記述する手順に
よりメモリー22上に実際に配置し、機械語と中間コー
ドが混在するオブジェク1−を構成する。
第2図は、上記した実行ファイル群37をメモリー22
上へ配置結合する手順を示す流れ図であり、第1図はメ
モリー22上におけるプログラムの配置状況を説明する
概略図である。
ファイルの結合を開始する(ステップ50)と、第1図
Ta)に示す実行ファイル37中の機械語プログラムリ
スト40および中間コードリスト43は、オペレータが
適宜設定し、あるいはインタプリタ32既定のメモリー
22上における領域に順次配置される(ステップ51)
。本実施例では簡単なため、機械語ファイル38および
中間コードファイル39が各々1つずつの例を示してお
り、更に各ファイル38.39のリス)40.43は第
1図(b)の如く、演算制御装置21における実行手順
を直接あるいは間接的に記述した実行部44.46と、
変数等の各種データを定義したデータ定義領域45.4
7とに展開されている。又この段階では、相互参照すべ
き関数あるいは変数の名前は、機械語コードおよび中間
コードともに互いに共通するシンボルf、、f2.f、
・・・・で表示されている。
次にステップ52において、メモリー22上にシンボル
テーブル48が作成される。該シンボルテーブル48は
、関数あるいは変数の名前r、、rt・・・・とメモリ
ー22上における絶対番□地A、、 Ax・・・・との
関係、あるいは、それらが機械語あるいは中間コードの
どちらで記述されているか、あるいは又、その形式、レ
ベル等の各種情報C+−Cz・・・・が記入されるもの
であって、機械語部40については、実行ファイル38
に含むシンボル情報42を用いて、中間コード部43に
、ついては、中間コードを1行ずつ取り出して順次解釈
することにより、機械語部40および中間コード部43
に存在するシンボルf、、f、・・・・とメモリー22
上の実アドレスAt 、At・・・・との関係を求める
次にステップ53において、プログラム中のシンボルを
順次読み出し、ステップ54でそのシンボルの内容をシ
ンボルテーブル48で検索して、呼び出されるシンボル
が関数か変数かの判定がなされる。かかる判定が“NO
”で変数と判断されれば、当該シンボルをシンボルテー
ブル48が示す実アドレスの絶対番地で置き換える(ス
テップ55)。逆に判定が“YES”であり関数と判断
されれば、次のステップ56でその呼び出される関数が
中間コード上の関数か否かの判定がなされる。判定が“
NO”で、第1図fc)の如(機械語プログラムであれ
ば、該関数のエントリのアドレスA1でシンボルf1を
置き換える(ステップ57)。
ステップ56の判定が“YES”であり、関数が中間コ
ードで書かれていると判断されると、第1図(d)の如
く仮のエントリを作り、該アドレスB、に機械語で書か
れた補助ルーチン49を挿入する(ステップ58)。該
ルーチン49は、制御をインタプリタ32側に戻す機能
を有するものであって、前記シンボルf2で特定される
関数の中間コードが配置されている絶対番地A2をシン
ボルテーブル48により検索してそのルーチン49中に
埋め込んでおくと共に、シンボルf、を当1亥ルーチン
49のイ反のエントリのアドレスB1で置き換える(ス
テップ59)ことにより、該ルーチン49を介して中間
コードで書かれた関数ftを実行可能とする。
上記操作をシンボルテーブル48を参照しつつ、機械語
についてはりロケーション情報41とシンボル情報42
を利用し、中間コードについては各行を順次解釈するこ
とにより、メモリー上に配置されたプログラムの全体に
亘ってシンボルと絶対番地の置き換えを実行する(ステ
ップ60)ことにより、機械語プログラムと中間コード
プログラムを自動的に一体に結合する。
次に第3図および第4図において、上記の如く結合され
たプログラムを実行した際、機械語と中間コード間で相
互に関数呼び出しが起こった場合のプログラムの流れを
説明する。
プログラムの実行を開始する(ステップ70)と、機械
語プログラムは演算制御装置21により直接的に、中間
コードはインタプリタ32により1行ずつ取り出されて
順次機械語に変換されて間接的に実行される(ステップ
71)。ここで、実行された機械語命令が例えばJSR
命令であれば関数呼び出しであると判断される(ステッ
プ72)ので、引数をスタックに積んだ(ステップ73
)あと、JSR命令のオペランドで特定されるアドレス
の機械語のプログラムに制御を渡しくステップ74)、
該プログラムを実行する(ステップ75)。
実行したプログラムが、目的とする機械語の関数f、で
あるとステップ76で判断されれば、第3図(a)の如
く一連のプログラムを実行したあと、戻し数をレジスタ
に入れて再び呼び出し側に戻る(ステップ77)。
しかし実行したプログラムが第3図(b)の如く補助ル
ーチン49であれば、中間コードで記述された関数f2
であると判断されるので、モニターを呼び、ルーチン4
9中に記入された飛び先のアドレスAtを引数として渡
すことによりインタプリタ32側に制御を戻しくステッ
プ78)、渡されたアドレスA2で特定される中間コー
ドの関数r2の実行が続けられる(ステップ79)。
該中間コードの関数f2の実行を終えると、上記と略同
様にして呼び出し側に制御は戻され(ステップ77)、
実行がそのまま続けられるのである。
【図面の簡単な説明】
第1図(a)ないしくd)はプログラムの結合過程を説
明する概略図、第2図はプログラムの結合手順を説明す
る流れ図、第3図(a)および(b)はプログラムの実
行順序を説明する概略図、第4図はプログラムの実行手
順を説明する流れ図、第5図は本発明を実施する装置の
概略を示すブロック図、第6図は第5図の装置における
処理の順序を示す説明図である。 11・・・・ワークステーション 22・・・・内部記憶装置(メモリー)32・・・・イ
ンクブリタデバソガ 36・・・・ソースファイル 37・・・・実行ファイル 48・・・・シンボルテーブル 寸 / )2〕    ブロク“ラムーe&bム耀目地
目へするイ民is番6〕(1;L)         
    tb>(C)               
   (d)’#3v;A    フ・0プラムの寅2
+・・1^p−泳ル乏明する17!tg+&+21tl
)) ン15       ?7

Claims (1)

  1. 【特許請求の範囲】 参照番地を互いに共通するシンボルで表示したソースレ
    ベルのプログラムと機械語レベルのプログラムとを一体
    に結合して実行するプログラムテスト装置であって、 プログラムをメモリー上に配設する手段と、プログラム
    のメモリー上における配設位置に対応して、各シンボル
    と絶対番地との関係を検出する手段と、 検出された関係に従って、少なくとも機械語レベルのプ
    ログラムに対応するシンボルを絶対番地で置き換える手
    段と、 ソースレベルのプログラムを1行毎に取り出して解釈実
    行する手段と、 機械語プログラムを実行する手段とを備えたプログラム
    テスト装置。
JP60254442A 1985-11-12 1985-11-12 プログラムテスト装置 Expired - Lifetime JPH0766342B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP60254442A JPH0766342B2 (ja) 1985-11-12 1985-11-12 プログラムテスト装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60254442A JPH0766342B2 (ja) 1985-11-12 1985-11-12 プログラムテスト装置

Publications (2)

Publication Number Publication Date
JPS62113244A true JPS62113244A (ja) 1987-05-25
JPH0766342B2 JPH0766342B2 (ja) 1995-07-19

Family

ID=17265059

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60254442A Expired - Lifetime JPH0766342B2 (ja) 1985-11-12 1985-11-12 プログラムテスト装置

Country Status (1)

Country Link
JP (1) JPH0766342B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01274202A (ja) * 1988-04-27 1989-11-02 Japan Tobacco Inc ループ制御装置
JPH0434625A (ja) * 1990-05-30 1992-02-05 Yokogawa Electric Corp デバッグ・サポート装置
JPH06230976A (ja) * 1992-12-22 1994-08-19 Sun Microsyst Inc 参照をリゾルブする方法および装置
JPH07105016A (ja) * 1993-09-30 1995-04-21 Nec Corp モジュールの記述形式を判別して実行を行う機能を持つプログラム実行制御装置
JPH11110201A (ja) * 1997-09-30 1999-04-23 Toshiba Corp システム構築装置、システム構築方法及びシステム構築プログラムを記録した媒体
JP2000311091A (ja) * 1999-04-28 2000-11-07 Nec Corp シンボル参照情報のキャッシュ方法ならびに装置
JP2002504725A (ja) * 1998-02-19 2002-02-12 シグナス・ソリューションズ 最適化先読みコンパイラを使用したジャバ開発環境
US8769517B2 (en) 2002-03-15 2014-07-01 International Business Machines Corporation Generating a common symbol table for symbols of independent applications
JP2016529582A (ja) * 2013-06-06 2016-09-23 マイクロソフト テクノロジー ライセンシング,エルエルシー ネイティブモードでの実行から解釈済みモードでの実行への移行によるネイティブコードのデバッグ

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5890248A (ja) * 1981-11-25 1983-05-28 Hitachi Ltd プログラム間制御移動方式

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5890248A (ja) * 1981-11-25 1983-05-28 Hitachi Ltd プログラム間制御移動方式

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01274202A (ja) * 1988-04-27 1989-11-02 Japan Tobacco Inc ループ制御装置
JPH0434625A (ja) * 1990-05-30 1992-02-05 Yokogawa Electric Corp デバッグ・サポート装置
JPH06230976A (ja) * 1992-12-22 1994-08-19 Sun Microsyst Inc 参照をリゾルブする方法および装置
JPH07105016A (ja) * 1993-09-30 1995-04-21 Nec Corp モジュールの記述形式を判別して実行を行う機能を持つプログラム実行制御装置
JPH11110201A (ja) * 1997-09-30 1999-04-23 Toshiba Corp システム構築装置、システム構築方法及びシステム構築プログラムを記録した媒体
JP2002504725A (ja) * 1998-02-19 2002-02-12 シグナス・ソリューションズ 最適化先読みコンパイラを使用したジャバ開発環境
JP2000311091A (ja) * 1999-04-28 2000-11-07 Nec Corp シンボル参照情報のキャッシュ方法ならびに装置
US8769517B2 (en) 2002-03-15 2014-07-01 International Business Machines Corporation Generating a common symbol table for symbols of independent applications
JP2016529582A (ja) * 2013-06-06 2016-09-23 マイクロソフト テクノロジー ライセンシング,エルエルシー ネイティブモードでの実行から解釈済みモードでの実行への移行によるネイティブコードのデバッグ
US10127138B2 (en) 2013-06-06 2018-11-13 Microsoft Technology Licensing, Llc. Debugging native code by transitioning from execution in native mode to execution in interpreted mode

Also Published As

Publication number Publication date
JPH0766342B2 (ja) 1995-07-19

Similar Documents

Publication Publication Date Title
US5926638A (en) Program debugging system for debugging a program having graphical user interface
JPS62113244A (ja) プログラムテスト装置
JPH0554277A (ja) プラント監視装置
WO2024069730A1 (ja) デバッグ装置及びデバッグ方法
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JPS626260B2 (ja)
JPS6033640A (ja) デ−タ・モニタ方式
JPS59128652A (ja) デイスプレイ装置を用いたプログラム検査方式
JP2659366B2 (ja) デバッグ方法及びその装置
JPH0283749A (ja) マイクロプロセッサの内部割込み制御方式
JPS6292032A (ja) プログラムテスト方法
JPS6292034A (ja) プログラムデバツグ装置
JPH0353334A (ja) 言語処理プログラムのデバッグ情報出力処理方式
JPH06242943A (ja) ソースコードレベルデバッグ装置
JPH07319730A (ja) テスト・デバッグ方法
JPH0766343B2 (ja) プログラムテスト装置
JPS61206050A (ja) プログラムの動作解析方式
JP2006350676A (ja) 組込みシステムのプログラムデバッグ方法
JPH09297695A (ja) シンボリッククロスデバッガおよび作成システム
JPS63178341A (ja) プログラムデバツグ方式
JPS6292035A (ja) プログラムデバツグ装置
JPS58169262A (ja) 構造化プログラムの実行状態データ収集方法および構造化プログラム処理装置
JPS6172339A (ja) プログラム実行表示制御方式
JPS6292033A (ja) プログラムデバツグ装置
JPH06231003A (ja) 実行可能ファイルのデバッガ

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term