JP3139393B2 - Debug device - Google Patents

Debug device

Info

Publication number
JP3139393B2
JP3139393B2 JP08302527A JP30252796A JP3139393B2 JP 3139393 B2 JP3139393 B2 JP 3139393B2 JP 08302527 A JP08302527 A JP 08302527A JP 30252796 A JP30252796 A JP 30252796A JP 3139393 B2 JP3139393 B2 JP 3139393B2
Authority
JP
Japan
Prior art keywords
processing means
processing
variable
statement
post
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
JP08302527A
Other languages
Japanese (ja)
Other versions
JPH10133911A (en
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP08302527A priority Critical patent/JP3139393B2/en
Publication of JPH10133911A publication Critical patent/JPH10133911A/en
Application granted granted Critical
Publication of JP3139393B2 publication Critical patent/JP3139393B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、コンパイラの最適
化処理によって命令の並べ替えが行われたオブジェクト
プログラムをソースプログラムレベルでデバッグできる
デバッグ装置に関する。
[0001] 1. Field of the Invention [0002] The present invention relates to a debugging device capable of debugging, at a source program level, an object program in which instructions are rearranged by a compiler optimizing process.

【0002】[0002]

【従来の技術】プログラムの実行性能を高めるために、
コンパイル時に命令の並べ替え等の最適化処理を行うと
いうことは従来から行われており、また、最適化処理に
よって命令の並べ替えが行われたオブジェクトプログラ
ムをソースプログラムレベルでデバッグするということ
も従来から行われている。
2. Description of the Related Art In order to improve the execution performance of a program,
Conventionally, optimization processing such as instruction rearrangement at the time of compilation has been performed, and debugging of an object program whose instructions have been rearranged by optimization processing at the source program level has also been conventionally performed. Has been done since.

【0003】例えば、特開平5−233365公報で
は、コンパイル時に、ソースプログラムの各行について
その行番号を含む開始位置命令,終了位置命令を作成
し、作成した開始位置命令,終了位置命令をオブジェク
トプログラム上の対応する命令の前後に埋め込むように
している。
For example, in Japanese Unexamined Patent Publication No. Hei 5-233365, at the time of compiling, a start position instruction and an end position instruction including a line number are created for each line of a source program, and the created start position instruction and end position instruction are stored in an object program. Is embedded before and after the corresponding instruction.

【0004】また、特開平6−274369号公報で
は、ソースプログラムの行とオブジェクトプログラムの
命令列とが1対1に対応しない場合、コンパイラがソー
スプログラムの各行番号に対応させて、その行に由来す
るオブジェクトプログラムの命令の先頭命令のアドレス
と末尾命令のアドレスとを登録したテーブルを生成する
ようにしている。
In Japanese Unexamined Patent Publication No. Hei 6-274369, when a line of a source program and an instruction sequence of an object program do not correspond one-to-one, the compiler associates each line number of the source program with the line number and derives from the line. A table is created in which the addresses of the first instruction and the last instruction of the object program instructions are registered.

【0005】[0005]

【発明が解決しようとする課題】上記した従来の技術の
ように、コンパイル時にオブジェクトプログラム中にソ
ースプログラムに於ける各行について、その行番号を含
む開始位置命令,終了位置命令を埋め込んだり、行番号
と先頭命令アドレス,末尾命令アドレスとが対応付けて
登録されたテーブルを生成したりしておけば、ソースプ
ログラムの行とオブジェクトプログラムの命令列とを対
応付けることができるので、例えば、スプログラム上の
行番号を指定することによりオブジェクトプログラム上
の上記行番号に対応する部分に中断点を設定するといっ
たソースプログラムレベルでのデバッグが可能になる。
As described in the prior art, for each line in the source program at the time of compiling, a start position instruction and an end position instruction including the line number are embedded in the object program. By generating a table in which the source instruction address and the tail instruction address are registered in association with each other, a line of the source program can be associated with an instruction sequence of the object program. By specifying the line number, debugging at the source program level, such as setting a break point at a portion corresponding to the line number on the object program, becomes possible.

【0006】しかし、上述した従来の技術では、デバッ
グ時に、利用者がソースプログラムレベルで指定した中
断点に於いてオブジェクトプログラムの実行を停止さ
せ、その時点に於ける変数の値を表示させた場合、表示
された値が利用者が期待している値(命令の並べ替えが
行われていない時の値)と異なるものになっても、それ
がプログラムミスによるものなのか否かを判定すること
が難しいという問題があった。つまり、ソースプログラ
ム上では前記中断点よりも後ろに位置するが、オブジェ
クトプログラム上ではコンパイラによる命令の並べ替え
によってそれと対応する命令が中断点よりも前に位置す
ることになった文や、ソースプログラム上では中断点よ
りも前に位置するが、オブジェクトプログラム上ではコ
ンパイラによる命令の並べ替えによってそれと対応する
命令が中断点よりも後ろに位置することになった文が存
在する場合は、プログラムが正しいものであっても中断
点に於ける変数の値は、期待している値と異なるものに
なることがあるので、表示された値が期待している値と
異なる値になっても、直ちにプログラムにミスがあると
判定することはできない。
However, in the above-described conventional technique, when debugging, when the user stops the execution of the object program at the interruption point designated at the source program level, and displays the value of the variable at that time, Even if the displayed value differs from the value expected by the user (the value when the instructions are not rearranged), it is determined whether or not the result is due to a program error. There was a problem that was difficult. In other words, a statement that is located after the break point in the source program, but the corresponding instruction is positioned before the break point in the object program due to the instruction rearrangement by the compiler, or the source program If there is a statement that is located before the break point in the above, but the corresponding instruction is located after the break point in the object program due to the instruction reordering by the compiler, the program is correct. Even if the displayed value is different from the expected value, the value of the variable at the break point may be different from the expected value. Cannot be determined to have a mistake.

【0007】そこで、本発明の目的は、利用者がソース
プログラムレベルで指定した中断点に於いて命令の並べ
替えが行われているオブジェクトプログラムの実行を中
断させ、その時点での変数の値を表示させた場合でも、
命令の並べ替えが行われていないオブジェクトプログラ
ムを実行させた場合と同じ結果を表示できるデバッグ装
置を提供することにある。
Therefore, an object of the present invention is to interrupt execution of an object program in which instructions are rearranged at an interruption point designated by a user at a source program level, and to change a value of a variable at that time. Even if it is displayed,
An object of the present invention is to provide a debugging device capable of displaying the same result as when an object program in which instructions are not rearranged is executed.

【0008】[0008]

【課題を解決するための手段】本発明は上記目的を達成
するため、ソースプログラムをコンパイラでコンパイル
することにより生成されたオブジェクトプログラムをデ
バッグするデバッグ装置に於いて、前記コンパイラが、
前記ソースプログラムに存在する変数の名前と、前記ソ
ースプログラムに存在する各行の行番号と、前記各行に
存在する文の文番号と、前記各文に対応する前記オブジ
ェクトプログラム上の命令のアドレスとを含むデバッグ
情報を生成する構成を有し、且つ、前記ソースプログラ
ムの行番号を含んだ中断点設定コマンドが入力された
時、前記オブジェクトプログラム上の前記行番号に対応
する部分に中断点を設定する中断点設定処理手段と、前
記中断点設定コマンドの入力時、前記ソースプログラム
上では前記中断点よりも後ろに位置するが、前記オブジ
ェクトプログラム上では前記コンパイラによる命令の並
べ替えによってそれと対応する命令が前記中断点よりも
前に位置することになった先行実行文であって且つ変数
の値を定義している先行実行文を前記デバッグ情報に基
づいて探し出す前処理設定処理手段と、該前処理設定処
理手段が探し出した先行実行文によって値が定義される
変数の、前記先行実行文に対応する命令が実行される直
前の値を保存する前処理手段と、該前処理手段の処理が
終了した後、前記ソースプログラム上では前記中断点よ
りも前に位置するが、前記オブジェクトプログラム上で
は前記コンパイラによる命令の並べ替えによってそれと
対応する命令が前記中断点よりも後ろに位置することに
なった未実行文であって且つ変数の値を定義している未
実行文を前記デバッグ情報に基づいて全て探し出す後処
理設定処理手段と、前記オブジェクトプログラムを前記
中断点から前記後処理設定処理手段によって探し出され
た未実行文の内の最後の未実行文に対応する命令まで実
行した時の、前記後処理設定処理手段によって探し出さ
れた未実行文が値を定義している変数の値を保存する後
処理手段と、変数名を含んだ表示コマンドが入力された
時、前記変数名の変数の値が前記前処理手段或いは前記
後処理手段によって保存されている場合は、前記前処理
手段或いは前記後処理手段によって保存されている前記
変数名の変数の値を表示し、保存されていない場合は、
前記変数名の変数の現在値を表示する情報表示処理手段
とを備えている。
In order to achieve the above object, the present invention provides a debugging apparatus for debugging an object program generated by compiling a source program with a compiler, wherein the compiler comprises:
The names of the variables present in the source program and the source
The line number of each line existing in the source program
The statement number of the existing statement and the object corresponding to each statement
Debug including the address of the instruction on the project program
A break point having a configuration for generating information and setting a break point in a portion corresponding to the line number on the object program when a break point setting command including a line number of the source program is input; Setting processing means, when the interruption point setting command is input, the instruction is located after the interruption point on the source program, but the instruction corresponding to the interruption is rearranged by the compiler on the object program by the instruction rearrangement. The preceding executable statement which is located before the point and defines the value of the variable is determined based on the debug information.
Before saving the preprocessing setting processing means for locating in Zui, variables values by the prior execution statement finds the pretreatment setting processing means are defined, the value immediately before the instruction is executed corresponding to the preceding execution statement Processing means and the processing of the pre-processing means
After completion, the instruction is located before the interruption point in the source program, but the instruction corresponding to the instruction is located after the interruption point in the object program due to the instruction rearrangement by the compiler. A post-processing setting processing means for searching all the non-executable statements which are the non-executable statements and defining the values of the variables based on the debug information; and When the instruction corresponding to the last unexecuted statement among the searched unexecuted statements is executed, the value of a variable whose value defines the value of the unexecuted statement found by the post-processing setting processing unit is defined. When a display command including a variable name is input, the value of the variable having the variable name is changed by the pre-processing means or the post-processing means. If stored, when the pre-processing means or display the value of a variable of the variable names that are stored by the post-processing means, not stored,
Information display processing means for displaying a current value of the variable having the variable name.

【0009】上記した構成に於いては、コンパイラが、
ソースプログラムに存在する変数の名前と、ソースプロ
グラムに存在する各行の行番号と、各行に存在する文の
文番号と、各文に対応するオブジェクトプログラム上の
命令のアドレスとを含むデバッグ情報を生成する。ま
た、利用者がソースプログラムの行番号を含んだ中断点
設定コマンドを入力すると、中断点設定処理手段が、オ
ブジェクトプログラム上の上記行番号に対応する部分に
中断点を設定する。
In the configuration described above, the compiler:
The names of the variables that exist in the source program
The line number of each line in the program and the statement
The statement number and the object program corresponding to each statement
Generate debug information including the address of the instruction. Ma
When the user inputs a break point setting command including the line number of the source program, the break point setting processing means sets a break point at a portion corresponding to the line number on the object program.

【0010】前処理設定処理手段は、ソースプログラム
上では前記中断点よりも後ろに位置するが、オブジェク
トプログラム上ではコンパイラによる命令の並べ替えに
よってそれと対応する命令が中断点よりも前に位置する
ことになった先行実行文であって且つ変数の値を定義し
ている先行実行文をデバッグ情報に基づいて全て探し出
し、前処理手段は、前処理設定処理手段が探し出した先
行実行文によって値が定義される変数の、上記先行実行
文に対応する命令が実行される直前の値を保存する。
The preprocessing setting processing means is located after the interruption point on the source program, but the corresponding instruction is located before the interruption point on the object program due to the instruction rearrangement by the compiler. The pre-execution statement that has become the pre-execution statement that defines the value of the variable is searched for based on the debug information, and the pre-processing means defines the value by the pre-execution statement found by the pre-processing setting processing means. The value of the variable to be executed immediately before the instruction corresponding to the preceding execution statement is executed is stored.

【0011】また、後処理設定処理手段は、ソースプロ
グラム上では中断点よりも前に位置するが、オブジェク
トプログラム上ではコンパイラによる命令の並べ替えに
よってそれと対応する命令が中断点よりも後ろに位置す
ることになった未実行文であって且つ変数の値を定義し
ている未実行文をデバッグ情報に基づいて全て探し出
し、後処理手段は、オブジェクトプログラムを中断点か
ら後処理設定処理手段によって探し出された未実行文の
内の最後の未実行文に対応する命令まで実行した時の、
後処理設定処理手段によって探し出された未実行文が値
を定義している変数の値を全て保存する。
The post-processing setting processing means is located before the interruption point on the source program, but the corresponding instruction is located after the interruption point on the object program due to the instruction rearrangement by the compiler. Based on the debug information, all the unexecuted statements which have been decided and define the value of the variable are searched out, and the post-processing means searches the object program from the interruption point by the post-processing setting processing means. When executing up to the instruction corresponding to the last unexecuted statement among the executed unexecuted statements,
The unexecuted statement found by the post-processing setting processing means stores all the values of the variables whose values are defined.

【0012】利用者によって指定された中断点までオブ
ジェクトプログラムを実行した後、変数名を含んだ表示
コマンドが入力されると、情報表示処理手段は、表示コ
マンドに含まれている変数名の変数の値が前処理手段或
いは後処理手段によって保存されている場合は、前処理
手段或いは後処理手段によって保存されている値を表示
し、保存されていない場合は、変数の現在値を表示す
る。
After executing the object program up to the interruption point designated by the user, when a display command including a variable name is input, the information display processing means performs processing of the variable of the variable name included in the display command. When the value is stored by the pre-processing means or the post-processing means, the value stored by the pre-processing means or the post-processing means is displayed. When the value is not stored, the current value of the variable is displayed.

【0013】また、本発明は、デバッグ時の処理速度を
高速化するため、ソースプログラムをコンパイラでコン
パイルすることにより生成されたオブジェクトプログラ
ムをデバッグするデバッグ装置に於いて、前記コンパイ
ラが、前記ソースプログラムに存在する変数の名前と、
前記ソースプログラムに存在する各行の行番号と、前記
各行に存在する文の文番号と、前記各文に対応する前記
オブジェクトプログラム上の命令のアドレスとを含むデ
バッグ情報を生成する構成を有し、且つ、前記ソースプ
ログラムの行番号を含んだ中断点設定コマンドが入力さ
れた時、前記オブジェクトプログラム上の前記行番号に
対応する部分に中断点を設定する中断点設定処理手段
と、前記中断点設定コマンドの入力時、前記ソースプロ
グラム上では前記中断点よりも後ろに位置するが、前記
オブジェクトプログラム上では前記コンパイラによる命
令の並べ替えによってそれと対応する命令が前記中断点
よりも前に位置することになった先行実行文であって且
つ変数の値を定義している先行実行文を前記デバッグ情
報に基づいて探し出す前処理設定処理手段と、該前処理
設定処理手段が探し出した先行実行文によって値が定義
される変数の、前記先行実行文に対応する命令が実行さ
れる直前の値を保存する前処理手段と、該前処理手段の
処理が終了した後に、値を表示する変数の変数名を含ん
だ表示コマンドが入力された時、前記ソースプログラム
上では前記中断点よりも前に位置するが、前記オブジェ
クトプログラム上では前記コンパイラによる命令の並べ
替えによってそれと対応する命令が前記中断点よりも後
ろに位置することになった未実行文であって且つ変数の
値を定義している未実行文を前記デバッグ情報に基づい
て探し、変数の値を定義している未実行文を探し出すこ
とができなかった場合は、情報表示処理手段に対して表
示指示を行い、探し出すことができた場合は、探し出し
た未実行文によって値が定義されている変数が前記表示
コマンドによって値を表示することが指示されている変
数であるか否かを調べ、表示することが指示されている
変数でない場合は、前記情報表示処理手段に対して表示
指示 を行い、表示することが指示されている変数である
場合は、後処理手段に対して動作指示を行うと共に、該
後処理手段の処理が終了した後、前記情報表示処理手段
に対して表示指示を行う後処理設定処理手段と、該後処
理設定処理手段によって動作指示が行われた時、前記オ
ブジェクトプログラムを前記中断点から最後の未実行文
に対応する命令まで実行した時の、前記後処理設定処理
手段によって探し出された未実行文によって値が定義さ
れている変数の値を保存する後処理手段と、前記後処理
設定処理手段によって表示指示が行われた時、前記表示
コマンドに含まれている変数名の変数の値が前記前処理
手段或いは前記後処理手段によって保存されている場合
は、前記前処理手段或いは前記後処理手段によって保存
されている前記変数名の変数の値を表示し、保存されて
いない場合は、前記変数名の変数の現在値を表示する
報表示処理手段とを備えている。
Further, the present invention is to speed up the processing speed at the time of debugging, in the debugging apparatus for debugging an object program generated by compiling the source program by the compiler, the compiler
Is the name of a variable that exists in the source program,
The line number of each line present in the source program,
The statement number of the statement existing in each line and the statement corresponding to each statement
Data including the address of the instruction on the object program
An interrupt that has a configuration for generating bag information and sets an interrupt point in a portion corresponding to the line number on the object program when an interrupt point setting command including a line number of the source program is input Point setting processing means, when the interruption point setting command is input, the source program is located after the interruption point on the source program, but the instruction corresponding to the instruction is rearranged by the compiler on the object program. The preceding execution statement which is located before the break point and defines the value of the variable is referred to as the debugging information.
The pre-processing setting processing means for searching based on the information, and the value immediately before the instruction corresponding to the preceding execution statement of the variable whose value is defined by the preceding execution statement searched by the pre-processing setting processing means is stored. Preprocessing means, and
Contains the variable name of the variable whose value is to be displayed after processing is completed.
When a display command is input, the instruction is positioned before the break point on the source program, but the corresponding instruction is rearranged after the break point on the object program by rearranging the instructions by the compiler. An unexecuted statement that is located and that defines a value of a variable is defined based on the debug information.
To find the unexecuted statement that defines the value of the variable.
If not, the information display processing means is displayed.
If you can find the information
Variable whose value is defined by the unexecuted statement
The variable that the command indicates to display the value
Instructed to check if it is a number and display it
If not a variable, display to the information display processing means
Carried out the instructions, there is a variable that has been instructed to be displayed
In this case, an operation instruction is given to the post-processing means, and the
After the processing of the post-processing means is completed, the information display processing means
And post-processing setting processing means for displaying instructions to, rear punished
When operation instruction by physical setting processing means is performed, when executing the pre Symbol object program to instruction corresponding to unexecuted statements of said break point or et top post was located by the post-processing setting processing means and a post-processing means for storing the values of variables defined values by unexecuted statements, the after treatment
When a display instruction is given by the setting processing means, the display
When the value of the variable of the variable name included in the command is stored by the pre-processing means or the post-processing means, the value of the variable of the variable name stored by the pre-processing means or the post-processing means is stored. Show the value and save it
If not, an information display processing means for displaying the current value of the variable having the variable name is provided.

【0014】上記した構成に於いては、コンパイラが、
ソースプログラムに存在する変数の名前と、ソースプロ
グラムに存在する各行の行番号と、各行に存在する文の
文番号と、各文に対応するオブジェクトプログラム上の
命令のアドレスとを含むデバッグ情報を生成する。ま
た、利用者がソースプログラムの行番号を含んだ中断点
設定コマンドを入力すると、中断点設定処理手段が、オ
ブジェクトプログラム上の上記行番号に対応する部分に
中断点を設定する。
In the configuration described above, the compiler
The names of the variables that exist in the source program
The line number of each line in the program and the statement
The statement number and the object program corresponding to each statement
Generate debug information including the address of the instruction. Ma
When the user inputs a break point setting command including the line number of the source program, the break point setting processing means sets a break point at a portion corresponding to the line number on the object program.

【0015】前処理設定処理手段は、ソースプログラム
上では中断点よりも後ろに位置するが、オブジェクトプ
ログラム上ではコンパイラによる命令の並べ替えによっ
てそれと対応する命令が中断点よりも前に位置すること
になった先行実行文であって且つ変数の値を定義してい
る先行実行文をデバッグ情報に基づいて全て探し出し、
前処理手段は、前処理設定処理手段が探し出した先行実
行文によって値が定義される変数の、上記先行実行文に
対応する命令が実行される直前の値を保存する。
The pre-processing setting processing means is located after the interruption point on the source program, but the corresponding instruction is located before the interruption point on the object program by rearranging the instructions by the compiler. Search for all preceding executable statements based on the debug information, and
The preprocessing means stores a value of a variable whose value is defined by the preceding execution statement found by the preprocessing setting processing means, immediately before the instruction corresponding to the preceding execution statement is executed.

【0016】後処理設定処理手段は、前処理手段の処理
が終了した後に、値を表示する変数の変数名を含んだ表
示コマンドが入力された時、ソースプログラム上では中
断点よりも前に位置するが、オブジェクトプログラム上
ではコンパイラによる命令の並べ替えによってそれと対
応する命令が中断点よりも後ろに位置することになった
未実行文であって且つ変数の値を定義している未実行文
デバッグ情報に基づいて探し、変数の値を定義してい
る未実行文を探し出すことができなかった場合は、情報
表示処理手段に対して表示指示を行い、探し出すことが
できた場合は、探し出した未実行文によって値が定義さ
れている変数が表示コマンドによって値を表示すること
が指示されている変数であるか否かを調べ、表示するこ
とが指示されている変数でない場合は、情報表示処理手
段に対して表示指示を行い、表示することが指示されて
いる変数である場合は、後処理手段に対して動作指示を
行うと共に、後処理手段の処理が終了した後、情報表示
処理手段に対して表示指示を行う。後処理手段は、後処
理設定処理手段によって動作指示が行われた時、オブジ
ェクトプログラムを中断点から最後の未実行文に対応す
る命令まで実行した時の、後処理設定処理手段によって
探し出された未実行文によって値が定義されている変数
の値を保存する。情報表示処理手段は、後処理設定処理
手段によって表示指示が行われた時、表示コマンドに含
まれている変数名の変数の値が前処理手段或いは後処理
手段によって保存されている場合は、前処理手段或いは
後処理手段によって保存されている上記変数名の変数の
値を表示する。
[0016] The post-processing setting processing means is provided for processing the pre-processing means.
Table containing the names of the variables whose values are to be displayed after
When a show command is input, the instruction is located before the break point in the source program, but the corresponding instruction is located after the break point in the object program due to the instruction reordering by the compiler. An unexecuted statement that is an unexecuted statement and defines the value of a variable is searched based on the debug information, and the value of the variable is defined.
If an unexecutable statement cannot be found,
Instruct the display processing means to display and find
If successful, the value is defined by the found unexecuted statement.
That the displayed variable displays its value with a display command
Check whether is the designated variable and display it.
Is not the specified variable, the information display processing procedure
The display instruction is given to the column, and the display is instructed.
If the variable is
Information display after completion of post-processing means
A display instruction is issued to the processing means. The post-processing means includes a post-processing
When an operation instruction is given by the processing setting processing means, the value is determined by the unexecuted statement found by the post-processing setting processing means when the object program is executed from the interruption point to the instruction corresponding to the last unexecuted statement. Save the value of a defined variable . The information display processing means performs post-processing setting processing.
When the display instruction is given by the means, if the value of the variable of the variable name included in the display command is stored by the preprocessing means or the postprocessing means, the value is stored by the preprocessing means or the postprocessing means. Displays the value of the variable with the above variable name.

【0017】[0017]

【発明の実施の形態】次に本発明の実施の形態について
図面を参照して詳細に説明する。
Embodiments of the present invention will now be described in detail with reference to the drawings.

【0018】図1は本発明の一実施例のブロック図であ
り、ソースプログラム100を入力してオブジェクトプ
ログラム200とデバッグ情報300とを出力するコン
パイラ10と、コンパイラ10が生成したオブジェクト
プログラム200に対するデバッグを行うデバッグ装置
20と、デバッグ装置20に対してデバッグコマンドを
入力するための入力装置30と、デバッグ結果を表示す
る表示装置31とから構成されている。尚、コンパイラ
10は、命令の並べ替え等の最適化処理を行う機能を有
している。
FIG. 1 is a block diagram of an embodiment of the present invention. A compiler 10 which inputs a source program 100 and outputs an object program 200 and debug information 300, and a debugger for the object program 200 generated by the compiler 10. A debugging device 20, an input device 30 for inputting a debugging command to the debugging device 20, and a display device 31 for displaying a debugging result. Note that the compiler 10 has a function of performing optimization processing such as instruction rearrangement.

【0019】コンパイラ10が出力するデバッグ情報3
00は、変数・定数情報310と、行番号・命令対応情
報320とを含む。
Debug information 3 output by the compiler 10
00 includes variable / constant information 310 and line number / instruction correspondence information 320.

【0020】変数・定数情報310は、図2に示すよう
に、オブジェクトプログラム200に存在する変数,定
数の名前311と、その型,属性を示す型・属性情報3
12とから構成されている。
The variable / constant information 310 includes, as shown in FIG. 2, the names 311 of variables and constants existing in the object program 200 and the type / attribute information 3 indicating their types and attributes.
12.

【0021】また、行番号・命令対応情報320は、図
2に示すように、ソースプログラム100の各行の行番
号321と、その行に存在する文の文番号322と、そ
の文に存在する変数,定数を管理している変数・定数情
報を指し示す定義情報323と、その文と対応するオブ
ジェクトプログラム200上の最初の命令と末尾の命令
のアドレスから構成される命令列情報324と、その行
に複数の文が存在する場合に於いて第2番目の文につい
ての文情報を指し示すnext文情報325とを含んで
いる。
As shown in FIG. 2, the line number / instruction correspondence information 320 includes a line number 321 of each line of the source program 100, a statement number 322 of a statement existing in the line, and a variable number existing in the statement. , Definition information 323 indicating variable / constant information managing constants, instruction sequence information 324 including the addresses of the first instruction and the last instruction on the object program 200 corresponding to the statement, and Next sentence information 325 indicating sentence information on the second sentence when a plurality of sentences exist.

【0022】デバッグ装置20は、中断点設定処理手段
21と、前処理設定処理手段21aと、中断点処理手段
22と、後処理設定処理手段22aと、情報表示処理手
段23と、中断点解除処理手段24と、前処理手段25
と、後処理手段26と、情報記憶領域27とを含んでい
る。
The debugging device 20 includes a break point setting processing means 21, a pre-processing setting processing means 21a, a break point processing means 22, a post-processing setting processing means 22a, an information display processing means 23, a break point release processing Means 24 and preprocessing means 25
, A post-processing means 26, and an information storage area 27.

【0023】中断点設定処理手段21は、ソースプログ
ラムの行番号を含んだ中断点設定コマンドが入力装置3
0から入力された時、オブジェクトプログラム200上
の上記行番号に対応する命令の内の、先頭の命令を中断
点呼び出し命令と置き換えることにより、オブジェクト
プログラム200上の上記行番号に対応する部分に中断
点を設定する機能や、置き換え前の命令を保存する機能
等を有する。尚、本実施例では、中断点設定コマンドに
含まれている行番号に対応する命令の内の、先頭の命令
が存在する位置を中断点とするようにしたが、末尾の命
令,特定の条件を満たす命令(例えば、変数の値の定義
が発生する命令)の内の最初の命令が存在する位置を中
断点とするようにすることもできる。その場合には、末
尾の命令,特定の条件を満たす命令の内の最初の命令を
中断点処理呼び出し命令と置き換えるようにすれば良
い。
The break point setting processing means 21 receives the break point setting command including the line number of the source program from the input device 3.
When input from 0, the instruction corresponding to the line number in the object program 200 is replaced with the instruction at the beginning of the line corresponding to the line number, thereby interrupting the part corresponding to the line number in the object program 200. It has a function to set points, a function to save instructions before replacement, and the like. In this embodiment, among the instructions corresponding to the line numbers included in the interruption point setting command, the position where the first instruction exists is set as the interruption point. The position where the first instruction exists among the instructions satisfying the above (for example, the instruction in which the definition of the value of the variable occurs) may be set as the interruption point. In this case, the last instruction or the first instruction among the instructions satisfying the specific condition may be replaced with the interruption point processing call instruction.

【0024】前処理設定処理手段21aは、ソースプロ
グラム100上では中断点設定処理手段21によって設
定された中断点よりも後ろに位置するが、オブジェクト
プログラム200上ではコンパイラ10による命令の並
べ替えによって中断点よりも前に位置することになった
先行実行文であって且つ変数の値を定義している先行実
行文を探し出す機能等を有している。
The preprocessing setting processing means 21a is located after the interruption point set by the interruption point setting processing means 21 on the source program 100, but is interrupted on the object program 200 by rearranging instructions by the compiler 10. It has a function of searching for a preceding execution statement that is located before the point and that defines the value of the variable.

【0025】前処理手段25は、デバッグ装置20が前
処理呼び出し命令を実行した時にデバッグ装置20から
呼び出され、上記前処理呼び出し命令と置き換えられた
命令を含む先行実行文によって値が定義される変数の値
を保存する機能を有する。
The pre-processing means 25 is a variable which is called from the debugging device 20 when the debugging device 20 executes the pre-processing call instruction and whose value is defined by a preceding execution statement including the instruction replaced with the pre-processing call instruction. Has the function of storing the value of

【0026】中断点処理手段22は、デバッグ装置20
が中断点までオブジェクトプログラム200を実行した
時にデバッグ装置20から制御を渡され、後処理設定処
理手段22aを起動する機能を有する。
The break point processing means 22 is
Has a function of receiving control from the debugging device 20 when the object program 200 is executed up to the interruption point, and activating the post-processing setting processing means 22a.

【0027】後処理設定処理手段22aは、ソースプロ
グラム100上では中断点よりも前に位置するが、オブ
ジェクトプログラム200上ではコンパイラ10による
命令の並べ替えによってそれと対応する命令が中断点よ
りも後ろに位置することになった未実行文であって且つ
変数の値を定義している未実行文を全て探し出す機能,
探し出した最後の未実行文(文番号が最も大きい未実行
文)に対応するオブジェクトプログラム200上の命令
の内の最後の命令を保存する機能,上記した最後の命令
を後処理呼び出し命令と置き換える機能等を有する。
The post-processing setting processing means 22a is located before the interruption point on the source program 100, but the corresponding instruction on the object program 200 is rearranged after the interruption point by the instruction rearrangement by the compiler 10. A function to find all the unexecuted statements that are located and that define the value of a variable,
The function of saving the last instruction among the instructions on the object program 200 corresponding to the last unexecuted statement found (the largest unexecuted statement), and the function of replacing the last instruction with a post-processing call instruction Etc.

【0028】後処理手段26は、デバッグ装置20が後
処理呼び出し命令を実行した時にデバッグ装置20から
呼び出されるものであり、未実行文に対応する命令によ
って値が定義されている変数の現在値を保存する機能
や、デバッグ装置20の状態を中断点実行時の状態に戻
す機能を有する。
The post-processing means 26 is called from the debug device 20 when the debug device 20 executes a post-processing call instruction, and updates the current value of a variable whose value is defined by the instruction corresponding to the unexecuted statement. It has a function of saving and a function of returning the state of the debug device 20 to the state at the time of execution of the interruption point.

【0029】情報表示処理手段23は、変数名を含んだ
表示コマンドが入力された時、上記変数名の変数の値が
前処理手段25或いは後処理手段26によって保存され
ている場合は、前処理手段25或いは後処理手段26に
よって保存されている値を表示し、保存されていない場
合は、その変数の中断点実行時に於ける値を表示する機
能を有する。
When a display command including a variable name is input, if the value of the variable having the variable name is stored by the pre-processing unit 25 or the post-processing unit 26, the information display processing unit 23 performs pre-processing. It has a function of displaying the value stored by the means 25 or the post-processing means 26 and, if not stored, displaying the value of the variable at the time of execution of the interruption point.

【0030】中断点解除処理手段24は、中断点設定処
理手段21によって設定された中断点を解除する機能を
有する。
The interruption point release processing means 24 has a function of releasing the interruption point set by the interruption point setting processing means 21.

【0031】図3は中断点設定処理手段21の処理例を
示す流れ図、図4は前処理設定処理手段21aの処理例
を示す流れ図、図5は前処理手段25の処理例を示す流
れ図、図6は中断点処理手段22の処理例を示す流れ
図、図7は後処理設定処理手段22aの処理例を示す流
れ図、図8は後処理手段26の処理例を示す流れ図、図
9は情報表示処理手段23の処理例を示す流れ図であ
り、以下各図を参照して本実施例の動作について説明す
る。
FIG. 3 is a flowchart showing a processing example of the interruption point setting processing means 21, FIG. 4 is a flowchart showing a processing example of the preprocessing setting processing means 21a, and FIG. 5 is a flow chart showing a processing example of the preprocessing means 25. 6 is a flowchart showing a processing example of the interruption point processing means 22, FIG. 7 is a flowchart showing a processing example of the post-processing setting processing means 22a, FIG. 8 is a flowchart showing a processing example of the post-processing means 26, and FIG. 5 is a flowchart showing a processing example of the means 23, and the operation of this embodiment will be described below with reference to the drawings.

【0032】命令の並べ替え等の最適化処理を行う機能
を備えたコンパイラ10は、ソースプログラム100が
入力されると、命令の並べ替え等の最適化処理を行った
オブジェクトプログラム200を出力すると共に、デバ
ッグ時に必要となる変数・定数情報310や、ソースプ
ログラム100の行番号,文番号とオブジェクトプログ
ラム200中の命令列との対応関係を示す行番号・命令
対応情報320を含んだデバッグ情報300を出力す
る。
When the source program 100 is input, the compiler 10 having a function of performing optimization processing such as instruction rearrangement outputs an object program 200 having undergone optimization processing such as instruction rearrangement. The debug information 300 including the variable / constant information 310 required at the time of debugging and the line number / instruction correspondence information 320 indicating the correspondence between the line number and statement number of the source program 100 and the instruction sequence in the object program 200 Output.

【0033】今、例えば、図10に示すソースプログラ
ム100がコンパイラ10に入力されたとする。このソ
ースプログラム100は、行番号「15」の行に変数d
への代入文(文番号「11」)と配列aへの配列代入文
(文番号「12」)とを含み、行番号「16」の行に変
数b(文番号「13」)への代入文を含み、行番号「1
7」の行に変数cへの代入文(文番号「14」)を含ん
でいる。
Now, for example, assume that the source program 100 shown in FIG. The source program 100 stores the variable d in the line with the line number “15”.
To the variable b (sentence number "13") on the line with the line number "16" including the assignment statement (sentence number "11") to the array a and the array assignment statement (sentence number "12") to the array a. Statement and line number "1"
The line “7” includes an assignment statement (sentence number “14”) to the variable c.

【0034】このようなソースプログラム100が入力
されると、コンパイラ10は図11に示すようなオブジ
ェクトプログラム200を出力すると共に、図2に示す
ようなデバッグ情報300を出力する。
When such a source program 100 is input, the compiler 10 outputs an object program 200 as shown in FIG. 11 and also outputs debug information 300 as shown in FIG.

【0035】図11に示したオブジェクトプログラム2
00は、コンパイラ10によって命令の並べ替えが行わ
れている。この例では、文番号「13」の文に対応する
命令「move b<−10」が、文番号「11」,
「12」の文に対応する命令「load x<−c、a
dd x<−x+1、store d<−x」,「v.
store a(10)<−x」よりも前に並べ替えら
れている。
Object program 2 shown in FIG.
At 00, instructions are rearranged by the compiler 10. In this example, the instruction “move b <−10” corresponding to the statement with the statement number “13” is the statement number “11”,
Instruction “load x <−c, a” corresponding to the statement “12”
dd x <−x + 1, store d <−x ”,“ v.
It is sorted before "store a (10) <-x".

【0036】また、図2に示したデバッグ情報300中
の変数・定数情報310及び行番号・命令対応情報32
0に基づいて、以下のことを認識することができる。
The variable / constant information 310 and the line number / instruction correspondence information 32 in the debug information 300 shown in FIG.
Based on 0, the following can be recognized.

【0037】行番号・命令対応情報320中の行番号3
21,文番号322,命令列情報324に基づいて、行
番号「15」の行に存在する文番号「11」,「12」
の文と対応するオブジェクトプログラム200上の命令
はアドレス「00144〜0014c」,「0015
0」に存在し、文番号「13」の文と対応するオブジェ
クトプログラム200上の命令はアドレス「0014
0」に存在し、文番号「14」の文と対応するオブジェ
クトプログラム200上の命令はアドレス「0015
4」に存在することを認識できる。つまり、文番号「1
1」の文に対応する命令が「load x<−c」,
「add x<−x+1」,「store d<−x」
の3つで、文番号「12」の文に対応する命令が「v.
store a(10)<−x」で、文番号「13」の
文に対応する命令が「move b<−10」で、文番
号「14」の文に対応する命令が「store c<−
x」であると認識できる。
Line number 3 in line number / instruction correspondence information 320
21, statement number 322, statement number “11”, “12” existing in the row of row number “15” based on instruction sequence information 324
The instructions on the object program 200 corresponding to the statements of the addresses "00144 to 0014c" and "0015
0, and the instruction in the object program 200 corresponding to the statement with the statement number “13” is at the address “0014”.
0, and the instruction on the object program 200 corresponding to the statement with the statement number “14” is at the address “0015”.
4 "can be recognized. That is, the sentence number “1”
The instruction corresponding to the statement of “1” is “load x <−c”,
"Add x <-x + 1", "store d <-x"
And the instruction corresponding to the sentence with the sentence number “12” is “v.
The instruction corresponding to the statement with the statement number “13” is “move b <−10”, and the instruction corresponding to the statement with the statement number “14” is “store c <−”.
x ".

【0038】更に、行番号・命令対応情報320中の定
義情報323と変数・定数情報310とに基づいて、行
番号「11」の文では変数dが定義され、文番号「1
2」の文では配列で大きさ10の変数aが定義され、文
番号「13」の文では変数bが定義され、文番号「1
4」の文では変数cが定義されていることを認識でき
る。
Further, based on the definition information 323 and the variable / constant information 310 in the line number / instruction correspondence information 320, a variable d is defined in the statement with the line number "11", and the statement number "1".
In the statement of "2", a variable a having a size of 10 is defined in the array, in the statement of statement number "13", a variable b is defined, and in the statement of statement number "1".
In the sentence "4", it can be recognized that the variable c is defined.

【0039】デバッグ装置20は、コンパイラ10から
図2に示すようなデバッグ情報300が出力されると、
図12に示すような変数・定数情報410及び行番号・
命令対応情報420を作成して情報記憶領域27に格納
する。
When the debug information 20 is output from the compiler 10 as shown in FIG.
Variable / constant information 410 and a line number as shown in FIG.
The instruction correspondence information 420 is created and stored in the information storage area 27.

【0040】変数・定数情報410は、デバッグ情報3
00中の変数・定数情報310に領域情報411と値保
存情報へのポインタ412とを追加したものであり、行
番号・命令対応情報420は、デバッグ情報300中の
行番号・命令対応情報320に中断点情報421と保存
命令情報422とを追加したものである。
The variable / constant information 410 is the debug information 3
The area number 411 and the pointer 412 to the value storage information are added to the variable / constant information 310 in the line number 00 and the line number / instruction correspondence information 420 in the debug information 300 is the line number / instruction correspondence information 320 in the debug information 300. This is obtained by adding break point information 421 and save command information 422.

【0041】領域情報411は、変数の現在値が格納さ
れているデータ領域を指し示す情報であり、値保存情報
へのポインタ412は、先行実行文,未実行文を実行し
た時の変数の値を管理している保存領域を指し示す情報
である。また、中断点情報421は、後述する前処理挿
入情報,後処理挿入情報,環境情報を指し示す情報であ
り、保存命令情報422は、中断点処理呼び出し命令と
置き換えられた命令の保存領域を指し示す情報である。
The area information 411 is information indicating the data area in which the current value of the variable is stored. The pointer 412 to the value storage information indicates the value of the variable at the time of executing the preceding execution statement and the unexecuted statement. This is information indicating the managed storage area. The break point information 421 is information indicating pre-processing insertion information, post-processing insertion information, and environment information, which will be described later. The storage instruction information 422 is information indicating a storage area of an instruction replaced with the interruption point processing call instruction. It is.

【0042】デバッグ装置20の利用者は、情報記憶領
域27に変数・定数情報410及び行番号・命令対応情
報420が格納されると、中断点の設定を指示する中断
点設定コマンドを入力装置30から入力する。この中断
点設定コマンドには、ソースプログラム100上の情報
である行番号が含まれており、デバッグ装置20は、中
断点設定コマンドが入力されると、オブジェクトプログ
ラム200上の上記行番号に対応する部分に中断点を設
定する。
When the variable / constant information 410 and the line number / command correspondence information 420 are stored in the information storage area 27, the user of the debugging device 20 inputs a break point setting command for instructing the setting of a break point to the input device 30. Enter from. The break point setting command includes a line number which is information on the source program 100. When the break point setting command is input, the debugging device 20 corresponds to the line number on the object program 200. Set a break point on the part.

【0043】今、例えば、行番号「15」を含む中断点
設定コマンドが入力された場合を例にとってデバッグ装
置20の動作を説明すると次のようになる。
Now, the operation of the debugger 20 will be described as follows, taking as an example a case where a break point setting command including the line number "15" is input.

【0044】デバッグ装置20は、行番号「15」を含
む中断点設定コマンドが入力されると、中断点設定処理
手段21に制御を渡す。
When the break point setting command including the line number “15” is input, the debug device 20 passes control to the break point setting processing means 21.

【0045】中断点設定処理手段21は、制御を渡され
ると、行番号・命令対応情報420から行番号「15」
についての命令列情報324を取り出す(図3,S
1)。その後、中断点設定処理手段21は、命令列情報
324中の開始位置「00144」によって示されるオ
ブジェクトプログラム200中の命令「load x<
−c」を図13に示すように、命令保存領域422aを
作成して保存すると共に、保存命令情報422によって
命令保存領域422aと行番号「15」とを対応付ける
(S2)。
When the control is passed, the break point setting processing means 21 obtains the line number “15” from the line number / instruction correspondence information 420.
Is extracted from the instruction sequence information 324 (FIG. 3, S
1). Thereafter, the interruption point setting processing means 21 outputs the instruction “load x <” in the object program 200 indicated by the start position “00144” in the instruction sequence information 324.
As shown in FIG. 13, the instruction storage area 422a is created and stored as shown in FIG. 13, and the instruction storage area 422a is associated with the line number "15" by the storage instruction information 422 (S2).

【0046】その後、中断点設定処理手段21は、図1
4に示すように、中断点に位置する命令「load x
<−c」を、中断点の行番号「15」を含む中断点処理
呼び出し命令211と置き換え(S3)、前処理設定処
理手段21aを起動する(S4)。尚、前処理設定処理
手段21aを起動する際、中断点設定処理手段21は、
前処理設定処理手段21aに行番号「15」を渡す。
After that, the interruption point setting processing means 21
As shown in FIG. 4, the instruction “load x
<-C> is replaced with the interruption point processing call instruction 211 including the line number “15” of the interruption point (S3), and the preprocessing setting processing unit 21a is activated (S4). When starting the pre-processing setting processing means 21a, the interruption point setting processing means 21
The line number "15" is passed to the preprocessing setting processing means 21a.

【0047】前処理設定処理手段21aは、起動される
と、中断点及びその次の行の命令列情報324を行番号
・命令対応情報420から取り出す(図4,S11)。
この場合、中断点の行番号が「15」であるので、前処
理設定処理手段21aは、行番号「15」,「16」の
命令列情報324を取り出すことになる。尚、中断点の
次の行が存在しない場合(S12がNO)は、前処理設
定処理手段21aはその処理を終了する。
When activated, the preprocessing setting processing means 21a extracts the instruction string information 324 of the interruption point and the next line from the line number / instruction correspondence information 420 (FIG. 4, S11).
In this case, since the line number of the interruption point is “15”, the preprocessing setting processing unit 21a extracts the instruction sequence information 324 of the line numbers “15” and “16”. If there is no line next to the interruption point (S12: NO), the pre-processing setting processing means 21a ends the processing.

【0048】その後、前処理設定処理手段21aは、行
番号「15」,「16」の命令列情報324に基づい
て、ソースプログラム100上では中断点よりも後ろに
位置するが、オブジェクトプログラム200上ではそれ
と対応する命令が中断点よりも前に位置することになっ
た先行実行文が行番号「16」の行に存在するか否かを
判断する(S13)。この例の場合、行番号「16」の
命令列情報324によって示されるオブジェクトプログ
ラム200上のアドレスが行番号「15」の命令列情報
324によって示されるオブジェクトプログラム200
上のアドレスよりも前のアドレスであるので、前処理設
定処理手段21aは、行番号「16」の行中に先行実行
文が存在すると判断することになる。
After that, the pre-processing setting processing means 21a is located after the interruption point in the source program 100 on the basis of the instruction sequence information 324 of the line numbers "15" and "16". Then, it is determined whether or not the preceding execution statement in which the corresponding instruction is located before the interruption point exists in the line with the line number "16" (S13). In the case of this example, the address on the object program 200 indicated by the instruction sequence information 324 of the line number “16” is the object program 200 indicated by the instruction sequence information 324 of the line number “15”.
Since the address is before the above address, the preprocessing setting processing means 21a determines that the preceding execution statement exists in the line with the line number "16".

【0049】その後、前処理設定処理手段21aは、行
番号・命令対応情報420中の定義情報323によって
指し示される変数・定数情報410に基づいて行番号
「16」の行中の先行実行文が変数の値を定義している
か否かを判断する(S14)。この場合、行番号「1
6」の定義情報323は、変数・定数情報410中の変
数dを指し示しているので、前処理設定処理手段21a
は、変数dの値を定義していると判断することになる。
After that, the preprocessing setting processing means 21a determines that the preceding execution statement in the line with the line number “16” is based on the variable / constant information 410 indicated by the definition information 323 in the line number / instruction correspondence information 420. It is determined whether the value of the variable is defined (S14). In this case, the line number "1
Since the definition information 323 of “6” indicates the variable d in the variable / constant information 410, the preprocessing setting processing unit 21a
Determines that the value of the variable d is defined.

【0050】変数dの値を定義していると判断すると
(S14がYES)、前処理設定処理手段21aは、そ
の変数dの変数名を前処理挿入情報中に設定しているか
否かを判断する(S15)。この例の場合、設定してい
ないので、前処理設定処理手段21aは、図13に示す
ような、前処理挿入情報421−1aを作成すると共
に、その前処理挿入情報421−1aが中断点を行番号
「15」の行とした時のものであることを示すために、
行番号「15」の中断情報421によってポイントする
ようにする(S16)。また、S16に於いて、前処理
設定処理手段21aは、前処理挿入情報421−1a中
に、中断点情報として行番号「15」を、挿入位置情報
として行番号「16」を、定義情報として変数bを設定
する。尚、この例では、S14の判断結果がYESとな
るが、若し、S14の判断結果がNOとなった場合は、
前処理設定処理手段21aは、前処理挿入情報421−
1a中の定義情報に「定義される変数なし」を示す情報
を設定する以外、上記したS15と同様の処理を行う
(S19)。また、S15の判断結果がYESとなった
場合は、S20の処理を行う。
If it is determined that the value of the variable d is defined (S14: YES), the preprocessing setting processing means 21a determines whether the variable name of the variable d is set in the preprocessing insertion information. (S15). In this example, since no setting has been made, the preprocessing setting processing means 21a creates the preprocessing insertion information 421-1a as shown in FIG. In order to indicate that it is the case when the line with the line number "15" is used,
The interruption is pointed by the interruption information 421 of the line number "15" (S16). In S16, the pre-processing setting processing unit 21a sets the line number “15” as the interruption point information, the line number “16” as the insertion position information, and the definition information as the pre-processing insertion information 421-1a. Set the variable b. In this example, the determination result in S14 is YES, but if the determination result in S14 is NO,
The pre-processing setting processing means 21a outputs the pre-processing insertion information 421-
Except for setting information indicating "no variable defined" in the definition information in 1a, the same processing as S15 described above is performed (S19). If the result of the determination in S15 is YES, the process in S20 is performed.

【0051】その後、前処理設定処理手段21aは、行
番号「16」の行に存在する先行実行文(文番号「1
3」の文)に対応するオブジェクトプログラム200上
の命令の内の、先頭の命令「move b<−10」を
前処理挿入情報421−1a中に保存し(S17)、更
に、その命令を図14に示すように前処理呼び出し命令
212と置き換える(S18)。この前処理呼び出し命
令212には、それが中断点を行番号「15」の行にし
た時のものであることを示す情報及びそれと置き換えら
れた命令に対応する行の行番号「16」とが含まれてい
る。
Thereafter, the pre-processing setting processing means 21a outputs the preceding execution statement (sentence number "1") existing in the row of the row number "16".
3), the first instruction “move b <−10” among the instructions on the object program 200 corresponding to the instruction “move b <−10” is stored in the preprocessing insertion information 421-1a (S17). As shown in FIG. 14, it is replaced with the preprocessing call instruction 212 (S18). The preprocessing call instruction 212 includes information indicating that the interruption point was at the line of the line number “15” and the line number “16” of the line corresponding to the replaced instruction. include.

