JPH03290739A - プログラムの動的解析方式 - Google Patents

プログラムの動的解析方式

Info

Publication number
JPH03290739A
JPH03290739A JP2093394A JP9339490A JPH03290739A JP H03290739 A JPH03290739 A JP H03290739A JP 2093394 A JP2093394 A JP 2093394A JP 9339490 A JP9339490 A JP 9339490A JP H03290739 A JPH03290739 A JP H03290739A
Authority
JP
Japan
Prior art keywords
program
dynamic analysis
analyzed
analysis
load module
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
JP2093394A
Other languages
English (en)
Inventor
Masao Saeki
佐伯 正夫
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2093394A priority Critical patent/JPH03290739A/ja
Publication of JPH03290739A publication Critical patent/JPH03290739A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は、コンピュータソフトウェアを動的解析する
デバッガなどによるプログラムの動的解析方式に関する
ものである。
(従来の技術〕 第2図は現在−射的に用いられているプログラムの動的
解析方式を説明する概念図である。図において、(1)
は被解析プログラムのソースプログラム、(2)はソー
スプログラム(1)を人力して解析用オブジェクトプロ
グラム(3)を出力するコンパイラ(又はプリコンパイ
ラ及びコンパイラ)、(4)は解析用オブジェクトプロ
グラム(3)を入力して解析用ロードモジュール(5)
を出力するりンカ、(6)は解析用ロードモジュール(
5)を主記憶にプログラムロートした状態の被解析プロ
グラム、(7)は被解析プログラム(6)から呼び出さ
れる動的解析ルーチンである。
次に動作について説明する。プログラムの動的解析を行
いたい場合、被解析プログラムのソースプログラム(1
)を、コンパイラ(又はブリコンパイラ及びコンパイラ
)(2)を動的解析モートにしてコンパイルすることに
よって、各文の直前に動的解析ルーチン呼び出し命令を
挿入した解析用オブジェクトプログラム(3)を生成す
る。次いで、この解析用オブジェクトプログラム(3)
をリンカ(4)によって解析用ロードモジュール(5)
とする。
この解析用ロードモジュール(5)をプログラムロード
した被解析プログラム(6)を実行すれば、各文の先頭
で動的解析ルーチン(7)が呼び出され、動的解析を実
現することができる。
〔発明が解決しようとする課題〕
従来のプログラムの動的解析方式は、被解析プログラム
中に動的解析ルーチン呼び出し命令を挿入する方式なの
で、動的解析するために業務実行用ロードモジュールと
は別に動的解析用ロードモジュールを生成しなければな
らない。従って、動的解析用ロードモジュールでのテス
ト及びデバッグが終了してから本番業務用ロードモジュ
ールを生成する必要があり、本番業務用ロードモジュー
ルに問題が発生した場合にそのまま動的解析できなかっ
たりするという生産性及び信頼性の問題点があった。
この発明は、上記のような問題点を解消するためになさ
れたもので、動的解析用にロードモジュールを別に生成
する必要が無く、動的解析用と本番業務用のロードモジ
ュールを一本化できるプログラムの動的解析方式を提供
することを目的とする。
(課題を解決するための手段) この発明に係るプログラムの動的解析方式は、コンパイ
ラ及びリンカにより被解析プログラムの動的解析ルーチ
ン呼び出し位置のアドレス表をロードモジュール外のフ
ァイルとして生成するとともに、動的解析プログラムに
より動的解析ルーチンを呼び出すべき位置の機械命令を
動的解析ルーチン呼び出し機械命令に置換しながら被解
析プログラムをプログラムロードしておくようにし、か
つ置換された元の機械命令を動的解析ルーチンから被解
析プログラムへ戻る直前て実行するようにしたものであ
る。
(作用) この発明におけるプログラムの動的解析方式は、被解析
プログラム中に動的解析ルーチン呼び出し命令を挿入せ
ず外部ファイル化したことにより、被解析プログラムを
解析用ロードモジュールと本番業務用ロードモジュール
とに別々に生成しなくて済むようにする。
(実施例) 以下、この発明の一実施例を図について説明する。
i1図1.:おいて、(1)は被解析プログラムのソー
スプログラム、(8)は当方式用に改良したコンパイラ
であり、上記ソースプログラム(1)を人力して、外部
ファイルへのオブジェクト生成開始指示子(9b)、動
的解析ルーチン呼び出し位置のアドレス表(9a)及び
外部ファイルへのオブジェクト生成終了指示子(9c)
を含むオブジェクトプログラム(9)を出力すると共に
、後述するリンカ(1o)に上記アドレス表(9a)を
ロードモジュール外のファイルとして生成するよう指示
する。また、(1o)は当方式用に改良したリンカであ
り、上記オブジェクトプログラム(9)を人力して動的
解析しない通常の場合と同様な被解析プログラムのロー
ドモジュール(11)及び動的解析ルーチン呼び出し位
置のアドレス表ファイル(各文の先頭アドレスを保持)
 (121を生成する。
さらに、(13)は当方式用に改良した動的解析プログ
ラムであり、上記ロードモジュール(11)及び上記ア
ドレス表ファイル(12)を人力する。(14)は上記
動的解析プログラム(13)によって主記憶にプログラ
ムロートされた被解析プログラムである。
次に、動作について説明する。
当方式用に改良したコンパイラ(8)は、被解析プログ
ラムのソースプログラム(1)を人力してオブジェクト
プログラム(9)を出力する。
ここで、コンパイラ(8)は当該被解析プログラムにつ
いて動的解析ルーチン呼び出し位置のアドレス表(9a
)を解析用オブジェクトプログラム(9)の中に出力す
る。このとき、アドレス表(9a)の直前に「外部ファ
イルへのオブジェクト生成開始指示子J (9b)を出
力するとともに、このアドレス表(9a)の直後に「外
部ファイルへのオブジェクト生成終了指示子J (9C
)を出力する。
そして、当方式用に改良したリンカ(10)は、このオ
ブジェクトプログラム(9)を人力して、被解析プログ
ラムのロードモジュール(11)と動的解析ルーチン呼
び出し位置のアドレス表ファイル(12)を生成する。
ここで、リンカ(10)は、解析用オブジェクトプログ
ラム(9)の中の外部ファイルへのオブジェクト生成開
始指示子(9b)で始まり外部ファイルへのオブジェク
ト生成終了指示子(9c)で終了するアドレス表(9a
)を、解析用ロードモジュール(11)の中ではなく外
部ファイルとしてアドレス表ファイル(12)を生成す
る。
動的解析プログラム(13)はその初期設定処理時に、
解析用ロードモジュール(11)及びアドレス表ファイ
ル(12)を入力し、アドレス表ファイル(12)で示
されたアドレス位置にある解析用ロードモジュール(1
1)の機械命令を、動的解析プログラム(13)内の動
的解析ルーチンを呼び出す機械命令に置換しながら、解
析用ロードモジュール(11)を主記憶上にプログラム
ロードする。このとき、置換した元の機械命令は記憶し
ておく。次いで、動的解析プログラム(13)はプログ
ラムロードし完了した被解析プログラム(工4)に制御
を渡す。
被解析プログラム(14)内に埋め込まれた動的解析ル
ーチン呼び出し機械命令に制御が渡ると、動的解析ルー
チンが呼ばれて実行され、動的解析処理か行なわれる。
動的解析ルーチンでは、それを呼び出した機械命令の次
の機械命令に戻る直前に、記憶しておいた元の機械命令
を実行する。
(発明の効果) 以上のように、この発明によれば、被解析プログラムの
ロードモジュールを、動的解析用のものと本番業務用の
ものとに分けることなく一本化できるので、テスト及び
デバッグが完了した状態のロードモジュールのままで本
番業務に移行できること、また本番業務中の障害発生に
対してそのロードモジュールを直接デバッグできること
など、ソフトウェア開発及び保守の生産性及び信頼性向
上に効果がある。
【図面の簡単な説明】
第1図はこの発明に係るプログラムの変更不要な動的解
析方式を説明する概念図、第2図は従来の一般的なプロ
グラムの動的解析方式を説明する概念図である。 ・・・ソースプログラム、 2 ・・・コンパイラ、 3)・・・解析用オブジェクトプログラム、4 ・・・
リンカ、 5)・・・解析用ロードモジュール、 (6・・・被解析プログラム、 (7)・・・動的解析ルーチン。 尚、図中同一符号は同−又は相当部分を示す。 r:

Claims (1)

    【特許請求の範囲】
  1.  コンパイラ及びリンカにより被解析プログラムの動的
    解析ルーチン呼び出し位置のアドレス表をロードモジュ
    ール外のファイルとして生成するとともに、動的解析プ
    ログラムにより動的解析ルーチンを呼び出すべき位置の
    機械命令を動的解析ルーチン呼び出し機械命令に置換し
    ながら被解析プログラムをプログラムロードしておくよ
    うにし、かつ置換された元の機械命令を動的解析ルーチ
    ンから被解析プログラムへ戻る直前で実行するようにし
    たことを特徴とするプログラムの動的解析方式。
JP2093394A 1990-04-09 1990-04-09 プログラムの動的解析方式 Pending JPH03290739A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2093394A JPH03290739A (ja) 1990-04-09 1990-04-09 プログラムの動的解析方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2093394A JPH03290739A (ja) 1990-04-09 1990-04-09 プログラムの動的解析方式

Publications (1)

Publication Number Publication Date
JPH03290739A true JPH03290739A (ja) 1991-12-20

Family

ID=14081089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2093394A Pending JPH03290739A (ja) 1990-04-09 1990-04-09 プログラムの動的解析方式

Country Status (1)

Country Link
JP (1) JPH03290739A (ja)

Similar Documents

Publication Publication Date Title
US20030115576A1 (en) Breakpoint safety net
EP0595540A1 (en) Debugging/modifying of software in ROM
JPH0736734A (ja) アーギュメント値のチェック方法
EP0801348A1 (en) Method of monitoring the operation of a computer
JPH03290739A (ja) プログラムの動的解析方式
JPH10187461A (ja) 言語処理方式
JPS5930145A (ja) 動的プログラム修正による再実行処理方式
JP2659366B2 (ja) デバッグ方法及びその装置
JP2812302B2 (ja) プログラム開発装置
JPS61180342A (ja) 高級言語のステツプ実行方式
JPH06242943A (ja) ソースコードレベルデバッグ装置
JPS6292032A (ja) プログラムテスト方法
JP2006350676A (ja) 組込みシステムのプログラムデバッグ方法
JPS63205740A (ja) プログラム実行トレ−ス処理方式
JPS63223930A (ja) 専用プロセツサのプログラムのシミユレ−シヨン方式
JPS6365542A (ja) デバツグ方式
JPH03242736A (ja) 異常処理方式
JPH0695910A (ja) 異常処理のための対話型デバッグ制御方式
JPH02115951A (ja) 高級言語プログラム保守デバッグ方式
JPH0695869A (ja) ダイナミックリンクライブラリプログラムの入出力インターフェース情報取得方式
JPS62147534A (ja) プログラムテスト方式
JPH01279334A (ja) 疑似モニタによるソフトウェアの単体試験方式
JPH01205348A (ja) プログラムデバッグ方式
JPH0358232A (ja) プリプロセッサ呼び出し方式
JPH01188956A (ja) プログラム例外処理方式