JPS6368939A - プログラム遷移解析処理方式 - Google Patents

プログラム遷移解析処理方式

Info

Publication number
JPS6368939A
JPS6368939A JP61214349A JP21434986A JPS6368939A JP S6368939 A JPS6368939 A JP S6368939A JP 61214349 A JP61214349 A JP 61214349A JP 21434986 A JP21434986 A JP 21434986A JP S6368939 A JPS6368939 A JP S6368939A
Authority
JP
Japan
Prior art keywords
program
transition
instruction
call
calling
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
JP61214349A
Other languages
English (en)
Inventor
Shuji UCHIDA
内田 周次
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP61214349A priority Critical patent/JPS6368939A/ja
Publication of JPS6368939A publication Critical patent/JPS6368939A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

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

Description

【発明の詳細な説明】 〔概要〕 プログラムのダイナミック・ステップ数などを測定する
プログラム性能解析システムにおいて。
プログラムの遷移を解析する場合に、遷移するプログラ
ム間の関係が、呼び出しであるか復帰であるかを、命令
の種類によって判別する手段と、呼び出し元プログラム
の有無によって判別する手段と、呼び出し先アドレスが
入口点であるか否かによって判別する手段とを設けるこ
とにより、プログラムの呼び出し回数などを正しく測定
できるようにしている。
〔産業上の利用分野〕
本発明は、プログラムのグイナミソク・ステップ数など
を測定するプログラム性能解析システムにおいて、プロ
グラムの遷移を解析する場合に。
2つのプログラム間の関係を、呼び出しまたは復帰に分
けて解析するようにしたプログラム遷移解析処理方式に
関するものである。
〔従来の技術〕
第3図は従来方式による遷移解析処理例を示す。
効率的に処理するプログラムを開発するために。
プログラムの呼び出し回数や、プログラム内部で実行さ
れる総ダイナミック・ステップ数を求めることが必要と
なる場合がある。このような性能解析の処理を行うツー
ルとして、プログラム性能解析システムが用いられてい
る。
プログラム性能解析システムは、被測定プログラムの命
令実行をシミュレートし、各種性能解析情報を出力する
。このような性能解析を行うためには、プログラムの遷
移を解析する必要がある。
プログラム遷移の解析は、一般的には、いわゆる標準リ
ンケージ規約を前提として構築される。
第3図+a)〜(C)は、゛標準リンケージ規約を前提
とした従来方式によるプログラム遷移の判定処理を示し
ている。
(al  分岐先のアドレスが他のプログラムであるか
どうかにより、プログラム遷移であるか否かを判定する
(bl  プログラム遷移である場合、プログラム遷移
時の命令コードを調べる。遷移時の命令が、BA L 
R(Branch And Link)命令、BAL命
令。
またはLINKマクロによるSVC命令、XCTL (
Transfer Control)マクロによるSV
C命令等の呼び出し時にだけ用いられる命令である場合
には、呼び出しによる遷移と判断する。
(C1その他の命令である場合には2次に、遷移先が呼
び出し元プログラムであるかないかを調べる。呼び出し
元プログラムでない場合、呼び出しによる遷移と判断し
、呼び出し元プログラムである場合、復帰による遷移と
判断する。
〔発明が解決しようとする問題点〕
第4図はプログラム遷移の例を示す。
プログラム遷移が、すべて標準リンケージ規約に従って
行われる場合には、第3図に示す判定処理によって、呼
び出しと復帰とを切り分けることができる。しかし、動
的リンク構造による呼び出しなどのように、標準リンケ
ージ規約に従わない場合が少なくない。この場合、従来
方式によれば。
プログラムの呼び出し回数などが正しく求められないこ
とがある。
第4図において、30八〜30Dは各々制御セクション
が異なるプログラムを表している。ここでプログラム3
0Dからプログラム30Aへの遷移は、動的リンク構造
による制御の受は渡しによって行われている。
動的リンク構造の場合2図示省略するが、■形式アドレ
ス定数の定義によって作成されたネームエントリに、B
ALR命令で制御を渡し、リンクするモジュールがまだ
ローディングされていない場合には、ネームエントリか
らローダを呼び出すリンケージエントリに分岐する。そ
して、ロード後にネームエントリに入口点アドレスを設
定して。
その入口点に分岐命令によって制御を渡す。リンクする
モジュールが既にローディングされている場合には、ロ
ーダを呼び出すことなく、前に設定されている入口点ア
ドレスに分岐命令によって制御を渡す。
即ち1通常の場合に復帰命令として使用される分岐命令
(BCR命令等)によって、制御の受は渡しが行われる
が、この場合、従来の標準リンケージ規約を前提とした
処理では、このプログラム30Dからプログラム30A
への遷移は、■遷移がBCR命令によって行われている
こと、■プログラム30Aが呼び出し元プログラムの1
つとなっていることから、実際には呼び出しであるにも
かかわらず、復帰と判断してしまうことになる。
本発明は上記問題点の解決を図り、動的リンク構造によ
る呼び出しのような場合にも、正しく呼び出しと復帰と
を切り分は可能とすることを目的としている。
〔問題点を解決するための手段〕
第1図は本発明の基本構成例を示す。
第1図において、10ばCPUおよびメモリ等からなる
処理装置、11はプログラム・モジュールの情報を収集
するモジュール情報収集部、12は性能測定の対象とな
るプログラムの命令をシミュレートして追跡する命令ト
レーサ、13は性能測定の対象となる被測定プログラム
、14は被測定プログラム13の命令部、15は被測定
プログラム13のモジュールについての入口点アドレス
を記憶する入口点アドレス記憶部、16はプログラムの
遷移についてプログラム間の関係を解析する遷移解析部
、17は命令種別によって呼び出し関係を検出する命令
判別部、18は呼び出し元プログラムの有無によって呼
び出し関係を検出する呼び出し元プログラム判別部、1
9ば呼び出し先アドレスが入口点であるか否かによって
遷移が呼び出しであるか復帰であるかを切り分ける入口
点判別部、20は呼び出し回数の計数処理等を行う呼び
出し処理部、21は復帰についての解析処理を行う復帰
処理部を表す。
プログラムの呼び出し回数や、プログラム内部で実行さ
れるすべてのダイナミック・ステップ数を求める場合、
プログラムの遷移を解析する必要がある。命令トレーサ
12は、被測定プログラム13の命令を9例えばE X
 (Execute)命令により指定して実行すること
により、■命令ずつ被測定プログラム13の動作を追跡
する。なお、EX命令は1周知であるように、第2オペ
ランドアドレスで指定された命令を、修飾を加えて実行
する命令である。
分岐関係の命令で9分岐先がモジュールの制御セクショ
ンのアドレス範囲を越えるような場合には、モジュール
遷移レコードが出力される。
遷移解析部16は、モジュール遷移レコードにより7プ
ログラムの遷移を解析する。命令判別部17は、そのモ
ジュール遷移レコードによって。
プログラム遷移時の命令が、プログラム呼び出しのとき
にのみ用いられる命令であるか否かを判別する。そうで
ある場合には、呼び出し処理部20に制御を渡す。
呼び出し元プログラム判別部18は、遷移先のプログラ
ムが呼び出し元プログラムの中に存在するか否かをチェ
ックする。存在しない場合、復帰ということはあり得な
いので、呼び出し処理部20に制御を渡す。
入口点判別部19は3呼び出し先アドレスが入口点アド
レス記憶部15に登録されているか否かを判別する。登
録されている場合、呼び出し処理部20に制御を渡し、
登録されていない場合、復帰処理部21に制御を渡す。
(作用〕 プログラム遷移の解析では、2つのプログラム間の関係
が、呼び出しであるか、復帰であるかの判断が重要であ
り、この判断を誤ると、呼び出し一8= 回数などを正しく求めることはできない。
本発明では、特に入口点判別部19によって。
呼び出し先アドレスが入口点アドレスとなっているとき
に、復帰ではなく、呼び出し関係であると判断されるの
で、標準リンケージ規約に従わないプログラム遷移の場
合にも、正しく解析されることになる。入口点アドレス
記憶部15は、■形式アドレス定数などにより、ロード
モジュールに付加される動的リンク用テーブルなどを用
いることができる。
〔実施例〕
第2図は本発明の一実施例に係る第1図図示遷移解析部
16の処理例を示している。
以下の説明における番号■〜■は、第2図に示す処理番
号■〜■に対応している。
■ プログラムの遷移であるかどうかの判別は。
予めモジュールの制御セクションのアドレス範囲が定ま
っているので2分岐先がそのアドレス範囲外であるか否
かにより判別する。プログラム遷移である場合に1次の
処理■以下を実行する。
■ プログラム遷移である場合、プログラム遷移時の命
令コードを調べる。遷移時の命令が、BA L R(B
ranch And Link)命令、BAL命令。
またはLINKマクロによるSVC命令、XCT L 
(Transfer Control)マクロによるS
vC命令等である場合には、呼び出しによる遷移と判断
し、処理■に制御を移す。これらの命令は。
復帰時には使用されないからである。
■ 呼び出し時にのみ用いられる命令以外の命令である
場合には1次に、遷移先プログラムが呼び出し元プログ
ラムの中にあるかないかを、呼び出し時に記憶されてい
るモジュール名や制御セクション名などにより調べる。
遷移先が呼び出し元プログラムでない場合、処理■に制
御を移す。
■ 遷移先が呼び出し元プログラムである場合。
被測定プログラム13のロードモジュールに付加されて
いる入口点アドレス記憶部15を参照し、呼び出し先ア
ドレスと、外部参照記号である入口点のアドレスとが、
一致するかどうかをチェックする。呼び出し先アドレス
が入口点となっている場合には、遷移は呼び出しである
と判断し、処理■へ制御を移す。
■ 復帰についての解析処理を実行する。
■ 呼び出しについての解析処理を実行する。
以上のような処理によって1例えば第4図に示すような
プログラム遷移を行うプログラムを解析する場合、まず
、プログラム30Aからプログラム30Bへの遷移は、
BALR命令により、呼び出しと判断される。同様に、
プログラム30Cへの遷移、プログラム30Dへの遷移
は、呼び出しと判断される。プログラム30Dからプロ
グラム30Aへの遷移では、B、CR命令によって遷移
する先が呼び出し元プログラムであるので、従来方式に
よれば、復帰と判断されるが、呼び出し先アドレスが、
入口点A1のアドレスであることから。
第1図図示入口点判別部19によって、呼び出しと判断
される。
〔発明の効果〕
以上説明したように1本発明によれば、標準リンケージ
規約に従わないプログラム呼び出し関係の解析が可能に
なり、プログラム呼び出し回数などを正しく求めること
ができるようになる。
【図面の簡単な説明】
第1図は本発明の基本構成例、第2図は本発明の一実施
例処理説明図、第3図は従来方式による遷移解析処理例
、第4図はプログラム遷移の例を示す。 図中、10は処理装置、11はモジュール情報収集部、
12は命令トレーサ、゛ 13は被測定プログラム、1
4は命令部、15は入口点アドレス記憶部、16は遷移
解析部、17は命令判別部、18は呼び出し元プログラ
ム判別部、19は入口点判別部、20は呼び出し処理部
、21は復帰処理部を表す。 、杢、イじ明の一尖さたイクリM理tft−’閂りり第
 2 図 1帰   クヂ&′シ イま、辛う タンlヌ(【aシリ ′$ 3 図

Claims (1)

  1. 【特許請求の範囲】 中央処理装置により実行される命令群からなるプログラ
    ムの性能を、トレースによって解析するプログラム性能
    解析システムにおいて、 実行制御が、あるプログラムから他のプログラムへ遷移
    する場合に、その遷移がプログラムを呼び出す特定の命
    令によってなされているか否かを判別し、プログラムを
    呼び出す特定の命令であるときに、呼び出しによる遷移
    とする命令判別手段(17)と、 あるプログラムから他のプログラムへの遷移がプログラ
    ムを呼び出す上記特定の命令以外の命令によってなされ
    ている場合に、遷移先が呼び出し元プログラムであるか
    否かを判別し、呼び出し元プログラムでないときに、呼
    び出しによる遷移とする呼び出し元プログラム判別手段
    (18)と、呼び出し先アドレスが入口点であるか否か
    を判別し、呼び出し先アドレスが入口点として登録され
    ている場合に、遷移を呼び出しとし、呼び出し先が入口
    点として登録されていない場合に、遷移を復帰とする入
    口点判別手段(19)とを備え、2つのプログラム間の
    関係を呼び出しおよび復帰に分けて解析するようにした
    ことを特徴とするプログラム遷移解析処理方式。
JP61214349A 1986-09-11 1986-09-11 プログラム遷移解析処理方式 Pending JPS6368939A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61214349A JPS6368939A (ja) 1986-09-11 1986-09-11 プログラム遷移解析処理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61214349A JPS6368939A (ja) 1986-09-11 1986-09-11 プログラム遷移解析処理方式

Publications (1)

Publication Number Publication Date
JPS6368939A true JPS6368939A (ja) 1988-03-28

Family

ID=16654294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61214349A Pending JPS6368939A (ja) 1986-09-11 1986-09-11 プログラム遷移解析処理方式

Country Status (1)

Country Link
JP (1) JPS6368939A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04263336A (ja) * 1991-02-18 1992-09-18 Fujitsu Ltd プログラム実行経路出力装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04263336A (ja) * 1991-02-18 1992-09-18 Fujitsu Ltd プログラム実行経路出力装置

Similar Documents

Publication Publication Date Title
CN103559123B (zh) 基于VxWorks操作系统的函数调用栈分析方法及装置
CA2637798A1 (en) Computer process resource modelling method and apparatus
CN111104335B (zh) 一种基于多层次分析的c语言缺陷检测方法及装置
CN100405323C (zh) 一种在指令级随机测试中支持ejtag测试的实现方法
KR101979329B1 (ko) 바이너리의 취약점을 유발하는 입력데이터 위치 추적 방법 및 그 장치
JP2557239B2 (ja) プログラム内データ名称標準化方法
CN107085533A (zh) 一种指针修改影响的分析方法和系统
CN112817787A (zh) 中断驱动嵌入式系统数据竞争的自动检测方法
CN106529304B (zh) 一种安卓应用并发漏洞检测系统
CN111752586B (zh) 跨架构的嵌入式设备固件未修补漏洞检测方法及系统
JPS6368939A (ja) プログラム遷移解析処理方式
JPS61259341A (ja) ル−プ検出処理方式
CN109002723A (zh) 一种分段式符号执行方法
JPS62113244A (ja) プログラムテスト装置
US20040025081A1 (en) System and method for collecting code coverage information before file system is available
CN113434385A (zh) 一种针对软件模型检查工具的测试用例自动生成方法和系统
JPH0258136A (ja) ソフトウェア試験カバレージ測定装置
JPS6244844A (ja) 実行軌跡情報収集装置
CN117033161A (zh) 一种满足do-178b目标的数据耦合与控制耦合分析方法
JP3165105B2 (ja) プログラムのトレーサ、コンパイラ及びリンカー
Jurik Back error propagation-A critique
JP2795332B2 (ja) ループ処理誤り検出装置
CN118094567A (zh) 一种基于x86-64指令集的二进制代码静态分析方法
CN117520207A (zh) 一种ram访问冲突收集的方法、模块、装置、计算设备
JPS63289654A (ja) プログラム分岐命令モニタ方式