【0052】S18の処理が終了すると、前処理設定処
理手段21aは、行番号・命令対応情報420から次の
行(行番号「17」)の命令列情報324を取り出し
(S20)、前述したと同様の処理を行う(S13〜S
19)。そして、中断点よりも後ろの全ての行について
上述した処理を行うと(S21がNO)、前処理設定処
理手段21aはその処理を終了する。
When the processing of S18 is completed, the preprocessing setting processing means 21a extracts the instruction sequence information 324 of the next line (line number "17") from the line number / instruction correspondence information 420 (S20). The same processing is performed (S13 to S
19). Then, when the above-described processing is performed on all the rows after the interruption point (S21: NO), the preprocessing setting processing unit 21a ends the processing.

【0053】以上の処理が行われることにより、図14
に示すような中断点呼び出し命令211,前処理呼び出
し命令212を含むオブジェクトプログラム210が生
成される。
By performing the above processing, FIG.
An object program 210 including an interruption point calling instruction 211 and a preprocessing calling instruction 212 as shown in FIG.

【0054】図14に示すようなオブジェクトプログラ
ム210が生成されると、利用者は、中断点までの実行
を指示する実行コマンドを入力装置30から入力する。
When the object program 210 as shown in FIG. 14 is generated, the user inputs an execution command instructing execution up to the interruption point from the input device 30.

