JPH04256036A - Program analysis system - Google Patents
Program analysis systemInfo
- Publication number
- JPH04256036A JPH04256036A JP3017207A JP1720791A JPH04256036A JP H04256036 A JPH04256036 A JP H04256036A JP 3017207 A JP3017207 A JP 3017207A JP 1720791 A JP1720791 A JP 1720791A JP H04256036 A JPH04256036 A JP H04256036A
- Authority
- JP
- Japan
- Prior art keywords
- program
- machine language
- instruction
- language instruction
- dynamic
- 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
Links
- 238000012545 processing Methods 0.000 claims abstract description 8
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 3
- 238000013480 data collection Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 1
- 238000007431 microscopic evaluation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Description
【0001】0001
【産業上の利用分野】本発明はコンピュータシステムの
性能解析方式、特に実際のプログラム実行の挙動を解析
するプログラム解析システムに関するものである。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer system performance analysis method, and more particularly to a program analysis system for analyzing the behavior of actual program execution.
【0002】0002
【従来の技術】コンピュータシステムの性能解析は、O
Sの持つ各種モニタ機能を用いて測定対象となるコンピ
ュータ資源の使用状況を分析するのが一般的である。中
央処理装置上でのプログラム実行性能に関しては、測定
対象となるプログラムの動的挙動分析が非常に重要であ
る。巨視的な動的分析はプログラムのソースリストを解
析することにより可能であるが、OSの空間も含めた機
械語命令レベルでの微視的な分析は非常に困難である。
例えば、プログラム割込み事象を生成する機械語命令を
被測定プログラムの計測開始点に埋め込み、該命令が実
行されることにより割込み事象を検出して計測情報を収
集した後、論理的に次に実行される命令アドレスに先に
述べた割込み事象生成する機械語命令を埋め込み、今割
込み事象を生成した命令アドレスの割込み事象生成命令
を本来実行すべき命令に置換した後、該命令を実行させ
て次々に命令シーケンスをたどって行く方法もあるが、
この方式では複数のタスク間でプログラムを共有する場
合には適合しないと言った問題がある。[Prior Art] Performance analysis of computer systems is
It is common to use the various monitoring functions of S to analyze the usage status of computer resources to be measured. Regarding program execution performance on a central processing unit, dynamic behavior analysis of the program to be measured is very important. Macroscopic dynamic analysis is possible by analyzing a program source list, but microscopic analysis at the machine language instruction level, including the OS space, is extremely difficult. For example, a machine language instruction that generates a program interrupt event is embedded at the measurement start point of the program under test, and after the instruction is executed to detect the interrupt event and collect measurement information, it is logically executed next. Embed the machine language instruction that generates the interrupt event described earlier in the instruction address that has been generated, replace the interrupt event generation instruction at the instruction address that has just generated an interrupt event with the instruction that should be executed, and then execute the instructions one after another. There is also a way to follow the instruction sequence,
This method has a problem in that it is not suitable when a program is shared between multiple tasks.
【0003】0003
【発明が解決しようとする課題】上述した従来の技術で
は、アプリケーションプログラムの限定された範囲かあ
るいは非常に特殊な実行環境に限って計測が可能で、任
意の範囲を計測環境を限定せずにプログラムの動的挙動
を命令シーケンスに従って測定することが不可能である
。[Problem to be Solved by the Invention] With the above-mentioned conventional technology, it is possible to measure only a limited range of an application program or a very special execution environment, and any range can be measured without limiting the measurement environment. It is not possible to measure the dynamic behavior of a program according to its instruction sequence.
【0004】0004
【課題を解決するための手段】本発明のプログラム解析
システムは、コンピュータの中央処理装置が有する機械
語命令毎に監視機構を起動するステップバイステップ機
構をソフトウェアより起動させ、測定対象となるプログ
ラムに対して1機械語命令毎に割込み事象を生成させる
ことによりプログラムの動的挙動を分析し、プログラム
の実行アドレス、実行した機械語命令およびそのオペラ
ンド情報を収集分析するダイナミックステップアナライ
ザとを備えて構成される。[Means for Solving the Problems] The program analysis system of the present invention uses software to activate a step-by-step mechanism that activates a monitoring mechanism for each machine language instruction possessed by a central processing unit of a computer. In contrast, it is equipped with a dynamic step analyzer that analyzes the dynamic behavior of the program by generating an interrupt event for each machine language instruction, and collects and analyzes program execution addresses, executed machine language instructions, and their operand information. be done.
【0005】[0005]
【実施例】以下に本発明の実施例について図面を参照し
ながら説明する。DESCRIPTION OF THE PREFERRED EMBODIMENTS Examples of the present invention will be described below with reference to the drawings.
【0006】図1は本発明の動作原理を示すブロック図
である。コンピュータの中央処理装置上で実行される命
令シーケンス1−1は中央処理装置上に実装されたステ
ップバイステップ機構1−2を起動させることにより、
測定対象とするタスクの命令シーケンスだけに絞り込ん
で割込み事象の報告14を生成する。生成された事象は
中央処理装置上に実装された例外処理機構を介してソフ
トウェアに報告される。この例外処理機構により呼び出
されるソフトウェアとして本ダイナミックステップアナ
ライザ13を設定することにより、中央処理装置上で実
行される測定対象タスクの全命令シーケンスを検出する
ことが可能となる。FIG. 1 is a block diagram showing the operating principle of the present invention. The instruction sequence 1-1 executed on the central processing unit of the computer activates the step-by-step mechanism 1-2 implemented on the central processing unit.
The interrupt event report 14 is generated by narrowing down to only the instruction sequence of the task to be measured. The generated event is reported to the software via an exception handling mechanism implemented on the central processing unit. By setting the dynamic step analyzer 13 as software called by this exception handling mechanism, it becomes possible to detect the entire instruction sequence of the measurement target task executed on the central processing unit.
【0007】報告された割込み事象14はダイナミック
ステップアナライザ13により処理され、プログラムの
動的挙動に関する各種情報、例えば命令アドレス、実行
した機械語命令及び該命令に関するオペランド情報ある
いはプログラム実行のネストレベル等の情報を収集する
。情報収集が終了すると、次の命令シーケンスへの復帰
を行い(ステップ15)、再び割込み事象の生成を待ち
合わせる。この様にして測定対象とする命令シーケンス
に1命令実行の都度割込み動作を行なわせることにより
、プログラムの動的挙動に関する各種情報を収集するこ
とが可能となる。The reported interrupt event 14 is processed by the dynamic step analyzer 13, which collects various information regarding the dynamic behavior of the program, such as the instruction address, executed machine language instruction and operand information regarding the instruction, or the nesting level of program execution. Collect information. When the information collection is completed, a return is made to the next instruction sequence (step 15), and the generation of an interrupt event is awaited again. In this way, by performing an interrupt operation every time one instruction is executed in the instruction sequence to be measured, it becomes possible to collect various information regarding the dynamic behavior of the program.
【0008】図2は、生成された割込み事象について説
明するものであり、生成された割込み事象の主要部分2
1とデータ収集手順とを示すブロック図では測定対象と
するタスク上で実行されるプログラムの命令シーケンス
の1機械語命令の命令アドレス21を持ち、このアドレ
スより該当する命令を参照することができる。参照され
た機械語命令22は命令コード部とオペランド部より構
成され、このオペランド部よりデータ23の参照も可能
になる。これによりプログラムの実行と参照されるデー
タとの相互関係も把握することが可能になる。FIG. 2 explains the generated interrupt event, and shows the main part 2 of the generated interrupt event.
1 and the data collection procedure, there is an instruction address 21 of one machine language instruction of the instruction sequence of the program executed on the task to be measured, and the corresponding instruction can be referenced from this address. The referenced machine language instruction 22 is composed of an instruction code section and an operand section, and data 23 can also be referenced from this operand section. This makes it possible to understand the interrelationship between program execution and referenced data.
【0009】[0009]
【発明の効果】以上の説明から明らかなように、プログ
ラムの動的挙動に関する各種情報を機械語レベルの精度
でもって自動的に分析することが可能となるという効果
を有する。As is clear from the above description, the present invention has the advantage that various information regarding the dynamic behavior of a program can be automatically analyzed with precision at the machine language level.
【図1】本発明の動作原理を示すブロック図。FIG. 1 is a block diagram showing the operating principle of the present invention.
【図2】生成される割込み事象の主要部分とデータ収集
手順を示すブロック図。FIG. 2 is a block diagram showing the main parts of generated interrupt events and data collection procedures.
11 命令シーケンス
12 ステップバイステップ機構13 ダ
イナミックステップアナライザ14 割込み事象
の報告
15 命令シーケンスへの復帰
21 割込み事象(主要部)
22 機械語命令
23 データ11 Instruction sequence 12 Step-by-step mechanism 13 Dynamic step analyzer 14 Report of interrupt event 15 Return to instruction sequence 21 Interrupt event (main part) 22 Machine language instruction 23 Data
Claims (1)
機械語命令毎に監視機構を起動するステップバイステッ
プ機構をソフトウェアより起動させ、測定対象となるプ
ログラムに対して1機械語命令毎に割込み事象を生成さ
せることによりプログラムの動的挙動を分析し、プログ
ラムの実行アドレス、実行した機械語命令およびそのオ
ペランド情報を収集分析するダイナミックステップアナ
ライザとを備えてなることを特徴とするプログラム解析
システム。Claim 1: A step-by-step mechanism that activates a monitoring mechanism for each machine language instruction possessed by a central processing unit of a computer is activated by software, and an interrupt event is generated for each machine language instruction for a program to be measured. What is claimed is: 1. A program analysis system comprising: a dynamic step analyzer that analyzes the dynamic behavior of a program by executing the program, and collects and analyzes program execution addresses, executed machine language instructions, and their operand information.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3017207A JPH04256036A (en) | 1991-02-08 | 1991-02-08 | Program analysis system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3017207A JPH04256036A (en) | 1991-02-08 | 1991-02-08 | Program analysis system |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH04256036A true JPH04256036A (en) | 1992-09-10 |
Family
ID=11937498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP3017207A Pending JPH04256036A (en) | 1991-02-08 | 1991-02-08 | Program analysis system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH04256036A (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008210011A (en) * | 2007-02-23 | 2008-09-11 | Fujitsu Ltd | Profiling device and profiling program |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59200356A (en) * | 1983-04-27 | 1984-11-13 | Fuji Electric Co Ltd | Program tracing system |
JPS6270944A (en) * | 1985-09-24 | 1987-04-01 | Nec Corp | Collecting system for trace information |
JPH0452935A (en) * | 1990-06-20 | 1992-02-20 | Fujitsu Ltd | Address trace data gathering system |
-
1991
- 1991-02-08 JP JP3017207A patent/JPH04256036A/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59200356A (en) * | 1983-04-27 | 1984-11-13 | Fuji Electric Co Ltd | Program tracing system |
JPS6270944A (en) * | 1985-09-24 | 1987-04-01 | Nec Corp | Collecting system for trace information |
JPH0452935A (en) * | 1990-06-20 | 1992-02-20 | Fujitsu Ltd | Address trace data gathering system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008210011A (en) * | 2007-02-23 | 2008-09-11 | Fujitsu Ltd | Profiling device and profiling program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2749528B2 (en) | Tracer system for error analysis | |
US7415699B2 (en) | Method and apparatus for controlling execution of a child process generated by a modified parent process | |
US7689558B2 (en) | Application monitoring using profile points | |
US8336032B2 (en) | Implementing enhanced template debug | |
US20040268315A1 (en) | System and method for processing breakpoint events in a child process generated by a parent process | |
US8171340B2 (en) | Software performance counters | |
JP2000235511A (en) | Performance analysis method for application program and system/device used for performance analysis for application program | |
JPH0844590A (en) | Apparatus and method for selection test of software system | |
US20040123274A1 (en) | Multithread tracing method and apparatus | |
US7178135B2 (en) | Scope-based breakpoint selection and operation | |
US8935703B2 (en) | Performance counter inheritance | |
EP3387536B1 (en) | Method and device for non-intrusively collecting function trace data | |
JPWO2009104344A1 (en) | IT system behavior measurement and analysis system and method thereof | |
JP2010033543A (en) | Software operation monitoring system, client computer, server computer thereof, and program thereof | |
US20160188441A1 (en) | Testing multi-threaded applications | |
US20060248101A1 (en) | Extensible and unobtrusive script performance monitoring and measurement | |
Li et al. | Effectively manifesting concurrency bugs in android apps | |
JP4330429B2 (en) | Profile information acquisition apparatus and method | |
JPH04256036A (en) | Program analysis system | |
JP2005215816A (en) | Performance profiling method using hardware monitor | |
JP3339708B2 (en) | Event recording method | |
CN113704088B (en) | Process tracing method, process tracing system and related device | |
Lee et al. | Program conversion for detecting data races in concurrent interrupt handlers | |
KR101091457B1 (en) | Online system test method | |
JPS63289654A (en) | Program branching instruction monitoring system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 19970805 |