【0055】これに応答して、デバッグ装置20は、オ
ブジェクトプログラム210の実行を開始する。そし
て、アドレス「00140」に存在する前処理呼び出し
命令212を実行すると、デバッグ装置20は、前処理
手段25に制御を渡す。その際、デバッグ装置20は、
前処理呼び出し命令212に含まれている中断点の行番
号「15」と、置き換え前の命令と対応する行番号「1
6」とを渡す。
In response, the debugging device 20 starts executing the object program 210. Then, when the preprocessing call instruction 212 existing at the address “00140” is executed, the debugging device 20 passes control to the preprocessing unit 25. At that time, the debugging device 20
The line number “15” of the interruption point included in the preprocessing call instruction 212 and the line number “1” corresponding to the instruction before replacement
6 ".

【0056】これにより、前処理手段25は、行番号
「16」の行中に存在する先行実行文の内の1つ(文番
号「13」の文)を処理対象とし(図5,S31)、そ
の先行実行文で値が定義される変数の変数名bを求める
(S33)。尚、文番号「13」で値が定義される変数
の変数名は、行番号・命令対応情報420中の文番号
「13」に対応する定義情報323によって指し示され
ている。
As a result, the pre-processing means 25 processes one of the preceding execution statements (the statement with the statement number "13") existing in the line with the line number "16" (S31 in FIG. 5). Then, the variable name b of the variable whose value is defined by the preceding execution statement is obtained (S33). The variable name of the variable whose value is defined by the statement number “13” is indicated by the definition information 323 corresponding to the statement number “13” in the line number / instruction correspondence information 420.

【0057】その後、前処理手段25は、変数bについ
ての値保存情報であって、中断点を行番号「15」の行
にした時の値保存情報が存在するか否かを判断する(S
34)。この処理を詳しく説明すると次のようになる。
先ず、変数・定数情報410の変数bについての領域に
注目し、その領域の値保存情報へのポインタ412がn
ullになっているか否かを調べる。そして、null
になっている場合は、上記した値保存情報は存在しない
と判断する。また、nullになっていない場合は、値
保存情報へのポインタ412によって指し示される値保
存情報の中に、中断点を行番号「15」の行とした時の
前処理挿入情報421−1aを指し示すものがあるか否
かを調べる。そして、前処理挿入情報421−1aを指
し示すものが存在する場合には、上記した値保存情報が
存在すると判断し、前処理挿入情報421−1aを指し
示すものがない場合は、上記した値保存情報は存在しな
いと判断する。この例の場合、変数bについての値保存
情報へのポインタ412は、図12に示すようにnul
lになっているので、前処理手段25は、上記した値保
存情報は存在しないと判断することになる。
Thereafter, the preprocessing means 25 determines whether or not there is value storage information for the variable b, which is the value storage information when the interruption point is set to the line with the line number "15" (S).
34). This processing will be described in detail below.
First, focusing on the area for the variable b in the variable / constant information 410, the pointer 412 to the value storage information of that area is set to n.
Check whether it is set to "ull". And null
If it is determined that the value storage information described above does not exist. If the value is not null, the preprocessing insertion information 421-1a when the interruption point is set to the line with the line number "15" is included in the value storage information indicated by the pointer 412 to the value storage information. Check if there is something to point to. Then, when there is information indicating the pre-processing insertion information 421-1a, it is determined that the above-mentioned value storage information exists. When there is no information indicating the pre-processing insertion information 421-1a, the above-mentioned value storage information does not exist. Is determined not to exist. In this example, the pointer 412 to the value storage information for the variable b is null as shown in FIG.
Since the value is 1, the preprocessing means 25 determines that the above-mentioned value storage information does not exist.

【0058】S34で中断点を行番号「15」の行とし
た時の値保存情報が存在しないと判断すると、前処理手
段25は、図15に示すような保存領域700を作成
し、そこに文番号「15」の先行実行文が実行される直
前の変数bの値を保存し(S35)、更に、値保存情報
412aを作成して保存領域700と変数・定数情報4
10とを対応付ける(S36)。この例では、S34の
判断結果がNOとなり、上記した処理が行われるが、若
し、S34の判断結果がYESとなった場合は、既に作
成されている値保存情報によって指し示されている保存
領域に、先行実行文が実行される直前の変数bの値を保
存する(S37)。ここで、値保存情報412a中の中
断点情報412−1aは、前処理挿入情報421−1a
を指し示すものであり、保存領域情報412−2aは保
存領域700を指し示すものである。また、次の情報4
12−3aは、新たな中断点を設定した際に変数bにつ
いての新たな値保存情報を作成することが必要になった
場合、新たに作成した値保存情報を指し示すために使用
される。
If it is determined in S34 that there is no value storage information when the interruption point is set to the line with the line number "15", the preprocessing means 25 creates a storage area 700 as shown in FIG. The value of the variable “b” immediately before the execution of the preceding execution statement of the statement number “15” is stored (S35), and the value storage information 412a is created to store the storage area 700 and the variable / constant information 4
10 (S36). In this example, the result of the determination in S34 is NO and the above-described processing is performed. However, if the result of the determination in S34 is YES, the storage indicated by the value storage information already created is stored. The value of the variable b immediately before the execution of the preceding execution statement is stored in the area (S37). Here, the interruption point information 412-1a in the value storage information 412a is the preprocessing insertion information 421-1a.
And the storage area information 412-2a indicates the storage area 700. Also, the following information 4
12-3a is used to indicate the newly created value storage information when it is necessary to create new value storage information for the variable b when a new interruption point is set.

【0059】その後、前処理手段25は、行番号「1
6」の行中の他の未実行文を処理対象にしようとする
が、行番号「16」の行中には既に処理済みの文番号
「13」の未実行文しか存在しないので(S32)、そ
の処理を終了する。
Thereafter, the pre-processing means 25 sends the line number "1"
The other non-executed statement in the line of "6" is to be processed, but only the already-executed statement of statement number "13" exists in the line of line number "16" (S32). , The process ends.

【0060】前処理手段25の処理が終了すると、デバ
ッグ装置20は、前処理呼び出し命令212と置き換え
られた元の命令「move b<−10」を図13に示
す前処理挿入情報421−1aから取り出して実行す
る。その後、デバッグ装置20は、オブジェクトプログ
ラム210の実行を再開する。そして、中断点処理呼び
出し命令211を実行すると、中断点処理手段22を呼
び出す。その際、デバッグ装置20は、中断点処理呼び
出し命令211に含まれている中断点の行番号「15」
を中断点処理手段22に渡す。
When the processing of the preprocessing means 25 is completed, the debugger 20 outputs the original instruction “move b <−10” replaced with the preprocessing call instruction 212 from the preprocessing insertion information 421-1a shown in FIG. Take out and execute. Thereafter, the debugging device 20 resumes the execution of the object program 210. Then, when the interruption point processing call instruction 211 is executed, the interruption point processing means 22 is called. At this time, the debugging device 20 sets the line number “15” of the interruption point included in the interruption point processing call instruction 211.
To the interruption point processing means 22.

【0061】これにより、中断点処理手段22は、後処
理設定処理手段22aを起動し、中断点の行番号「1
5」を渡す(図6,S41)。
As a result, the interruption point processing means 22 activates the post-processing setting processing means 22a and sets the line number "1" of the interruption point.
5 "(FIG. 6, S41).

【0062】後処理設定処理手段22aは、起動される
と、中断点及びその1行前の命令列情報324を図13
に示した行番号・命令対応情報420から取り出す(図
7,S51)。この例の場合、中断点の行番号が「1
5」であるので、後処理設定処理手段22aは、行番号
「15」,「14」の命令列情報324を取り出すこと
になる。尚、中断点より1行前の行が存在しない場合
(S52)は、後処理設定処理手段22aは、中断点か
らの再実行が不要なことを表示した後(S65)、その
処理を終了する。
When the post-processing setting processing means 22a is started, the post-processing setting processing means 22a stores the interruption point and the instruction sequence information 324 one line before the interruption point in FIG.
(S51 in FIG. 7). In this example, the line number of the interruption point is “1”.
Since it is "5", the post-processing setting processing means 22a extracts the instruction sequence information 324 of the line numbers "15" and "14". If there is no line one line before the interruption point (S52), the post-processing setting processing unit 22a displays that re-execution from the interruption point is unnecessary (S65), and ends the processing. .

【0063】その後、後処理設定処理手段22aは、行
番号「15」,「14」の命令列情報324に基づい
て、ソースプログラム100上では中断点よりも前に位
置するが、オブジェクトプログラム200上ではそれと
対応する命令が中断点よりも後ろに位置することになっ
た未実行文が行番号「14」の行に存在するか否かを判
断する(S53)。この例の場合、未実行文は存在しな
いので、S53はNOとなり、後処理設定処理手段22
aは、更に、その1行前の行番号「13」の命令列情報
324を取り出し(S58)、それと行番号「15」の
命令列情報324とに基づいて前述したと同様の処理を
行う。以下同様の処理を繰り返し行うが、この例の場合
は、未実行文が存在しないので、先頭の行まで上述した
処理を行っても、S55に於いてフラグFは「1」に設
定されることはない。従って、S60の判断結果がYE
Sとなることはないので、後処理設定処理手段22a
は、中断点からの再実行が不要なことを表示した後(S
65)、その処理を終了することになる。
Thereafter, the post-processing setting processing means 22a is located before the interruption point in the source program 100 based on the instruction sequence information 324 of the line numbers "15" and "14", Then, it is determined whether or not an unexecuted statement in which the corresponding instruction is located after the interruption point exists in the line with the line number "14" (S53). In this case, since there is no unexecuted statement, S53 is NO, and the post-processing setting processing unit 22
Further, a extracts the instruction sequence information 324 of the line number “13” one line before that (S58), and performs the same processing as described above based on it and the instruction sequence information 324 of the line number “15”. Hereinafter, the same processing is repeated, but in this case, since there is no unexecuted statement, the flag F is set to “1” in S55 even if the above processing is performed up to the first line. There is no. Therefore, the determination result of S60 is YE
S, the post-processing setting processing means 22a
Indicates that re-execution from the interruption point is unnecessary (S
65), the process ends.

【0064】デバッグ装置20は、後処理設定処理手段
22aの処理が終了すると、中断点からの再実行が不要
なことが表示されているので、入力装置30からコマン
ドが入力されるのを待つ。
When the processing of the post-processing setting processing means 22a ends, the debug device 20 waits for a command to be input from the input device 30, since it is displayed that re-execution from the interruption point is unnecessary.

【0065】その後、利用者が、入力装置30から中断
点に於ける変数の値表示を指示する表示コマンドを入力
すると、デバッグ装置20は、情報表示処理手段23を
起動する。尚、表示コマンドには、値を表示させる変数
の変数名が含まれており、デバッグ装置20は、情報表
示処理手段23を起動した後、表示コマンドに含まれて
いる変数名を情報表示処理手段23に渡す。
Thereafter, when the user inputs a display command instructing the display of the value of the variable at the interruption point from the input device 30, the debug device 20 activates the information display processing means 23. Note that the display command includes the variable name of the variable whose value is to be displayed. After the information display processing means 23 is activated, the debug device 20 replaces the variable name included in the display command with the information display processing means. Pass to 23.

【0066】情報表示処理手段23は、デバッグ装置2
0から起動されると、図9の流れ図に示すように、値の
表示を指示された変数が、その値が保存されているもの
か否かを、図15に示す変数・定数情報410中の値保
存情報へのポインタ412に基づいて判断する(S8
1)。つまり、nullが設定されている場合には、保
存されていないと判断し、null以外の場合は保存さ
れていると判断する。
The information display processing means 23
When started from 0, as shown in the flowchart of FIG. 9, it is determined whether or not the variable instructed to display the value is a value stored in the variable / constant information 410 shown in FIG. The determination is made based on the pointer 412 to the value storage information (S8).
1). That is, if null is set, it is determined that the data is not stored, and if it is other than null, it is determined that the data is stored.

【0067】例えば、変数bの値を表示することを指示
する表示コマンドが入力された場合は、変数bについて
の値保存情報へのポインタ412が値保存情報412a
を指し示しており、S81の判断結果がYESとなるの
で、情報表示処理手段23は、保存領域700に保存さ
れている変数bの値を取り出し(S82)、その値を表
示装置31に表示することになる(S84)。尚、変数
bについての値保存情報へのポインタ412にnull
が設定されている場合は、変数bの現在値が格納されて
いるデータ領域620に格納されている値を表示装置3
1に表示することになる。
For example, when a display command instructing to display the value of the variable b is input, the pointer 412 to the value storage information for the variable b is changed to the value storage information 412a.
Since the result of the determination in S81 is YES, the information display processing means 23 extracts the value of the variable b stored in the storage area 700 (S82) and displays the value on the display device 31. (S84). Note that the pointer 412 to the value storage information of the variable b is null.
Is set, the value stored in the data area 620 storing the current value of the variable b is displayed on the display device 3.
1 will be displayed.

【0068】また、例えば、変数a,c,dの値を表示
することを指示する表示コマンドが入力された場合は、
値保存情報へのポインタ412がnullとなってお
り、S81の判断結果がNOとなるので、情報表示処理
手段23は、変数a,c,dの現在値が格納されている
データ領域610,630,640に格納されている値
を、中断点に於ける変数a,c,dの値として表示装置
に表示する(S83,S84)。
For example, when a display command instructing to display the values of variables a, c, and d is input,
Since the pointer 412 to the value storage information is null and the result of the determination in S81 is NO, the information display processing means 23 sets the data areas 610 and 630 in which the current values of the variables a, c and d are stored. , 640 are displayed on the display device as the values of the variables a, c, and d at the interruption point (S83, S84).

【0069】尚、行番号「15」に対応する中断点を解
除することが必要になった場合、利用者は、行番号「1
5」を含む中断点解除コマンドを入力装置30から入力
する。中断点解除コマンドが入力されると、中断点解除
処理手段24が起動される。これにより、中断点解除処
理手段24は、図14に示した前処理呼び出し命令21
2,中断点処理呼び出し命令211を元の命令に置き換
える処理,行番号「15」に関する中断点情報421を
削除する処理,行番号「15」に関する値保存情報への
ポインタ412を削除する処理を行う。
When it becomes necessary to release the interruption point corresponding to the line number “15”, the user sets the line number “1”.
An interruption point release command including “5” is input from the input device 30. When the break point release command is input, the break point release processing means 24 is activated. As a result, the interruption point release processing means 24 can execute the preprocessing call instruction 21 shown in FIG.
2. Processing for replacing the break point processing call instruction 211 with the original instruction, processing for deleting the break point information 421 related to the line number “15”, and processing for deleting the pointer 412 to the value storage information related to the line number “15” are performed. .

【0070】次に、ソースプログラム100の行番号
「16」の行を中断点とした場合の動作を説明する。
Next, the operation when the line of the line number "16" of the source program 100 is set as the interruption point will be described.

【0071】利用者は、行番号「16」の行を中断点と
する場合、入力装置30から行番号「16」を含む中断
点設定コマンドを入力する。
When the user wants to set the line having the line number “16” as the break point, the user inputs a break point setting command including the line number “16” from the input device 30.

【0072】デバッグ装置20は、行番号「16」を含
む中断点設定コマンドが入力されると、中断点設定処理
手段21に制御を渡す。
When the break point setting command including the line number “16” is input, the debug device 20 passes control to the break point setting processing means 21.

【0073】中断点設定処理手段21は、制御を渡され
ると、行番号・命令対応情報420から行番号「16」
についての命令列情報324を取り出す(図3,S
1)。その後、中断点設定処理手段21は、取り出した
命令列情報324中の開始位置「00140」によって
示されるオブジェクトプログラム200中の命令「mo
ve b<−10」を図16に示すように、命令保存領
域422bに保存すると共に、保存命令情報422によ
って命令保存領域422bと行番号「16」とを対応付
ける(S2)。
When the control is passed, the interruption point setting processing means 21 obtains the line number “16” from the line number / instruction correspondence information 420.
Is extracted from the instruction sequence information 324 (FIG. 3, S
1). Thereafter, the interruption point setting processing means 21 outputs the instruction “mo” in the object program 200 indicated by the start position “00140” in the extracted instruction sequence information 324.
As shown in FIG. 16, “ve b <−10” is stored in the instruction storage area 422b, and the instruction storage area 422b is associated with the line number “16” by the storage instruction information 422 (S2).

【0074】その後、中断点設定処理手段21は、図1
7に示すように、アドレス「00140」に位置する命
令「move b<−10」を、中断点の行番号「1
6」を含む中断点処理呼び出し命令221と置き換え
(S3)、前処理設定処理手段21aを起動する(S
4)。尚、前処理設定処理手段21aを起動する際、中
断点設定処理手段21は、前処理設定処理手段21aに
中断点の行番号「16」を渡す。
Thereafter, the interruption point setting processing means 21
As shown in FIG. 7, the instruction “move b <−10” located at the address “00140” is changed to the line number “1” of the interruption point.
6) (S3), and activates the preprocessing setting processing means 21a (S3).
4). When activating the pre-processing setting processing means 21a, the interruption point setting processing means 21 passes the line number "16" of the interruption point to the pre-processing setting processing means 21a.

【0075】前処理設定処理手段21aは、起動される
と、中断点及びその次の行の命令列情報324を行番号
・命令対応情報420から取り出す(図4,S11)。
この場合、中断点の行番号が「16」であるので、前処
理設定処理手段21aは、行番号「16」,「17」の
命令列情報324を取り出すことになる。
When activated, the preprocessing setting processing means 21a extracts the instruction sequence information 324 of the interruption point and the next line from the line number / instruction correspondence information 420 (FIG. 4, S11).
In this case, since the line number of the interruption point is “16”, the preprocessing setting processing unit 21a extracts the instruction sequence information 324 of the line numbers “16” and “17”.

【0076】その後、前処理設定処理手段21aは、行
番号「16」,「17」の命令列情報324に基づい
て、行番号「17」の行に先行実行文が存在するか否か
を判断する(S13)。図11に示したオブジェクトプ
ログラム200の場合、先行実行文は全く存在しないの
で、S13の判断結果は、NOとなる。
Thereafter, the preprocessing setting processing means 21a determines whether or not the preceding execution statement exists in the line with the line number "17" based on the instruction string information 324 with the line numbers "16" and "17". (S13). In the case of the object program 200 shown in FIG. 11, the preceding execution statement does not exist at all, so the determination result in S13 is NO.

【0077】その後、前処理設定処理手段21aは、処
理対象行を順次変更して先行実行文が存在するか否かを
判断するが(S20,S13)、上記したように、図1
1に示したオブジェクトプログラム200の場合は先行
実行文が全く存在しないので、S13の判断結果は常に
NOとなる。従って、最後の行まで処理を行っても(S
21がNO)、S14〜S19の処理が行われることは
ない。前処理設定処理手段21aに於いて、上述したよ
うな処理が行われることにより、図17に示すようなオ
ブジェクトプログラム220が生成される。
Thereafter, the preprocessing setting processing means 21a sequentially changes the processing target line to determine whether or not the preceding execution statement exists (S20, S13).
In the case of the object program 200 shown in FIG. 1, since there is no preceding execution statement, the judgment result in S13 is always NO. Therefore, even if the processing is performed up to the last line (S
21 is NO), the processes of S14 to S19 are not performed. By performing the above-described processing in the preprocessing setting processing unit 21a, an object program 220 as shown in FIG. 17 is generated.

【0078】図17に示すようなオブジェクトプログラ
ム220が生成されると、利用者は、中断点までの実行
を指示する実行コマンドを入力装置30から入力する。
When the object program 220 as shown in FIG. 17 is generated, the user inputs an execution command instructing execution up to the interruption point from the input device 30.

【0079】これに応答して、デバッグ装置20は、図
17に示したオブジェクトプログラム220の実行を開
始する。そして、アドレス「00140」に存在する中
断点処理呼び出し命令221を実行すると、デバッグ装
置20は、中断点処理手段22に呼び出す。その際、デ
バッグ装置20は、中断点処理呼び出し命令211に含
まれている中断点の行番号「16」を中断点処理手段2
2に渡す。
In response, debug device 20 starts executing object program 220 shown in FIG. Then, when the interruption point processing call instruction 221 existing at the address “00140” is executed, the debugging device 20 calls the interruption point processing means 22. At this time, the debugging device 20 sets the line number “16” of the interruption point included in the interruption point processing call instruction 211 to the interruption point processing unit 2.
Hand over to 2.

【0080】これにより、中断点処理手段22は、後処
理設定処理手段22aを起動し、中断点の行番号「1
6」を渡す(図6,S41)。
As a result, the interruption point processing means 22 activates the post-processing setting processing means 22a and sets the line number "1" of the interruption point.
6 "(FIG. 6, S41).

【0081】後処理設定処理手段22aは、起動される
と、中断点及びその1行前の命令列情報324を図16
に示した行番号・命令対応情報420から取り出す(図
7,S51)。この例の場合、中断点の行番号が「1
6」であるので、後処理設定処理手段22aは、行番号
「16」,「15」の命令列情報324を取り出すこと
になる。
When the post-processing setting processing means 22a is started, the post-processing setting processing means 22a stores the interruption point and the instruction sequence information 324 one line before the interruption point in FIG.
(S51 in FIG. 7). In this example, the line number of the interruption point is “1”.
6 ", the post-processing setting processing means 22a extracts the instruction sequence information 324 of the line numbers" 16 "and" 15 ".

【0082】その後、後処理設定処理手段22aは、行
番号「16」,「15」の命令列情報324に基づい
て、行番号「15」の行に未実行文が存在するか否かを
判断する(S53)。この例の場合、行番号「15」の
命令列情報によって示されるアドレスが、行番号「1
6」の命令列情報によって示されるアドレスよりも後で
あるので、後処理設定処理手段22aは、行番号「1
5」の行に未実行文が存在すると判断することになる。
Thereafter, the post-processing setting processing means 22a determines whether or not an unexecuted statement exists in the line with the line number "15" based on the instruction string information 324 with the line numbers "16" and "15". (S53). In the case of this example, the address indicated by the instruction string information of the line number “15” is the line number “1”.
Since the address is after the address indicated by the instruction string information of "6", the post-processing setting processing means 22a sets the line number "1"
It is determined that there is an unexecuted statement in the row of "5".

【0083】S53で未実行文が存在すると判断する
と、後処理設定処理手段22aは、行番号「15」の行
に存在する未実行文によって変数の値が定義されている
か否かを判断する(S54)。ここで、変数の値が定義
されているか否かは、行番号「15」の定義情報323
と変数・定数情報410とに基づいて判断するものであ
る。この例の場合、図12に示すように、行番号「1
5」の定義情報323は、変数a,dを指し示している
ので、後処理設定処理手段22aは、変数の値を定義し
ていると判断することになる。
If it is determined in S53 that an unexecuted statement exists, the post-processing setting processing means 22a determines whether the value of the variable is defined by the unexecuted statement existing in the line with the line number "15" (step S53). S54). Here, whether or not the value of the variable is defined is determined by the definition information 323 of the line number “15”.
The determination is made based on the variable / constant information 410. In this example, as shown in FIG.
Since the definition information 323 of "5" indicates the variables a and d, the post-processing setting processing means 22a determines that the value of the variable is defined.

【0084】その後、後処理設定処理手段22aは、フ
ラグFをオンにし(S55)、更に、図16に示すよう
な後処理挿入情報421−2bを作成する(S56)。
その際、後処理設定処理手段22aは、後処理挿入情報
421−2bが中断点を行番号「16」の行とした時の
ものであることを示すために、後処理挿入情報421−
2bを行番号「16」の中断情報421によってポイン
トするようにする。更に、後処理設定処理手段22a
は、後処理挿入情報421−2b中に、中断点情報とし
て行番号「16」を、挿入位置情報として行番号「1
5」を、定義情報として変数a,dを設定する。尚、こ
の例では、S54の判断結果がYESとなるが、若し、
S54の判断結果がNOとなった場合は、前処理設定処
理手段21aは、後処理挿入情報421−2b中の定義
情報に「定義される変数なし」を示す情報を設定する以
外、上記したS56と同様の処理を行う(S57)。
Thereafter, the post-processing setting processing means 22a turns on the flag F (S55), and creates post-processing insertion information 421-2b as shown in FIG. 16 (S56).
At this time, the post-processing setting processing unit 22a outputs the post-processing insertion information 421-b to indicate that the post-processing insertion information 421-2b is the one when the interruption point is the line with the line number "16".
2b is pointed by the interruption information 421 of the line number “16”. Further, the post-processing setting processing means 22a
In the post-processing insertion information 421-2b, the line number "16" is used as the break point information, and the line number "1" is used as the insertion position information.
5 "is set as variables a and d as definition information. In this example, although the determination result of S54 is YES,
If the determination result in S54 is NO, the pre-processing setting processing unit 21a sets the definition information in the post-processing insertion information 421-2b to information indicating "no variable defined", except for the above-described S56. The same processing is performed (S57).

【0085】以下、後処理設定処理手段22aは、先頭
行に至るまで(S59がNO)、上述した処理を繰り返
し行う。
Thereafter, the post-processing setting processing means 22a repeats the above-described processing until the first line is reached (S59: NO).

【0086】そして、先頭行まで上述した処理を行う
と、後処理設定処理手段22aは、図16に示すよう
に、デバッグ装置20の状態を中断点実行時の状態に戻
すために必要となる環境情報421−3bを作成すると
共に、この環境情報421−3bが中断点を行番号「1
6」の行にした時のものであることを示すために、環境
情報421−3bを行番号・命令対応情報420中の行
番号「16」の中断情報421によってポイントする
(S61)。尚、環境情報421−3bには、レジスタ
情報,スタック情報,変数の値等が含まれている。
When the above-described processing is performed up to the first line, the post-processing setting processing means 22a, as shown in FIG. 16, sets the environment necessary for returning the state of the debugging device 20 to the state at the time of execution of the interruption point. The information 421-3b is created, and the environment information 421-3b sets the interruption point to the line number "1".
In order to indicate that this is the case when the line is "6", the environment information 421-3b is pointed to by the interruption information 421 of the line number "16" in the line number / instruction correspondence information 420 (S61). The environment information 421-3b includes register information, stack information, values of variables, and the like.

【0087】その後、後処理設定処理手段22aは、最
後の未実行文に対応する命令の内の、最後の命令を後処
理挿入情報421−2b中に保存する(S62)。この
例の場合、行番号「15」の行に存在する最後の未実行
文は「a=c+1;」であり、この未実行文に対応する
最後の命令はアドレス「00150」に存在する「v.
store a(10)<−x」であるので、後処理設
定処理手段22aは、図16に示すように、上記した命
令を後処理挿入情報421−2b中に保存することにな
る。
Thereafter, the post-processing setting processing means 22a stores the last instruction among the instructions corresponding to the last unexecuted statement in the post-processing insertion information 421-2b (S62). In the case of this example, the last unexecuted statement existing on the line with the line number “15” is “a = c + 1;”, and the last instruction corresponding to this unexecuted statement is “v” existing at the address “00150”. .
Since store a (10) <− x ”, the post-processing setting processing unit 22a stores the above-described command in the post-processing insertion information 421-2b, as shown in FIG.

【0088】次いで、後処理設定処理手段22aは、上
記したアドレス「00150」に存在する命令を後処理
呼び出し命令222と置き換える(S63)。これによ
り、図18に示すようなオブジェクトプログラム230
が生成される。
Next, the post-processing setting processing means 22a replaces the instruction at the address "00150" with the post-processing call instruction 222 (S63). Thereby, the object program 230 as shown in FIG.
Is generated.

【0089】その後、後処理設定処理手段22aは、中
断点からの再実行が必要なことを表示し(S64)、そ
の処理を終了する。
Thereafter, the post-processing setting processing means 22a indicates that re-execution from the interruption point is necessary (S64), and ends the processing.

【0090】後処理設定処理手段22aの処理が終了す
ると、デバッグ装置20は、中断点からの再実行が必要
なことが表示されているので、図18に示すオブジェク
トプログラム230を中断点から再実行する。その際、
中断点処理呼び出し命令221は実行せず、その代わり
に図16に示す命令保存領域422bに保存されている
元の命令「move b<−10」を実行する。そし
て、後処理呼び出し命令222を実行すると、後処理手
段26を呼び出す。
When the processing of the post-processing setting processing means 22a is completed, it is displayed that the re-execution from the interruption point is necessary, and the debugger 20 re-executes the object program 230 shown in FIG. 18 from the interruption point. I do. that time,
The interruption point processing call instruction 221 is not executed, and instead, the original instruction “move b <−10” stored in the instruction storage area 422b shown in FIG. 16 is executed. When the post-processing call instruction 222 is executed, the post-processing means 26 is called.

【0091】後処理手段26は、デバッグ装置20から
呼び出されると、図16に示した後処理挿入情報421
−2bによって保存されている置き換え前の命令「v.
store a(10)<−x」を実行し(図8,S7
1)、次いで、後処理挿入情報421−2b中の定義情
報が示している変数名を全て取り出す(S72)。この
例の場合、変数名a,dが取り出される。
When the post-processing means 26 is called from the debugging device 20, the post-processing insertion information 421 shown in FIG.
-B, the instruction before replacement “v.
store a (10) <-x "(FIG. 8, S7).
1) Then, all the variable names indicated by the definition information in the post-processing insertion information 421-2b are extracted (S72). In the case of this example, the variable names a and d are extracted.

【0092】その後、後処理手段26は、図19に示す
ように、保存領域710,720を作成し、それぞれに
変数a,dの現在値を保存する(S73)。また、その
際、後処理手段26は、値保存情報412b,412c
を作成し、変数・定数情報410と、保存領域710,
720とを対応付ける。尚、値保存情報412b,41
2c中の中断点情報412−1b,412−1cは図1
6の後処理挿入情報421−2bを指し示すものであ
り、保存領域情報412−2b,412−2cはそれぞ
れ保存領域710,720を指し示すものであり、次の
情報412−3b,412−3cは次の値保存情報を指
し示すものである。
Thereafter, as shown in FIG. 19, the post-processing means 26 creates storage areas 710 and 720, and stores the current values of the variables a and d, respectively (S73). At this time, the post-processing means 26 stores the value storage information 412b, 412c.
Is created, and the variable / constant information 410 and the storage area 710,
720. The value storage information 412b, 41
The interruption point information 412-1b and 412-1c in FIG.
6, the post-processing insertion information 421-2b, the storage area information 412-2b, 412-2c indicates the storage area 710, 720, respectively, and the next information 412-3b, 412-3c indicates the next. Indicates the value storage information.

【0093】S73の処理が終了すると、後処理手段2
6は、図16に示した環境情報421−3bに基づい
て、デバッグ装置20の状態を中断点実行時の状態に戻
した後(S74)、環境情報421−3bを削除する
(S75)。
When the processing in S73 is completed, the post-processing means 2
6 returns the state of the debug device 20 to the state at the time of execution of the interruption point based on the environment information 421-3b shown in FIG. 16 (S74), and then deletes the environment information 421-3b (S75).

【0094】後処理手段26の処理が終了すると、デバ
ッグ装置20は、入力装置30からコマンドが入力され
るのを待つ。
When the processing of the post-processing means 26 is completed, the debugging device 20 waits for a command to be input from the input device 30.

【0095】デバッグ装置20が上記した状態の時に、
利用者が、入力装置30から値を表示させる変数の変数
名を含む表示コマンドを入力すると、デバッグ装置20
は、情報表示処理手段23を起動し、表示指示された変
数名を渡す。
When the debugging device 20 is in the state described above,
When a user inputs a display command including a variable name of a variable whose value is to be displayed from the input device 30, the debug device 20
Activates the information display processing means 23 and passes the variable name instructed to be displayed.

【0096】情報表示処理手段23は、デバッグ装置2
0から起動されると、図9の流れ図に示す処理を行う。
The information display processing means 23
When started from 0, the processing shown in the flowchart of FIG. 9 is performed.

【0097】今、例えば、変数aの値を表示することを
指示する表示コマンドが入力された場合、図19に示し
た変数・定数情報410の値保存情報へのポインタ41
2によって値保存情報412bが指し示されているので
(S81がYES)、情報表示処理手段23は、保存領
域710に保存されている変数aの値を表示装置31に
表示することになる(S82,S83)。
Now, for example, when a display command instructing to display the value of the variable a is input, the pointer 41 to the value storage information of the variable / constant information 410 shown in FIG.
Since the value storage information 412b is indicated by 2 (YES in S81), the information display processing unit 23 displays the value of the variable a stored in the storage area 710 on the display device 31 (S82). , S83).

【0098】また、例えば、変数bの値を表示すること
を指示する表示コマンドが入力された場合は、変数bに
ついての値保存情報へのポインタ412にはnullが
設定されているので(S81がNO)、情報表示処理手
段23は、データ領域620に格納されている変数bの
現在値を表示装置31に表示することになる(S8
3)。
Also, for example, when a display command instructing to display the value of the variable b is input, since null is set in the pointer 412 to the value storage information for the variable b (S81 (NO), the information display processing means 23 displays the current value of the variable b stored in the data area 620 on the display device 31 (S8).
3).

【0099】図20は本発明の他の実施例のブロック図
であり、コンパイラ10と、デバッグ装置20’と、入
力装置30と、表示装置31とから構成されている。本
実施例のデバッグ装置20’と図1に示したデバッグ装
置20との相違点は、中断点処理手段22,後処理設定
処理手段22a,情報表示処理手段23の代わりに中断
点処理手段22’,後処理設定処理手段22a’,情報
表示処理手段23’を備えた点である。尚、他の図1と
同一符号は同一部分を表している。
FIG. 20 is a block diagram of another embodiment of the present invention, which comprises a compiler 10, a debugging device 20 ', an input device 30, and a display device 31. The difference between the debugging device 20 'of this embodiment and the debugging device 20 shown in FIG. 1 is that the interruption point processing means 22, the post-processing setting processing means 22a, and the information display processing means 23 are used instead of the interruption point processing means 22'. , Post-processing setting processing means 22a 'and information display processing means 23'. The same reference numerals as in FIG. 1 represent the same parts.

【0100】中断点処理手段22’は、デバッグ装置2
0’が中断点に存在する中断点処理呼び出し命令を実行
した時にデバッグ装置20’によって呼び出されるもの
であり、デバッグ装置20’から呼び出された時、調査
済みフラグF1,後処理実行済みフラグF3をオフと
し、後処理フラグF2をオンとする機能を有する。ここ
で、調査済みフラグF1は、後処理設定処理手段22
a’に於いて、上記中断点に対する未実行文の有無が既
に調査されているか否かを示すものであり、オフは未調
査を、オンは調査済みを表す。後処理フラグF2は、上
記中断点に対する後処理手段26の処理が必要か否かを
示すものであり、オンは処理が必要なことを、オフは処
理が不要なことを表す。後処理実行済みフラグF3は、
上記中断点に対する後処理手段26による処理が既に実
行されているか否かを示すものであり、オフは未実行
を、オンは実行済みを表す。
The break point processing means 22 ′
0 'is called by the debug device 20' when executing a break point processing call instruction existing at a break point. When called from the debug device 20 ', the checked flag F1 and the post-process executed flag F3 are set. It has a function of turning off and turning on the post-processing flag F2. Here, the investigated flag F1 is determined by the post-processing setting processing unit 22.
At a ′, it indicates whether or not the presence or absence of an unexecuted statement at the above-mentioned interruption point has already been checked, where OFF indicates not checked and ON indicates checked. The post-processing flag F2 indicates whether or not the post-processing means 26 needs to process the interruption point. On indicates that processing is required, and off indicates that processing is not required. The post-processing executed flag F3 is
This indicates whether or not the processing by the post-processing means 26 for the interruption point has already been executed, where OFF indicates not executed and ON indicates executed.

【0101】情報表示処理手段23’は、変数名を含ん
だ表示コマンドが入力された時、後処理フラグF2の状
態に応じて下記a,bの処理を行う機能を有する。
The information display processing means 23 'has a function of performing the following processes a and b according to the state of the post-processing flag F2 when a display command including a variable name is input.

【0102】a.(後処理フラグF2=オフの場合) 表示指示された変数の値が前処理手段25によって保存
されている場合は保存されている値を表示し、保存され
ていない場合はその変数の現在値を表示する。
A. (When the post-processing flag F2 is OFF) If the value of the variable indicated for display is stored by the preprocessing means 25, the stored value is displayed. If not, the current value of the variable is displayed. indicate.

【0103】b.(後処理フラグF2=オンの場合) 後処理設定処理手段22a’に制御を渡し、その後、後
処理設定処理手段22a’から制御を戻されると、表示
指示された変数の値が前処理手段25或いは後処理手段
26によって保存されている場合は保存されている値を
表示し、保存されていない場合はその変数の現在値を表
示する。
B. (When the post-processing flag F2 is ON) When the control is passed to the post-processing setting processing means 22a 'and the control is returned from the post-processing setting processing means 22a', the value of the variable designated for display is changed to the pre-processing means 25a. Alternatively, if the variable is stored by the post-processing means 26, the stored value is displayed, and if not, the current value of the variable is displayed.

【0104】後処理設定処理手段22a’は、情報表示
処理手段23’から制御を渡された時、調査済みフラグ
F1の状態に応じて下記c,dの処理を行う機能を有す
る。
The post-processing setting processing means 22a 'has a function of performing the following processes c and d according to the state of the investigated flag F1 when the control is passed from the information display processing means 23'.

【0105】c.(調査済みフラグF1=オフの場合) 調査済みフラグF1がオフの場合は、先ず、現在の中断
点に対して未実行文が存在するか否かを調査した後、調
査済みフラグF1をオンとする。その後、変数の値を定
義している未実行文が存在するか否かを調べ、存在しな
い場合には、後処理フラグF2をオフにした後、情報表
示処理手段23’に対して表示指示を行う(尚、未実行
文が存在しなかった場合も同様の処理を行う)。また、
変数の値を定義している未実行文が存在する場合には、
後処理フラグF2をオンにして後処理手段26による処
理が必要なことを表示した後、命令の保存,置き換え等
を行い、更に、表示指示された変数が未実行文で値を定
義されているものか否かを調べる。そして、定義されて
いないものである場合は、情報表示処理手段23’に対
して表示指示を行い、定義されている場合は、後処理実
行済みフラグF3がオンになっているか否かを調べる。
後処理実行済みフラグF3がオンの場合は、情報表示処
理手段23’に対して表示指示を行い、オフの場合は、
デバッグ装置20’に制御を渡して後処理手段26を起
動させた後、後処理実行済みフラグF3をオンにし、更
に、情報表示処理手段23’に対して表示指示を行う。
C. (When Investigated Flag F1 = Off) When the investigated flag F1 is off, first, it is examined whether or not an unexecuted statement exists at the current interruption point, and then the investigated flag F1 is turned on. I do. Thereafter, it is checked whether there is an unexecuted statement defining the value of the variable. If not, the post-processing flag F2 is turned off, and a display instruction is given to the information display processing means 23 '. (The same processing is performed even when there is no unexecuted statement.) Also,
If there is an unexecuted statement that defines the value of the variable,
After the post-processing flag F2 is turned on to indicate that processing by the post-processing means 26 is necessary, instructions such as storage and replacement are performed, and further, the values of variables indicated for display are defined by unexecuted statements. Check if it is a thing. If it is not defined, it issues a display instruction to the information display processing means 23 ', and if it is defined, it checks whether the post-processing execution flag F3 is on.
When the post-processing execution completed flag F3 is on, a display instruction is issued to the information display processing means 23 '.
After the control is passed to the debug device 20 'to activate the post-processing means 26, the post-processing execution flag F3 is turned on, and a display instruction is given to the information display processing means 23'.

【0106】d.(調査済みフラグF1=オンの場合) 調査済みフラグF1がオンの場合は、先ず、表示コマン
ドによって値の表示を指示されている変数が未実行文で
値を定義されているものなのか否かを調べ、定義されて
いないものである場合には情報表示処理手段23’に対
して表示指示を行い、定義されているものである場合に
は後処理実行済みフラグF3がオンになっているか否か
を調べる。そして、後処理実行済みフラグF3がオンの
場合は、情報表示処理手段23’に対して表示指示を行
い、オフの場合は、デバッグ装置20’に制御を渡して
後処理手段26を起動させた後、後処理実行済みフラグ
F3をオンにし、更に、情報表示処理手段23’に対し
て表示指示を行う。
D. (When Investigated Flag F1 = On) When the investigated flag F1 is on, first, it is determined whether or not the variable whose value is instructed to be displayed by the display command has a value defined by an unexecuted statement. Is checked, and if it is not defined, a display instruction is issued to the information display processing means 23 ', and if it is defined, whether the post-processing execution flag F3 is on. Find out what. If the post-processing execution flag F3 is on, a display instruction is issued to the information display processing means 23 ', and if it is off, the control is passed to the debugging device 20' to activate the post-processing means 26. Thereafter, the post-processing executed flag F3 is turned on, and a display instruction is given to the information display processing means 23 '.

【0107】図21は中断点処理手段22’の処理例を
示す流れ図、図22は情報表示処理手段23’の処理例
を示す流れ図、図23,図24は後処理設定処理手段2
2a’の処理例を示す流れ図であり、以下各図を参照し
て本実施例の動作を説明する。
FIG. 21 is a flowchart showing a processing example of the interruption point processing means 22 ', FIG. 22 is a flowchart showing a processing example of the information display processing means 23', and FIGS. 23 and 24 are post-processing setting processing means 2
3 is a flowchart showing a processing example of 2a ', and the operation of this embodiment will be described below with reference to the drawings.

【0108】今、例えば、コンパイラ10が図10に示
すソースプログラム100を入力し、図11に示すオブ
ジェクトプログラム200と図2に示すデバッグ情報3
00とを出力したとする。
Now, for example, the compiler 10 inputs the source program 100 shown in FIG. 10 and the object program 200 shown in FIG. 11 and the debug information 3 shown in FIG.
00 is output.

【0109】デバッグ装置20’は、コンパイラ10か
らデバッグ情報300が出力されると、デバッグ装置2
0と同様に、情報記憶領域27に図12に示すような変
数・定数情報410及び行番号・命令対応情報420を
格納する。
When the debugging information 300 is output from the compiler 10, the debugging device 20 '
As in the case of 0, the variable / constant information 410 and the line number / instruction correspondence information 420 as shown in FIG.

【0110】その後、利用者が入力装置30から例えば
行番号「15」を含む中断点設定コマンドを入力する
と、中断点設定処理手段21,前処理設定処理手段21
aが前述したと同様の処理を行う。この結果、図14に
示すような、前処理呼び出し命令212,中断点処理呼
び出し命令211を含むオブジェクトプログラム210
が生成される。
Thereafter, when the user inputs a break point setting command including, for example, the line number "15" from the input device 30, the break point setting processing means 21, the pre-processing setting processing means 21
a performs the same processing as described above. As a result, as shown in FIG. 14, the object program 210 including the pre-processing call instruction 212 and the break point processing call instruction 211
Is generated.

【0111】次いで、利用者が中断点までの実行を指示
する実行コマンドを入力すると、デバッグ装置20’が
オブジェクトプログラム210の実行を開始する。そし
て、前処理呼び出し命令212を実行すると、前処理手
段25を呼び出す。
Next, when the user inputs an execution command instructing execution up to the interruption point, the debugging device 20 'starts execution of the object program 210. Then, when the preprocessing call instruction 212 is executed, the preprocessing means 25 is called.

【0112】前処理手段25は、デバッグ装置20’か
ら呼び出されると、前述したと同様の処理を行い、前処
理呼び出し命令212と置き換えられた元の命令「mo
veb<−10」が実行される直前の変数bの値を、図
15に示す保存領域700に格納する。
When called from the debugger 20 ′, the preprocessing means 25 performs the same processing as described above, and replaces the preprocessing call instruction 212 with the original instruction “mo”.
The value of the variable “b” immediately before the execution of “veb <−10” is stored in the storage area 700 shown in FIG.

【0113】その後、デバッグ装置20’が中断点処理
呼び出し命令211を実行すると、中断点処理手段2
2’が呼び出される。
Thereafter, when the debug device 20 'executes the break point processing call instruction 211, the break point processing means 2
2 'is called.

【0114】これにより、中断点処理手段22’は、図
21の流れ図に示すように、調査済みフラグF1,後処
理実行済みフラグF3をオフとし、後処理フラグF2を
オンとする(S91)。
As a result, the interruption point processing means 22 'turns off the investigated flag F1 and the post-processing execution flag F3 and turns on the post-processing flag F2 as shown in the flowchart of FIG. 21 (S91).

【0115】その後、利用者が入力装置30から値を表
示させる変数名を含む表示コマンドを入力すると、デバ
ッグ装置20’は情報表示処理手段23’に制御を渡
す。
After that, when the user inputs a display command including a variable name for displaying a value from the input device 30, the debug device 20 'transfers control to the information display processing means 23'.

【0116】これにより、情報表示処理手段23’は、
図22の流れ図に示すように、後処理フラグF2がオン
になっているか否かを調べる(S101)。この例で
は、後処理フラグF2はオンになっているので、情報表
示処理手段23’は、後処理設定処理手段22a’に制
御を渡す(S102)。
Thus, the information display processing means 23 '
As shown in the flowchart of FIG. 22, it is checked whether the post-processing flag F2 is turned on (S101). In this example, since the post-processing flag F2 is on, the information display processing unit 23 'passes control to the post-processing setting processing unit 22a' (S102).

【0117】後処理設定処理手段22a’は、制御を渡
されると、図23の流れ図に示すように、調査済みフラ
グF1がオンになっているか否かを調べる(S11
1)。この例では、調査済みフラグF1はオフになって
いるので、S111の判断結果はNOとなる。
Upon receiving the control, the post-processing setting processing means 22a 'checks whether or not the investigated flag F1 is turned on, as shown in the flowchart of FIG. 23 (S11).
1). In this example, since the investigated flag F1 is off, the determination result in S111 is NO.

【0118】これにより、後処理設定処理手段22a’
は、後処理設定処理手段22aと同様に、未実行文を探
し出し、探し出した未実行文についての後処理挿入情報
を作成する処理を行う(S112〜S119)。
As a result, the post-processing setting processing means 22a '
Performs a process of searching for an unexecuted statement and creating post-processing insertion information for the found unexecuted statement, similarly to the post-processing setting processing unit 22a (S112 to S119).

【0119】上記した処理が終了すると(S119がN
Oとなると)、後処理設定処理手段22a’は、調査済
みフラグF1をオンにして、未実行文の有無を既に調査
したことを表示する(S120)。
When the above processing is completed (S119 is N
(If it becomes O), the post-processing setting processing means 22a 'turns on the investigated flag F1 and displays that the existence of an unexecuted statement has already been investigated (S120).

【0120】その後、後処理設定処理手段22a’は、
後処理挿入情報に基づいて変数の値を定義している未実
行文が存在するかを調べる(S121)。この例の場合
(オブジェクトプログラムが図11に示すもので、中断
点を行番号「15」の行とした場合)は、未実行文が存
在しないので、S121の判断結果はNOとなる。
Thereafter, the post-processing setting processing means 22a '
It is checked whether there is an unexecuted statement defining the value of the variable based on the post-processing insertion information (S121). In the case of this example (when the object program is as shown in FIG. 11 and the interruption point is the line with the line number "15"), there is no unexecuted statement, so the determination result in S121 is NO.

【0121】これにより、後処理設定処理手段22a’
は、後処理フラグF2をオフにして後処理手段26によ
る処理が不要なことを表示した後、情報表示処理手段2
3’に対して表示指示を行う(S122,S123)。
As a result, the post-processing setting processing means 22a '
Turns off the post-processing flag F2 to indicate that processing by the post-processing means 26 is unnecessary, and then displays the information display processing means 2
A display instruction is issued to 3 ′ (S122, S123).

【0122】情報表示処理手段23’は、後処理設定処
理手段22a’から表示指示が与えられると、表示コマ
ンドによって表示指示された変数が前処理手段25によ
って値が保存されているものなのか否かを判断する(S
103)。そして、保存されていると判断した場合は、
保存領域に保存されている値を取り出して表示装置31
に表示し(S104,S106)、保存されていないと
判断した場合は、表示指示された変数の現在値を表示装
置31に表示する(S105,S106)。この例の場
合、前処理手段25によって値が保存されている変数
は、変数bだけであるので、入力された表示コマンドが
変数bの値の表示を指示するものである場合には、保存
領域700に保存されている値が表示され、それ以外の
場合には、変数の現在値が表示される。
When the display instruction is given from the post-processing setting processing means 22a ', the information display processing means 23' determines whether or not the variable indicated by the display command is the one whose value is stored by the pre-processing means 25. (S
103). And if you decide that it is saved,
The value stored in the storage area is retrieved and displayed on the display device 31.
(S104, S106), and when it is determined that the variable is not stored, the current value of the variable indicated to be displayed is displayed on the display device 31 (S105, S106). In this example, the variable whose value is stored by the preprocessing means 25 is only the variable b. Therefore, if the input display command instructs the display of the value of the variable b, the storage area The value stored in 700 is displayed; otherwise, the current value of the variable is displayed.

【0123】次に、ソースプログラム100の行番号
「16」の行を中断点とした場合の動作を説明する。
Next, the operation in the case where the line with the line number "16" of the source program 100 is set as the interruption point will be described.

【0124】利用者は、行番号「16」の行を中断点と
する場合、入力装置30から行番号「16」を含む中断
点設定コマンドを入力する。
When setting the line with the line number “16” as the break point, the user inputs a break point setting command including the line number “16” from the input device 30.

【0125】これにより、中断点設定処理手段21,前
処理設定処理手段21aが前述したと同様の処理を行
い、図17に示すような、中断点処理呼び出し命令22
1を含むオブジェクトプログラム220を作成する。
Thus, the interruption point setting processing means 21 and the pre-processing setting processing means 21a perform the same processing as described above, and as shown in FIG.
1 is created.

【0126】次いで、利用者が中断点までの実行を指示
する実行コマンドを入力すると、デバッグ装置20’が
オブジェクトプログラム220の実行を開始する。そし
て、中断点処理呼び出し命令221を実行すると、デバ
ッグ装置20’は、中断点処理手段22’を呼び出す。
Next, when the user inputs an execution command instructing execution up to the interruption point, the debugging device 20 'starts execution of the object program 220. When the interruption point processing call instruction 221 is executed, the debugging device 20 ′ calls the interruption point processing means 22 ′.

【0127】これにより、中断点処理手段22’は、前
述したと同様に、調査済みフラグF1,後処理実行済み
フラグF3をオフとし、後処理フラグF2をオンとする
(図21,S91)。
As a result, the interruption point processing means 22 'turns off the investigated flag F1 and the post-processing execution flag F3 and turns on the post-processing flag F2 in the same manner as described above (S91 in FIG. 21).

【0128】その後、利用者が入力装置30から値を表
示させる変数名を含む表示コマンドを入力すると、デバ
ッグ装置20’は情報表示処理手段23’に制御を渡
す。
Thereafter, when the user inputs a display command including a variable name for displaying a value from the input device 30, the debug device 20 'transfers control to the information display processing means 23'.

【0129】これにより、情報表示処理手段23’は、
図22の流れ図に示すように、後処理フラグF2がオン
になっているか否かを調べる(S101)。この例で
は、後処理フラグF2はオンになっているので、情報表
示処理手段23’は、後処理設定処理手段22a’に制
御を渡す(S102)。
As a result, the information display processing means 23 '
As shown in the flowchart of FIG. 22, it is checked whether the post-processing flag F2 is turned on (S101). In this example, since the post-processing flag F2 is on, the information display processing unit 23 'passes control to the post-processing setting processing unit 22a' (S102).

【0130】後処理設定処理手段22a’は、制御を渡
されると、図23の流れ図に示すように、調査済みフラ
グF1がオンになっているか否かを調べる(S11
1)。この例では、調査済みフラグF1はオフになって
いるので、S111の判断結果はNOとなる。
Upon receiving the control, the post-processing setting processing means 22a 'checks whether or not the investigated flag F1 is turned on, as shown in the flowchart of FIG. 23 (S11).
1). In this example, since the investigated flag F1 is off, the determination result in S111 is NO.

【0131】これにより、後処理設定処理手段22a’
は、前述したと同様に、未実行文を探し出し、探し出し
た未実行文についての後処理挿入情報を作成する処理を
行う(S112〜S119)。
Thus, the post-processing setting processing means 22a '
Performs a process of searching for an unexecuted statement and creating post-processing insertion information for the searched unexecuted statement, as described above (S112 to S119).

【0132】上記した処理が終了すると(S119がN
Oとなると)、後処理設定処理手段22a’は、調査済
みフラグF1をオンにして、未実行文の有無を既に調査
したことを表示する(S120)。
When the above processing is completed (S119 is N
(If it becomes O), the post-processing setting processing means 22a 'turns on the investigated flag F1 and displays that the existence of an unexecuted statement has already been investigated (S120).

【0133】その後、後処理設定処理手段22a’は、
後処理挿入情報に基づいて変数の値を定義している未実
行文が存在するかを調べる(S121)。この例の場合
は、変数の値を定義する未実行文(文番号「11」,
「12」の文)が存在するので、S121の判断結果は
YESとなる。
Thereafter, the post-processing setting processing means 22a '
It is checked whether there is an unexecuted statement defining the value of the variable based on the post-processing insertion information (S121). In the case of this example, an unexecuted statement (statement number “11”,
Since the statement “12” exists, the determination result in S121 is YES.

【0134】S121の判断結果がYESとなると、後
処理設定処理手段22a’は、後処理フラグF2をオン
にして後処理手段26による処理が必要なことを表示し
た後、図16に示すような環境情報421−3bを作成
する(S125)。
When the result of the determination in S121 is YES, the post-processing setting processing means 22a 'turns on the post-processing flag F2 to indicate that processing by the post-processing means 26 is necessary, and then returns to the state shown in FIG. The environment information 421-3b is created (S125).

【0135】その後、後処理設定処理手段22a’は、
最後の未実行文(文番号「12」の文」に対応する命令
の内の、最後の命令「v.store a(10)<−
x」を図16に後処理挿入情報421−2b中に保存し
(S126)、更に、図18に示すように、上記した命
令を後処理呼び出し命令222と置き換える(S12
7)。これにより、図18に示すようなオブジェクトプ
ログラム230が生成される。
Thereafter, the post-processing setting processing means 22a '
Of the instructions corresponding to the last unexecuted statement (statement of statement number “12”), the last instruction “v.store a (10) <−”
“x” is stored in the post-processing insertion information 421-2b in FIG. 16 (S126), and as shown in FIG. 18, the above-described command is replaced with the post-processing call command 222 (S12).
7). As a result, an object program 230 as shown in FIG. 18 is generated.

【0136】その後、後処理設定処理手段22a’は、
表示コマンドによって表示指示された変数が未実行文で
値を定義されているか否かを、図16に示した後処理挿
入情報421−2b中の定義情報に基づいて判断する
(図24,S128)。
Thereafter, the post-processing setting processing means 22a '
It is determined based on the definition information in the post-processing insertion information 421-2b shown in FIG. 16 whether the variable indicated by the display command is defined in the unexecuted statement (FIG. 24, S128). .

【0137】そして、定義されていないと判断した場合
は、情報表示処理手段23’に対して表示指示を行い
(図23,S123)、定義されていると判断した場合
は、後処理実行済みフラグF3がオンになっているか否
かを判断する(図24,S129)。
If it is determined that the information is not defined, a display instruction is issued to the information display processing means 23 '(FIG. 23, S123). If it is determined that the information is defined, the post-processing execution flag is set. It is determined whether or not F3 is turned on (FIG. 24, S129).

【0138】この例の場合、後処理実行済みフラグF3
はオフとなっているので、後処理設定処理手段22a’
は、デバッグ装置20’に制御を渡す(S130)。こ
れにより、デバッグ装置20’は、図18に示すオブジ
ェクトプログラム230を中断点から再実行する。その
際、中断点処理呼び出し命令221は実行せず、その代
わりに図16に示す命令保存領域422bに保存されて
いる元の命令「move b<−10」を実行する。そ
して、後処理呼び出し命令222を実行すると、後処理
手段26を呼び出す。
In the case of this example, the post-processing execution completed flag F3
Is off, the post-processing setting processing means 22a '
Passes control to the debugging device 20 '(S130). As a result, the debugging device 20 're-executes the object program 230 shown in FIG. 18 from the interruption point. At this time, the interruption point processing call instruction 221 is not executed, but the original instruction “move b <−10” stored in the instruction storage area 422b shown in FIG. 16 is executed instead. When the post-processing call instruction 222 is executed, the post-processing means 26 is called.

【0139】後処理手段26は、デバッグ装置20から
呼び出されると、前述したと同様の処理を行う(図8,
S71〜S75)。これにより、図19に示すように、
保存領域710,720に変数a,dの現在値が保存さ
れ、デバッグ装置20’の状態が中断点実行時の状態に
戻される。
When called from the debug device 20, the post-processing means 26 performs the same processing as described above (FIG. 8,
S71 to S75). Thereby, as shown in FIG.
The current values of the variables a and d are stored in the storage areas 710 and 720, and the state of the debugging device 20 'is returned to the state at the time of execution of the interruption point.

【0140】後処理手段26の処理が終了すると、デバ
ッグ装置20’は、後処理設定処理手段22a’に制御
を戻す。これにより、後処理設定処理手段22a’は後
処理実行済みフラグF3をオンにした後(図24,S1
31)、情報表示処理手段23’に対して表示指示を行
う。
When the processing of the post-processing means 26 is completed, the debugging device 20 'returns control to the post-processing setting processing means 22a'. As a result, the post-processing setting processing means 22a 'turns on the post-processing execution flag F3 (FIG. 24, S1
31) A display instruction is issued to the information display processing means 23 '.

【0141】情報表示処理手段23’は、後処理設定処
理手段22a’から表示指示が与えられると、表示コマ
ンドによって表示指示された変数が前処理手段25或い
は後処理手段26によって値が保存されているものなの
か否かを判断する(図22,S103)。そして、保存
されていると判断した場合は、保存領域に保存されてい
る値を取り出して表示装置31に表示し(S104,S
106)、保存されていないと判断した場合は、表示指
示された変数の現在値を表示装置31に表示する(S1
05,S106)。この例の場合、前処理手段25或い
は後処理手段26によって値が保存されている変数は、
変数aと変数dだけであるので、入力された表示コマン
ドが変数a或いは変数dの値の表示を指示するものであ
る場合には、保存領域710,720に保存されている
値が表示され、それ以外の場合には、変数の現在値が表
示される。
When the display instruction is given from the post-processing setting processing means 22a ', the information display processing means 23' saves the values of the variables indicated by the display command by the pre-processing means 25 or the post-processing means 26. It is determined whether or not it is present (FIG. 22, S103). When it is determined that the value is stored, the value stored in the storage area is extracted and displayed on the display device 31 (S104, S104).
106) If it is determined that the variable has not been saved, the current value of the variable indicated to be displayed is displayed on the display device 31 (S1).
05, S106). In this example, the variables whose values are stored by the pre-processing unit 25 or the post-processing unit 26 are:
Since there are only the variables a and d, if the input display command instructs the display of the values of the variables a and d, the values stored in the storage areas 710 and 720 are displayed, Otherwise, the current value of the variable is displayed.

【0142】その後、利用者が別の変数の値を表示させ
るために、表示コマンドを入力したとすると、情報表示
処理手段23’は、後処理フラグF2の状態に応じて前
述した処理を行う。その際、後処理フラグF2がオンで
あれば、情報表示処理手段23’は前述したと同様に、
後処理設定処理手段22a’に制御を渡すが(図22,
S102)、後処理設定処理手段22a’は、前述した
場合と異なり、調査済みフラグF1がオンになっている
ので(S111がYES)、図24に示すS128の処
理を行う。そして、S128の判断結果がYESの場合
は、S129の処理を行い、NOの場合は図23に示す
S123の処理を行う。
Thereafter, assuming that the user inputs a display command in order to display the value of another variable, the information display processing means 23 'performs the above-described processing according to the state of the post-processing flag F2. At this time, if the post-processing flag F2 is on, the information display processing means 23 'performs
Control is passed to the post-processing setting processing means 22a '(FIG. 22,
S102) Unlike the case described above, the post-processing setting processing means 22a 'performs the processing of S128 shown in FIG. 24 because the investigated flag F1 is on (S111 is YES). When the determination result in S128 is YES, the process in S129 is performed, and when the determination result is NO, the process in S123 shown in FIG. 23 is performed.

【0143】[0143]

【発明の効果】第1の効果は、コンパイラの最適化処理
によって命令の並べ替えが行われているオブジェクトプ
ログラムに中断点を設定して、中断点に於ける変数の値
を表示させた場合、命令の並べ替えが行われていない場
合と同じ値を表示させることができる点である。その理
由は、変数の値を定義する先行実行文が存在する場合に
は、先行実行文に対応するオブジェクトプログラム上の
命令が実行される直前の変数の値を保存する前処理手段
と、変数の値を定義する未実行文が存在する場合には、
最後の未実行文に対応する命令までオブジェクトプログ
ラムを実行した時の変数の値を保存する後処理手段とを
備えているからである。
The first effect is that, when an interruption point is set in an object program in which instructions are rearranged by the optimization processing of the compiler and the value of a variable at the interruption point is displayed, The point is that the same value as when the instructions are not rearranged can be displayed. The reason is that, when there is a preceding execution statement that defines the value of the variable, a preprocessing means for storing the value of the variable immediately before the instruction on the object program corresponding to the preceding execution statement is executed, If there is an unexecuted statement that defines the value,
This is because there is provided post-processing means for storing the values of variables when the object program is executed up to the instruction corresponding to the last unexecuted statement.

【0144】第2の効果はデバッグ処理を高速化するこ
とができる点である。その理由は、値を表示する変数の
変数名を含んだ表示コマンドが入力された時、後処理設
定処理手段が、ソースプログラム上では中断点よりも前
に位置するが、オブジェクトプログラム上ではコンパイ
ラによる命令の並べ替えによってそれと対応する命令が
中断点よりも後ろに位置することになった未実行文であ
って且つ変数の値を定義している未実行文をデバッグ情
報に基づいて探し、変数の値を定義している未実行文を
探し出すことができなかった場合は、情報表示処理手段
に対して表示指示を行い、探し出すことができた場合
は、探し出した未実行文によって値が定義されている変
数が表示コマンドによって値を表示することが指示され
ている変数であるか否かを調べ、表示することが指示さ
れている変数でない場合は、情報表示処理手段に対して
表示指示を行い、表示することが指示されている変数で
ある場合は、後処理手段に対して動作指示を行うと共
に、後処理手段の処理が終了した後、情報表示処理手段
に対して表示指示を行うからである。つまり、表示コマ
ンドによって表示指示された変数の値が未実行文によっ
て定義されていない場合は、後処理手段による処理が不
要となるので、その分、処理を高速化できる。
The second effect is that the debugging process can be speeded up. When the reason is, the display command including the variable name of the variable that displays the value is entered, post-processing settings
The fixed processing means is on the source program before the break point
But it is compiled on the object program.
By reordering the instructions by
An unexecuted statement that is located after the break point
And the unexecuted statement that defines the value of the variable
Statement, and finds the unexecuted statement that defines the value of the variable.
If not found, information display processing means
When the display instruction is given to
Is the variable whose value is defined by the found unexecuted statement.
The number is instructed to display the value by the display command
To see if the variable is
If it is not a variable that has been
Perform a display instruction and use the variable that is instructed to display.
In some cases, an operation instruction is issued to the post-processing unit.
After the processing of the post-processing means is completed, the information display processing means
This is because a display instruction is issued to the user . That is, when the value of the variable indicated by the display command is not defined by the unexecuted statement, the processing by the post-processing unit is unnecessary, and the processing can be accelerated accordingly.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施例のブロック図である。FIG. 1 is a block diagram of one embodiment of the present invention.

【図2】デバッグ情報300の内容例を示す図である。FIG. 2 is a diagram showing a content example of debug information 300;

【図3】中断点設定処理手段21の処理例を示す流れ図
である。
FIG. 3 is a flowchart showing a processing example of a break point setting processing means 21;

【図4】前処理設定処理手段21aの処理例を示す流れ
図である。
FIG. 4 is a flowchart showing a processing example of a preprocessing setting processing means 21a.

【図5】前処理手段25の処理例を示す流れ図である。FIG. 5 is a flowchart illustrating a processing example of a preprocessing unit 25;

【図6】中断点処理手段22の処理例を示す流れ図であ
る。
FIG. 6 is a flowchart showing a processing example of an interruption point processing means 22;

【図7】後処理設定処理手段22aの処理例を示す流れ
図である。
FIG. 7 is a flowchart illustrating a processing example of a post-processing setting processing unit 22a.

【図8】後処理手段26の処理例を示す流れ図である。FIG. 8 is a flowchart showing a processing example of a post-processing means 26;

【図9】情報表示処理手段23の処理例を示す流れ図で
ある。
FIG. 9 is a flowchart showing a processing example of the information display processing means 23;

【図10】ソースプログラム100の一例を示す図であ
る。
FIG. 10 is a diagram showing an example of a source program 100.

【図11】オブジェクトプログラム200の一例を示す
図である。
FIG. 11 is a diagram showing an example of an object program 200.

【図12】変数・定数情報410及び行番号・命令対応
情報420の内容例を示す図である。
FIG. 12 is a diagram showing an example of contents of variable / constant information 410 and line number / instruction correspondence information 420;

【図13】中断点設定処理手段21,前処理設定処理手
段21aの処理を説明するための図である。
FIG. 13 is a diagram for explaining processing of an interruption point setting processing means 21 and a preprocessing setting processing means 21a.

【図14】中断点設定処理手段21,前処理設定処理手
段21aの処理を説明するための図である。
FIG. 14 is a diagram for explaining processing of a break point setting processing means 21 and a preprocessing setting processing means 21a.

【図15】前処理手段25の処理を説明するための図で
ある。
FIG. 15 is a diagram for explaining processing of a preprocessing unit 25;

【図16】後処理設定処理手段22aの処理を説明する
ための図である。
FIG. 16 is a diagram for explaining processing of a post-processing setting processing unit 22a.

【図17】中断点設定処理手段21,前処理設定処理手
段21aの処理を説明するための図である。
FIG. 17 is a diagram for explaining processing of an interruption point setting processing means 21 and a preprocessing setting processing means 21a.

【図18】後処理設定処理手段22aの処理を説明する
ための図である。
FIG. 18 is a diagram for explaining processing of a post-processing setting processing unit 22a.

【図19】後処理手段26の処理を説明するための図で
ある。
FIG. 19 is a view for explaining the processing of the post-processing means 26;

【図20】本発明の他の実施例のブロック図である。FIG. 20 is a block diagram of another embodiment of the present invention.

【図21】中断点処理手段22’の処理例を示す流れ図
である。
FIG. 21 is a flowchart showing a processing example of an interruption point processing means 22 ′.

【図22】情報表示処理手段23’の処理例を示す流れ
図である。
FIG. 22 is a flowchart showing a processing example of an information display processing means 23 ′.

【図23】後処理設定処理手段22a’の処理例を示す
流れ図である。
FIG. 23 is a flowchart showing a processing example of a post-processing setting processing means 22a ′.

【図24】後処理設定処理手段22a’の処理例を示す
流れ図である。
FIG. 24 is a flowchart showing a processing example of a post-processing setting processing means 22a ′.

【符号の説明】[Explanation of symbols]

10…コンパイラ 20,20’…デバッグ装置 21…中断点設定処理手段 21a…前処理設定処理手段 22,22’…中断点処理手段 22a,22a’…後処理設定処理手段 23,23’…情報表示処理手段 24…中断点解除処理手段 25…前処理手段 26…後処理手段 27…情報記憶領域 30…入力装置 31…表示装置 100…ソースプログラム 200…オブジェクトプログラム 300…デバッグ情報 310…変数・定数情報 320…行番号・命令対応情報 410…変数・定数情報 420…行番号・命令対応情報 10 Compiler 20, 20 '... Debugging device 21 ... Break point setting processing means 21a ... Pre-processing setting processing means 22, 22' ... Break point processing means 22a, 22a '... Post-processing setting processing means 23, 23' ... Information display Processing means 24 ... Interruption point release processing means 25 ... Pre-processing means 26 ... Post-processing means 27 ... Information storage area 30 ... Input device 31 ... Display device 100 ... Source program 200 ... Object program 300 ... Debug information 310 ... Variable / constant information 320: Line number / instruction correspondence information 410: Variable / constant information 420 ... Line number / instruction correspondence information

Claims (2)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 ソースプログラムをコンパイラでコンパ
イルすることにより生成されたオブジェクトプログラム
をデバッグするデバッグ装置に於いて、前記コンパイラが、前記ソースプログラムに存在する変
数の名前と、前記ソースプログラムに存在する各行の行
番号と、前記各行に存在する文の文番号と、前記各文に
対応する前記オブジェクトプログラム上の命令のアドレ
スとを含むデバッグ情報を生成する構成を有し、且つ、 前記ソースプログラムの行番号を含んだ中断点設定コマ
ンドが入力された時、前記オブジェクトプログラム上の
前記行番号に対応する部分に中断点を設定する中断点設
定処理手段と、 前記中断点設定コマンドの入力時、前記ソースプログラ
ム上では前記中断点よりも後ろに位置するが、前記オブ
ジェクトプログラム上では前記コンパイラによる命令の
並べ替えによってそれと対応する命令が前記中断点より
も前に位置することになった先行実行文であって且つ変
数の値を定義している先行実行文を前記デバッグ情報に
基づいて探し出す前処理設定処理手段と、 該前処理設定処理手段が探し出した先行実行文によって
値が定義される変数の、前記先行実行文に対応する命令
が実行される直前の値を保存する前処理手段と、該前処理手段の処理が終了した後、 前記ソースプログラ
ム上では前記中断点よりも前に位置するが、前記オブジ
ェクトプログラム上では前記コンパイラによる命令の並
べ替えによってそれと対応する命令が前記中断点よりも
後ろに位置することになった未実行文であって且つ変数
の値を定義している未実行文を前記デバッグ情報に基づ
いて全て探し出す後処理設定処理手段と、 前記オブジェクトプログラムを前記中断点から前記後処
理設定処理手段によって探し出された未実行文の内の最
後の未実行文に対応する命令まで実行した時の、前記後
処理設定処理手段によって探し出された未実行文が値を
定義している変数の値を保存する後処理手段と、 変数名を含んだ表示コマンドが入力された時、前記変数
名の変数の値が前記前処理手段或いは前記後処理手段に
よって保存されている場合は、前記前処理手段或いは前
記後処理手段によって保存されている前記変数名の変数
の値を表示し、保存されていない場合は、前記変数名の
変数の現在値を表示する情報表示処理手段とを備えたこ
とを特徴とするデバッグ装置。
1. A source program compiled by a compiler.
Object program generated by
In a debugging device for debuggingIf the compiler finds a change in the source program
A number of names and a line for each line present in the source program
Number, the statement number of the statement present on each line, and
Address of the corresponding instruction on the object program
And a configuration for generating debug information including  Interrupt point setting frame including the line number of the source program
Command is input, the object program
Break point setting for setting a break point in the portion corresponding to the line number
Processing means, when the interruption point setting command is input, the source program
Is located after the interruption point on the
On the project program
The instruction corresponding to the rearrangement is
Is also the preceding executable statement that was positioned before and
Predecessor statement that defines the value of the numberIn the debug information
On the basis ofThe pre-processing setting processing means to be searched for, and the preceding execution statement
The instruction corresponding to the preceding executable statement of the variable whose value is defined
Preprocessing means for storing a value immediately before the execution ofAfter the processing of the preprocessing means is completed, The source program
Position before the interruption point on the
On the project program,
By replacement, the corresponding instruction is
An unexecuted statement that was positioned behind and a variable
Statement that defines the value ofBased on the debug information
StayA post-processing setting processing means for searching for all the object programs;
Of the unexecuted statements found by the
After executing the instruction corresponding to the unexecuted statement,
The unexecuted statement found by the processing setting processing means
A post-processing means for storing the value of the variable being defined; and when the display command including the variable name is input, the variable
The value of the name variable is sent to the pre-processing unit or the post-processing unit.
Therefore, if it is stored, the pre-processing means or
The variable of the variable name stored by the post-processing means
Is displayed, and if not saved, the
Information display processing means for displaying the current value of the variable.
And a debugging device.
【請求項2】 ソースプログラムをコンパイラでコンパ
イルすることにより生成されたオブジェクトプログラム
をデバッグするデバッグ装置に於いて、前記コンパイラが、前記ソースプログラムに存在する変
数の名前と、前記ソースプログラムに存在する各行の行
番号と、前記各行に存在する文の文番号と、前記各文に
対応する前記オブジェクトプログラム上の命令のアドレ
スとを含むデバッグ情報を生成する構成を有し、且つ、 前記ソースプログラムの行番号を含んだ中断点設定コマ
ンドが入力された時、前記オブジェクトプログラム上の
前記行番号に対応する部分に中断点を設定する中断点設
定処理手段と、 前記中断点設定コマンドの入力時、前記ソースプログラ
ム上では前記中断点よりも後ろに位置するが、前記オブ
ジェクトプログラム上では前記コンパイラによる命令の
並べ替えによってそれと対応する命令が前記中断点より
も前に位置することになった先行実行文であって且つ変
数の値を定義している先行実行文を前記デバッグ情報に
基づいて探し出す前処理設定処理手段と、 該前処理設定処理手段が探し出した先行実行文によって
値が定義される変数の、前記先行実行文に対応する命令
が実行される直前の値を保存する前処理手段と、該前処理手段の処理が終了した後に、値を表示する変数
の変数名を含んだ表示コマンドが入力された時、 前記ソ
ースプログラム上では前記中断点よりも前に位置する
が、前記オブジェクトプログラム上では前記コンパイラ
による命令の並べ替えによってそれと対応する命令が前
記中断点よりも後ろに位置することになった未実行文で
あって且つ変数の値を定義している未実行文を前記デバ
ッグ情報に基づいて探し、変数の値を定義している未実
行文を探し出すことができなかった場合は、情報表示処
理手段に対して表示指示を行い、探し出すことができた
場合は、探し出した未実行文によって値が定義されてい
る変数が前記表示コマンドによって値を表示することが
指示されている変数であるか否かを調べ、表示するこ
が指示されている変数でない場合は、前記情報表示処理
手段に対して表示指示を行い、表示することが指示され
ている変数である場合は、後処理手段に対して動作指示
を行うと共に、該後処理手段の処理が終了した後、前記
情報表示処理手段に対して表示指示を行う後処理設定処
理手段と、該後処理設定処理手段によって動作指示が行われた時、
記オブジェクトプログラムを前記中断点から最後の未
実行文に対応する命令まで実行した時の、前記後処理設
定処理手段によって探し出された未実行文によって値が
定義されている変数の値を保存する後処理手段と、前記後処理設定処理手段によって表示指示が行われた
時、前記表示コマンドに含まれている 変数名の変数の値
が前記前処理手段或いは前記後処理手段によって保存さ
れている場合は、前記前処理手段或いは前記後処理手段
によって保存されている前記変数名の変数の値を表示
し、保存されていない場合は、前記変数名の変数の現在
値を表示する情報表示処理手段とを備えたことを特徴と
するデバッグ装置。
2. The source program is compiled by a compiler.
Object program generated by
In a debugging device for debuggingIf the compiler finds a change in the source program
A number of names and a line for each line present in the source program
Number, the statement number of the statement present on each line, and
Address of the corresponding instruction on the object program
And a configuration for generating debug information including  Interrupt point setting frame including the line number of the source program
Command is input, the object program
Break point setting for setting a break point in the portion corresponding to the line number
Processing means, when the interruption point setting command is input, the source program
Is located after the interruption point on the
On the project program
The instruction corresponding to the rearrangement is
Is also the preceding executable statement that was positioned before and
Predecessor statement that defines the value of the numberIn the debug information
On the basis ofThe pre-processing setting processing means to be searched for, and the preceding execution statement
The instruction corresponding to the preceding executable statement of the variable whose value is defined
Preprocessing means for storing a value immediately before the execution ofA variable for displaying a value after the processing of the preprocessing means is completed.
When a display command containing the variable name of Said
On the source program before the break point
However, on the object program, the compiler
Instruction is sorted by
An unexecuted statement that is located after the break point
An unexecuted statement that defines the value of a variableThe device
Undefined defining the value of a variable based on search information
If the line sentence could not be found, the information display
Was instructed to display information and found it.
If the value is defined by the unexecuted statement
Variable displays the value by the display command.
Check whether it is the indicated variable and display it. When
If is not the designated variable, the information display process
The display instruction is given to the means, and the display is instructed.
If the variable is
And after the processing of the post-processing means is completed,
Instruct display to information display processing meansPost-processing setting processing
Means,When an operation instruction is given by the post-processing setting processing means,
Previous Is the object programBestNot yet
The post-processing setting when the instruction corresponding to the executable statement is executed
The value is determined by the unexecuted statement found by the
Post-processing means for storing the values of defined variables;A display instruction is given by the post-processing setting processing means.
When included in the display command Variable value of variable name
Is stored by the pre-processing means or the post-processing means.
The pre-processing means or the post-processing means
Displays the value of the variable with the variable name stored by
And if not saved, the current
Information display processing means for displaying a value.
Debugging device.
JP08302527A 1996-10-28 1996-10-28 Debug device Expired - Fee Related JP3139393B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08302527A JP3139393B2 (en) 1996-10-28 1996-10-28 Debug device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08302527A JP3139393B2 (en) 1996-10-28 1996-10-28 Debug device

Publications (2)

Publication Number Publication Date
JPH10133911A JPH10133911A (en) 1998-05-22
JP3139393B2 true JP3139393B2 (en) 2001-02-26

Family

ID=17910045

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08302527A Expired - Fee Related JP3139393B2 (en) 1996-10-28 1996-10-28 Debug device

Country Status (1)

Country Link
JP (1) JP3139393B2 (en)

Also Published As

Publication number Publication date
JPH10133911A (en) 1998-05-22

Similar Documents

Publication Publication Date Title
US7178135B2 (en) Scope-based breakpoint selection and operation
US7080360B2 (en) Breakpoint safety net
JP4328328B2 (en) Software development tool program
JP3139393B2 (en) Debug device
US6606616B1 (en) Modified action rules
JPH0934698A (en) Software generating method and software developing and supporting method
JP2001318796A (en) Program execution control method using internal and external event driven system, recording medium and program preparation support system
JPH02220145A (en) Program tracing system
JPH06161773A (en) Generating device for parallel processing program
JP2827724B2 (en) Program debug processing method
JP2002073347A (en) Exception handling method and compiler
US7627859B2 (en) Method for configuring non-script language library files to be run as scripts
Robbins Bash quick reference
JP3012618B1 (en) Debugging method of inspected program and its debugging method
JPH08314724A (en) Object-oriented program editing device
JPH11161500A (en) Method for generating object program for reforming execution time dependent analysis
JPH0267628A (en) Command start system
JPH086815A (en) Debugging device, compiler, and statistical analyzing device
JPH01111236A (en) Computer
JPH06175862A (en) Electronic computer
JPH0721014A (en) Program link system
JPH0283634A (en) Program debugging system
JPS6227822A (en) Backtrack control system
JPH09198246A (en) Method for analyzing function calling status
JPH05216719A (en) Breaking method for debugger and debugger

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees