JP2002073371A - Program debugging method - Google Patents

Program debugging method

Info

Publication number
JP2002073371A
JP2002073371A JP2000267430A JP2000267430A JP2002073371A JP 2002073371 A JP2002073371 A JP 2002073371A JP 2000267430 A JP2000267430 A JP 2000267430A JP 2000267430 A JP2000267430 A JP 2000267430A JP 2002073371 A JP2002073371 A JP 2002073371A
Authority
JP
Japan
Prior art keywords
function
address information
expanded
expansion
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000267430A
Other languages
Japanese (ja)
Inventor
Tatsunori Shiba
龍則 柴
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.)
Renesas Micro Systems Co Ltd
Original Assignee
Renesas Micro Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Micro Systems Co Ltd filed Critical Renesas Micro Systems Co Ltd
Priority to JP2000267430A priority Critical patent/JP2002073371A/en
Publication of JP2002073371A publication Critical patent/JP2002073371A/en
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To enable to debug an expanded function in a source level when a function is expanded in plural locations through optimization of a program. SOLUTION: A compiler 10 generates a leading address information table that is used for expanded functions and contains each leading address of functions expanded in plural locations through optimization of a program, a line address information table that consists of relative address per source statement line and has function names and table pointers of leading address information of expanded functions in a header, and if a function is expanded in plural locations, generates the line address information that consists of one address per source statement line and has table pointers to expanded function flags and line address information for expanded function, and a debugger 11 debugs a function expanded in lural locations in source level based on the above leading address information for expanded function, the line address information for expanded function and the line address information.

Description

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

【0001】[0001]

【発明の属する技術分野】この発明は、コンパイラおよ
びデバッガで構成されるプログラムデバッグ方式に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a program debugging system including a compiler and a debugger.

【0002】[0002]

【従来の技術】一般に、プログラムのデバッグを行う場
合においては、ソースプログラムをソースレベルでデバ
ッグする。ソースレベルのデバッグを行うために、コン
パイラはデバッグ情報を生成する。デバッグ情報には、
プログラムのソース行1行に、コードのアドレスが1つ
対応した行アドレス情報がある。行アドレス情報に登録
されていないソース行が存在する場合、登録されていな
いソース行は、ソースレベルでのデバッグが行えなくな
り、デバッグを行うには、アセンブラコードレベルでの
デバッグ方式で行うしかない。
2. Description of the Related Art Generally, when debugging a program, a source program is debugged at a source level. To perform source-level debugging, the compiler generates debugging information. Debug information includes
One source line of the program has line address information corresponding to one code address. If there is a source line that is not registered in the line address information, the unregistered source line cannot be debugged at the source level, and the only way to perform debugging is to use the debugging method at the assembler code level.

【0003】アセンブラコードレベルでのデバッグ方式
では、レジスタ管理、メモリ管理、スタックメモリ動作
管理、アセンブラコード動作管理等の少なくとも4つの
項目をユーザ自身が管理する必要があり、1デバッグ当
たり1項目に10時間要すると見積もると、40時間程
度必要とし、デバッグに要する時間が多くかかり、ユー
ザの負担となっていた。
In the debugging system at the assembler code level, it is necessary for the user to manage at least four items such as register management, memory management, stack memory operation management, and assembler code operation management. When it is estimated that it takes time, it takes about 40 hours, and it takes much time for debugging, which is a burden on the user.

【0004】図7、8、9、10、11、12を使っ
て、プログラムデバッグ方式の従来技術(特開平10−
289110)の動作について説明をする。なお、プロ
グラム変換装置はコンパイラ、デバッグ装置はデバッガ
と言い換えて説明する。
[0004] Referring to FIGS. 7, 8, 9, 10, 11, and 12, a conventional program debugging method (Japanese Patent Laid-Open No.
289110) will be described. Note that the program conversion device will be described as a compiler, and the debug device will be described as a debugger.

【0005】図7に示す従来技術(特開平10−289
110)は、関数展開の最適化以外の最適化に対応して
いるが、この発明には関連していないので、引き数最適
化部1052、資源割当部1053、関数情報記憶部7
031、変数情報記憶部7032、変数値取得部11
6、変数値表示部114、関数呼び出し履歴表示部11
5を省略した図8を用いて説明する。
The prior art shown in FIG. 7 (JP-A-10-289)
110) corresponds to an optimization other than the optimization of the function expansion, but is not related to the present invention. Therefore, the argument optimization unit 1052, the resource allocation unit 1053, the function information storage unit 7
031, variable information storage unit 7032, variable value acquisition unit 11
6. Variable value display unit 114, function call history display unit 11
This will be described with reference to FIG.

【0006】図8に示す従来技術のコンパイラおよびデ
バッガで構成されるプログラムデバッグ方式では、コン
パイラは、内部表現変換部104において、プログラム
記憶部101からプログラムを得て、文字列から内部表
現(ソース行から実行コードに変換する段階で発生する
中間的なコード)に変換する。
[0008] In the program debugging method including a conventional compiler and a debugger shown in FIG. 8, a compiler obtains a program from a program storage unit 101 in an internal representation conversion unit 104, and obtains an internal representation (a source line To the intermediate code generated at the stage of converting from to executable code).

【0007】最適化部105は、内部表現変換部104
で生成された内部表現に対して最適化処理を行う。最適
化処理を行う最適化部105内では、関数に関わる最適
化処理を行う関数展開最適化部1051は、関数呼び出
しの位置に、呼び出される関数の内容を展開する。
The optimizing unit 105 includes an internal representation converting unit 104
Performs optimization processing on the internal representation generated by. In the optimizing unit 105 that performs the optimizing process, the function expansion optimizing unit 1051 that performs the optimizing process related to the function expands the contents of the called function at the position of the function call.

【0008】最適化部105で最適化された内部表現
は、コード生成部106において、実行コードに生成さ
れ、実行コード記憶部102に記録される。
The internal representation optimized by the optimizing unit 105 is generated into an execution code by a code generation unit 106 and recorded in an execution code storage unit 102.

【0009】デバッグ情報生成部107は、プログラム
のソース行と、実行コードのアドレスを1対1に対応付
けを行い、行アドレス情報記憶部7034に記録する。
関数展開最適化部1051は、関数が展開された場合、
展開された関数の関数名、展開位置、展開範囲に関する
情報を展開関数情報記憶部7033に記録する。
[0009] The debug information generation unit 107 associates the source line of the program with the address of the execution code on a one-to-one basis, and records it in the line address information storage unit 7034.
When the function is expanded, the function expansion optimizing unit 1051
Information regarding the function name, expansion position, and expansion range of the expanded function is recorded in the expansion function information storage unit 7033.

【0010】推測される関数展開最適化部1051の処
理フローを図12に示す。
FIG. 12 shows a processing flow of the function expansion optimizing unit 1051 to be estimated.

【0011】ステップ1101では、ソース行を取得す
る。ステップ1102では、関数呼び出しかどうかを判
断し、呼び出す場合はステップ1103へ、そうでなけ
ればステップ1104へ分岐する。
In step 1101, a source line is obtained. In step 1102, it is determined whether or not it is a function call. If so, the flow branches to step 1103;

【0012】ステップ1103では、関数呼び出し位置
に関数展開するか否かを判断し、展開する場合はステッ
プ1106へ、そうでなければステップ1104へ分岐
する。
In step 1103, it is determined whether or not to expand the function at the function calling position. If so, the flow branches to step 1106; otherwise, the flow branches to step 1104.

【0013】ステップ1104では、ソース行を1つ進
める。ステップ1105では、ソース行終了かどうかを
例えばEOFで判断し、ソース行終了であれば終了し、
ソース行終了でなければステップ1101へ分岐する。
In step 1104, the source line is advanced by one. In step 1105, it is determined whether or not the source line ends, for example, by EOF.
If it is not the source line end, the process branches to step 1101.

【0014】ステップ1106では、呼び出し位置に関
数を展開する。ステップ1107では、展開関数用テー
ブルを作成する。ステップ1108では、関数名登録を
行う。ステップ1109では、関数展開位置登録を行
う。ステップ1110では、関数展開範囲登録を行う。
In step 1106, the function is expanded at the calling position. In step 1107, an expansion function table is created. In step 1108, function name registration is performed. In step 1109, a function expansion position is registered. In step 1110, a function expansion range is registered.

【0015】図8に示すコンパイラおよびデバッガで構
成されるプログラムデバッグ方式におけるデバッガは、
ユーザに、入力部109から、例えば実行を停止させた
い行を入力させ、実行コード記憶部102より実行コー
ドを得て、コード実行部110で実行する。
A debugger in a program debugging system including a compiler and a debugger shown in FIG.
The user inputs, for example, a line whose execution is to be stopped from the input unit 109, obtains an execution code from the execution code storage unit 102, and executes the code in the code execution unit 110.

【0016】コード実行部110の動作を、実行状態監
視部111において、デバッグ情報を元に監視し、実行
状態に応じて、実行コードのアドレスとソース行を取得
し、取得した情報を実行状態記憶部713に記録する。
実行状態記憶部713に記録された情報はユーザが、例
えばディスプレイなどにより参照できる。
The operation of the code execution unit 110 is monitored by the execution state monitoring unit 111 based on the debug information, the address and the source line of the execution code are acquired according to the execution state, and the acquired information is stored in the execution state storage. Recorded in the section 713.
The information recorded in the execution state storage unit 713 can be referred to by a user on a display, for example.

【0017】図8に示すコンパイラおよびデバッガで構
成されるプログラムデバッグ方式におけるコンパイラで
生成される、展開された関数のデバッグ情報の一例につ
いて、図9、図10、図11を用いて説明する。
An example of expanded function debug information generated by a compiler in a program debugging system including a compiler and a debugger shown in FIG. 8 will be described with reference to FIGS. 9, 10, and 11. FIG.

【0018】図9で示されるLine:216からLi
ne:222で構成される関数が、任意のプログラムの
Line:13から関数呼び出しされている場合に対し
て、関数展開最適化部1051では、プログラムから呼
ばれている関数を、Line:13に「関数を呼ぶ」と
いうコードを生成せず、Line:13の呼び出し位置
に関数の内容を展開し、展開された関数の関数名、展開
位置、開始アドレス、終了アドレスの情報を、展開関数
情報記憶部7033に、図11に示す形で記録する。
Line: 216 shown in FIG.
In contrast to the case where the function composed of ne: 222 is called from Line: 13 of an arbitrary program, the function expansion optimizing unit 1051 stores the function called from the program in Line: 13 as “ A function is not generated, and the contents of the function are expanded at the call position of Line: 13. The expanded function information storage unit stores the function name, expanded position, start address, and end address of the expanded function. At 7033, it is recorded in the form shown in FIG.

【0019】図11に示す展開関数情報記憶部7033
の展開位置と展開範囲から、関数のLine:219か
らLine:221の各行は、アドレス0x128から
0x130の位置に各々展開されたことが判る。
An expansion function information storage unit 7033 shown in FIG.
It can be understood from the expansion position and the expansion range that each line of the function Line: 219 to Line: 221 has been expanded at the addresses 0x128 to 0x130, respectively.

【0020】さらに、コード生成部106で決定され
た、プログラムの行と生成された実行コードのアドレス
との関係を、行アドレス情報記憶部7034に、例えば
図10に示す形で記録する。
Further, the relationship between the program line and the address of the generated execution code determined by the code generation unit 106 is recorded in the line address information storage unit 7034, for example, as shown in FIG.

【0021】デバッガは、図10、図11に示されたデ
バッグ情報を元に、展開された関数のデバッグを行う。
図10のLine:13のアドレスが0x128であ
り、図11の展開範囲の開始アドレスが0x128であ
ることから、図9の関数がプログラムのLine:13
の位置に展開されたことがわかる。
The debugger debugs the expanded function based on the debug information shown in FIGS.
Since the address of Line: 13 in FIG. 10 is 0x128 and the start address of the development range in FIG. 11 is 0x128, the function in FIG.
It can be seen that it was developed at the position of.

【0022】[0022]

【発明が解決しようとする課題】上述した処理において
は、プログラムの実行速度を速めるために、ソースプロ
グラムをコンパイルする時に実行速度に関する最適化を
行うことが広く行われている。実行速度を速める最適化
の方法として、プログラムから関数(サブルーチン)を
呼び出す場合において、その関数を呼び出すのではな
く、呼び出す位置に関数の内容を展開させる方法を行う
場合がある。
In the above-described processing, in order to increase the execution speed of a program, it is widely performed to optimize the execution speed when compiling a source program. As an optimization method for increasing the execution speed, when a function (subroutine) is called from a program, a method of expanding the contents of the function at a calling position instead of calling the function may be used.

【0023】呼び出し位置に展開される関数が複数の位
置から呼び出されている場合は、その複数の位置にそれ
ぞれ展開される。したがって、展開される関数の持つソ
ース行1行に対し、コードのアドレスは、それぞれ展開
した複数の場所に発生することになる。
When a function to be expanded to a calling position is called from a plurality of positions, the function is expanded to each of the plurality of positions. Therefore, for one source line of the function to be expanded, code addresses are generated at a plurality of expanded locations.

【0024】コンパイラは、ソースプログラムをコンパ
イルして実行コードを生成する際に、デバッグ情報も生
成する。図10に示す従来の行アドレス情報は、ソース
行1行に対し、コードのアドレスが1つ対応している構
成になっている。図11に示す展開関数情報も、展開関
数のソース行1行に対し、コードのアドレスが1つ対応
している構成になっている。
The compiler also generates debug information when compiling a source program to generate an execution code. The conventional row address information shown in FIG. 10 has a configuration in which one source address corresponds to one code address. The expansion function information shown in FIG. 11 also has a configuration in which one code address corresponds to one source line of the expansion function.

【0025】従来のデバッグ情報は、ソース行1行に対
し、コードのアドレスが複数対応しているという構成に
はなっておらず、ソース行1行に対するコードのアドレ
スが複数存在する場合は、その個所のデバッグ情報は生
成されない。
The conventional debug information does not have a structure in which a plurality of code addresses correspond to one source line. If there are a plurality of code addresses for one source line, the debug information is displayed. No local debug information is generated.

【0026】プログラムをソースレベルでデバッグを行
うにはデバッグ情報が欠かせないが、デバッグ情報が生
成されない個所があれば、その個所のソースレベルでの
デバッグが行えないという問題点がある。
To debug a program at the source level, debug information is indispensable. However, if there is a location where debug information is not generated, there is a problem that the source level cannot be debugged at that location.

【0027】この発明の目的は、プログラムの最適化に
より関数の展開が複数箇所に行われた場合においても、
展開された関数の展開される前のソースレベルでのデバ
ッグが可能となるプログラムデバッグ方式を提供するこ
とにある。
An object of the present invention is to solve the problem even when a function is expanded at a plurality of locations by optimizing a program.
An object of the present invention is to provide a program debugging method that enables debugging at a source level before an expanded function is expanded.

【0028】[0028]

【課題を解決するための手段】この発明は、コンパイラ
およびデバッガで構成されるプログラムデバッグ方式に
おいて、前記コンパイラは、プログラムの最適化によっ
て複数箇所に展開された関数の各先頭アドレスを有する
展開関数用先頭アドレス情報テーブルを生成し、プログ
ラムの最適化によって複数箇所に展開された関数の関数
名および前記展開関数用先頭アドレス情報テーブルのポ
インタをヘッダに持ち、1ソース行に対し1相対アドレ
スで構成される展開関数用行アドレス情報テーブルを生
成し、プログラムの最適化によって複数箇所に展開され
た関数が存在する場合の、展開関数フラグおよび前記展
開関数用行アドレス情報テーブルのポインタを持ち、1
ソース行に対し1つの対応するアドレスで構成される行
アドレス情報を生成し、前記デバッガは、前記展開関数
用先頭アドレス情報テーブル、展開関数用行アドレス情
報テーブルおよび行アドレス情報を参照して、複数箇所
に展開された関数をソースレベルでデバッグが行えるこ
とを特徴とする。
According to the present invention, there is provided a program debugging system comprising a compiler and a debugger, wherein the compiler is adapted for an expanded function having each head address of a function expanded to a plurality of locations by optimizing a program. A head address information table is generated, and a function name of a function expanded at a plurality of locations by optimizing a program and a pointer of the expansion function start address information table are included in a header, and are configured with one relative address for one source line. A row address information table for an expansion function is generated, and when there is a function expanded at a plurality of locations by optimizing a program, the table has an expansion function flag and a pointer to the row address information table for the expansion function.
The debugger generates line address information composed of one corresponding address for a source line, and the debugger refers to the expansion function start address information table, the expansion function line address information table, and the line address information to generate a plurality of line addresses. It is characterized in that the function expanded in the location can be debugged at the source level.

【0029】[0029]

【発明の実施の形態】次に、この発明の実施の形態につ
いて図面を参照して説明する。
Next, an embodiment of the present invention will be described with reference to the drawings.

【0030】図1は、この発明のプログラムデバッグ方
式の実施の形態を示す構成図である。図1に示すプログ
ラムデバッグ方式は、コンパイラ10と、デバッガ11
と、プログラムを記憶するプログラム記憶部101と、
実行コードを記憶する実行コード記憶部102と、コン
パイル時に生成されるデバッグ情報を記憶するデバッグ
情報記憶部103と、プログラムの実行状態を記憶する
実行状態記憶部113を備えている。
FIG. 1 is a block diagram showing an embodiment of the program debugging system of the present invention. The program debugging method shown in FIG.
And a program storage unit 101 for storing a program;
An execution code storage unit 102 stores execution code, a debug information storage unit 103 stores debug information generated at the time of compiling, and an execution state storage unit 113 stores an execution state of a program.

【0031】コンパイラ10は、内部表現変換部104
と、内部に関数展開最適化部1051を含む最適化部1
05と、コード生成部106と、展開関数情報生成部1
08を付加したデバッグ情報生成部107を内部に備
え、デバッガ11は、入力部109と、コード実行部1
10と、展開関数処理部112を付加した実行状態監視
部111を内部に備えている。
The compiler 10 includes an internal representation conversion unit 104
Optimizing unit 1 including a function expansion optimizing unit 1051 inside
05, a code generation unit 106, and an expansion function information generation unit 1
The debugger 11 includes an input unit 109 and a code execution unit 1.
10 and an execution state monitoring unit 111 to which an expansion function processing unit 112 is added.

【0032】また、デバッグ情報記憶部103は、複数
箇所に展開された関数に対応した情報を記憶する展開関
数情報記憶部1033と、ソース行とアドレスが対応付
けられ、さらに展開関数情報記憶部1033の参照を可
能とする情報を付加した行アドレス情報を記憶する行ア
ドレス情報記憶部1034を内部に備えている。
The debug information storage unit 103 stores an expansion function information storage unit 1033 for storing information corresponding to functions expanded at a plurality of locations, a source line and an address associated with each other, and further, the expansion function information storage unit 1033. A row address information storage unit 1034 for storing row address information to which information that allows reference to be added is added.

【0033】また、実行状態記憶部113は、プログラ
ムの実行状態に加えて、複数箇所に展開された関数の実
行状態を記憶する。
The execution state storage unit 113 stores, in addition to the execution state of the program, the execution states of the functions expanded at a plurality of locations.

【0034】次に、この発明の実施の形態の動作につい
て説明する。
Next, the operation of the embodiment of the present invention will be described.

【0035】図2に展開関数情報生成部108の処理フ
ローを示し、図3に展開関数処理部112の処理フロー
を示す。また、デバッグ情報記憶部103内の行アドレ
ス情報記憶部1034のデータ保持例として、図4に行
アドレス情報記憶部1034の構成図を示す。また、デ
バッグ情報記憶部103内の展開関数情報記憶部103
3のデータ保持例として、図5に展開関数用行アドレス
情報テーブルの構成図と、図6に展開関数用先頭アドレ
ス情報テーブルの構成図を示す。
FIG. 2 shows a processing flow of the expansion function information generation unit 108, and FIG. 3 shows a processing flow of the expansion function processing unit 112. FIG. 4 shows a configuration diagram of the row address information storage unit 1034 as an example of data retention in the row address information storage unit 1034 in the debug information storage unit 103. The expansion function information storage unit 103 in the debug information storage unit 103
As a data holding example of No. 3, FIG. 5 shows a configuration diagram of an expansion function row address information table, and FIG. 6 shows a configuration diagram of an expansion function head address information table.

【0036】なお、内部表現変換部104、最適化部1
05、関数展開最適化部1051、コード生成部10
6、デバッグ情報生成部107、プログラム記憶部10
1、実行コード記憶部102、入力部109、実行状態
監視部111、コード実行部110は、従来と同一構成
である。同一構成のものは、従来と同じ処理であるた
め、詳細な説明は省略する。
The internal representation conversion unit 104 and the optimization unit 1
05, function expansion optimization unit 1051, code generation unit 10
6. Debug information generation unit 107, program storage unit 10
1. The execution code storage unit 102, the input unit 109, the execution state monitoring unit 111, and the code execution unit 110 have the same configuration as the conventional one. Since the processing of the same configuration is the same as the conventional processing, detailed description is omitted.

【0037】図1に示す、この発明のコンパイラおよび
デバッガで構成されるプログラムデバッグ方式におい
て、コンパイラ10は、まず、内部表現変換部104に
おいて、プログラム記憶部101からソースプログラム
を得て、ソース行から内部表現(ソース行から実行コー
ドに変換する段階で発生する中間的なコード)に変換す
る。
In the program debugging system shown in FIG. 1 comprising the compiler and the debugger of the present invention, the compiler 10 first obtains a source program from the program storage unit 101 in the internal representation conversion unit 104, and Convert to internal representation (intermediate code generated at the stage of converting source lines to executable code).

【0038】内部表現は、コード生成部106におい
て、実行コードに生成され、アドレスを割り当てられ
る。プログラムのソース1行毎に、対応したアドレス
を、デバッグ情報生成部107が、行アドレス情報記憶
部1034に、ソース行番号とともに記録する。行アド
レス情報記憶部1034に記録された情報を、以降、
“行アドレス情報”と呼ぶ。
The internal representation is generated in an execution code in the code generation section 106 and assigned an address. For each source line of the program, the debug information generation unit 107 records the corresponding address together with the source line number in the line address information storage unit 1034. The information recorded in the row address information storage unit 1034 is hereinafter referred to as
This is called “row address information”.

【0039】プログラムのソース1行が、関数展開最適
化部1051により、「関数を呼ぶ」という実行コード
ではなく、関数の処理内容の実行コードに展開された場
合(関数を呼んでいる位置に処理内容が展開される関数
を、以降、“展開関数”と呼ぶ)、関数展開最適化部1
051は、展開関数の関数名、ソース行、展開位置、展
開範囲に関する情報を、デバッグ情報生成部107を経
由して展開関数情報生成部108に渡す。渡された情報
を展開関数情報生成部108は、展開関数情報記憶部1
033に記録する。展開関数情報記憶部1033および
行アドレス情報記憶部1034に記録される情報を、以
降、“デバッグ情報”と呼ぶ。
When one line of the program source is expanded not by the function expansion optimizing unit 1051 into the execution code of "call a function" but by the execution code of the processing contents of the function (the processing is executed at the position where the function is called). The function whose contents are expanded is hereinafter referred to as “expansion function”), and the function expansion optimizing unit 1
In step 051, information on the function name, source line, expansion position, and expansion range of the expansion function is passed to the expansion function information generation unit 108 via the debug information generation unit 107. The expansion function information generation unit 108 transmits the passed information to the expansion function information storage unit 1.
Record at 033. The information recorded in the expansion function information storage unit 1033 and the row address information storage unit 1034 is hereinafter referred to as “debug information”.

【0040】デバッガ11は、デバッガ操作者であるユ
ーザ(以降、ユーザと記す)が、入力部109で、ソー
ス行番号とブレーク条件(例えば、ソース行を実行させ
る直前で実行を止める等)を対応させる操作をした時、
入力された行番号が展開関数に該当している場合、デバ
ッグ情報を元に、展開関数処理部112が、入力行番号
に該当するアドレスとブレーク条件を実行状態監視部1
11に登録する。
In the debugger 11, a user who is a debugger operator (hereinafter, referred to as a user) uses an input unit 109 to associate a source line number with a break condition (for example, stop execution immediately before executing a source line). When you do
If the input line number corresponds to the expansion function, the expansion function processing unit 112 determines the address corresponding to the input line number and the break condition based on the debug information.
Register at 11.

【0041】実行状態監視部111は、登録されたアド
レスとブレーク条件を元に実行状態を監視し、実行状態
に応じて、実行コードのアドレスとソース行を取得し、
実行状態記憶部113に記録する。
The execution state monitoring unit 111 monitors the execution state based on the registered address and the break condition, and acquires the address and the source line of the execution code according to the execution state.
It is recorded in the execution state storage unit 113.

【0042】実行状態記憶部113に記録された情報
は、ユーザがデバッグ時にデバッグ情報(例えば、ソー
ス行、コード、コードのアドレス等)を確認したい時に
は、例えばディスプレイなどにより、ソース行、コー
ド、コードのアドレス等の情報を参照できる。
When the user wants to check debug information (for example, source line, code, code address, etc.) at the time of debugging, the information recorded in the execution state storage unit 113 is displayed on a display or the like. Information such as the address of the user.

【0043】なお、入力された行番号が展開関数に該当
しない場合は、ユーザが入力部109で入力したソース
行番号とブレーク条件を、行アドレス情報記憶部103
4を元に、デバッガ11が、従来と同様の処理で、入力
行に該当するアドレスとブレーク条件を実行状態監視部
111に登録し、従来のデバッガと同様の処理を続け
る。
If the input line number does not correspond to the expansion function, the source line number and the break condition input by the user through the input unit 109 are stored in the line address information storage unit 103.
4, the debugger 11 registers the address corresponding to the input line and the break condition in the execution state monitoring unit 111 in the same processing as the conventional one, and continues the same processing as the conventional debugger.

【0044】図2は、展開関数情報生成部108の処理
フロー図である。
FIG. 2 is a processing flowchart of the expansion function information generation unit 108.

【0045】展開関数情報生成部108は、展開された
関数の関数名、ソース行、展開位置、展開範囲が、デバ
ッグ情報生成部107から渡されると、ステップ201
では、行アドレス情報記憶部1034に展開関数フラグ
を登録する。ステップ202では、すでに展開された関
数かどうかを判断し、そうであればステップ203へ分
岐し、そうでなければステップ206へ分岐する。
When the function name, source line, expansion position, and expansion range of the expanded function are passed from the debug information generation unit 107, the expansion function information generation unit 108
Then, the expansion function flag is registered in the row address information storage unit 1034. In step 202, it is determined whether or not the function has already been expanded. If so, the flow branches to step 203; otherwise, the flow branches to step 206.

【0046】ステップ203では、図5に示す展開関数
用行アドレス情報テーブルから、展開関数用先頭アドレ
ス情報テーブルポインタ502を取得する。ステップ2
04では、展開された位置の先頭アドレスを、図6に示
す展開関数用先頭アドレス情報テーブルに登録する。ス
テップ205では、展開関数用行アドレス情報テーブル
ポインタ403を行アドレス情報記録部1034に登録
する。
In step 203, the expansion function start address information table pointer 502 is obtained from the expansion function row address information table shown in FIG. Step 2
In step 04, the head address of the expanded position is registered in the expansion function start address information table shown in FIG. In step 205, the expansion function row address information table pointer 403 is registered in the row address information recording unit 1034.

【0047】ステップ206では、展開関数情報記憶部
1033内に、任意の関数用として、図5に示す展開関
数用行アドレス情報テーブルを新規作成する。ステップ
207では、作成した、そのテーブルに展開関数名50
1を登録する。
In step 206, a row address information table for expansion function shown in FIG. 5 is newly created in the expansion function information storage unit 1033 for an arbitrary function. At step 207, the created function name 50 is added to the table.
Register 1.

【0048】ステップ208では、展開された関数内
に、さらに展開関数があるかどうかを判断し、そうであ
れば、ステップ212で展開関数情報生成部108を再
帰呼出しし、同様の処理を行う。そうでなければステッ
プ209へ分岐する。
In step 208, it is determined whether or not there is an expansion function in the expanded function. If so, in step 212, the expansion function information generation unit 108 is recursively called, and the same processing is performed. Otherwise, the process branches to step 209.

【0049】ステップ209では、展開関数用行アドレ
ス情報テーブルに1行分の相対アドレス情報(ソース行
番号n:対応する相対アドレスn)503を登録する。
ステップ210では、ソース行を1行進める。ステップ
211では、ソース行が終了かどうかを、例えばEOF
(End Of File:ファイルの終了を表す記
号)で判断し、ソース行が終了でなければステップ20
8へ分岐し、ソース行が終了であればステップ213へ
分岐する。
In step 209, one line of relative address information (source line number n: corresponding relative address n) 503 is registered in the line address information table for expansion function.
In step 210, the source line is advanced by one line. In step 211, it is determined whether or not the source line ends, for example, EOF.
(End Of File: symbol indicating the end of the file)
Then, the process branches to step 213 if the source line ends.

【0050】ステップ213では、図6に示す展開関数
用先頭アドレス情報テーブルを新規作成する。ステップ
214では、展開関数用先頭アドレス情報テーブルポイ
ンタ502を、図5に示す所定の展開関数用行アドレス
情報テーブルに登録する。ステップ215では、図6に
示す展開関数用先頭アドレス情報テーブルに、関数を展
開した場所の先頭アドレス601を登録する。
In step 213, the expansion function start address information table shown in FIG. 6 is newly created. In step 214, the expansion function start address information table pointer 502 is registered in a predetermined expansion function row address information table shown in FIG. In step 215, the start address 601 of the place where the function is expanded is registered in the expansion function start address information table shown in FIG.

【0051】図3は、展開関数処理部112の処理フロ
ー図である。
FIG. 3 is a processing flowchart of the expansion function processing unit 112.

【0052】ステップ301では、従来と同様の方法で
入力部109から、ソース行番号とブレーク条件が入力
される。ステップ302では、入力されたソース行番号
で、行アドレス情報記憶部1034のソース行番号を検
索し、対象行のアドレス情報(ソース行番号n:対応す
るアドレスn)401を得る。
In step 301, a source line number and a break condition are input from the input unit 109 in the same manner as in the prior art. In step 302, the input source row number is searched for the source row number in the row address information storage unit 1034, and the address information (source row number n: corresponding address n) 401 of the target row is obtained.

【0053】ステップ303では、展開された関数かど
うかを、展開関数フラグ402があるかどうかで判断
し、そうであればステップ306へ分岐し、そうでなけ
れば、ステップ304でアドレスを得る。ステップ30
5では、アドレスとブレーク条件を実行状態監視部11
1に登録し、終了する。
In step 303, it is determined whether or not the function is an expanded function based on whether or not there is an expanded function flag 402. If so, the flow branches to step 306; otherwise, an address is obtained in step 304. Step 30
5, the execution state monitoring unit 11
Register 1 and end.

【0054】ステップ306では、展開関数用行アドレ
ス情報テーブルポインタ403を行アドレス情報記憶部
1034から取得する。ステップ307では、展開関数
用先頭アドレス情報テーブルポインタ502を、図5に
示す展開関数用行アドレス情報テーブルから取得する。
In step 306, the row address information table pointer 403 for the expansion function is obtained from the row address information storage unit 1034. In step 307, the expansion function start address information table pointer 502 is obtained from the expansion function row address information table shown in FIG.

【0055】ステップ308では、関数内がさらに展開
された関数かどうかを判断し、そうであればステップ3
06へ分岐し、そうでなければステップ309へ分岐
し、展開関数用行アドレス情報テーブルから、対応する
相対アドレスを取得する。
In step 308, it is determined whether or not the inside of the function is a further expanded function.
The process branches to step 06, otherwise to step 309 to obtain the corresponding relative address from the expansion function row address information table.

【0056】ステップ310では、図6に示す展開関数
用先頭アドレス情報テーブルより、先頭アドレス601
を1つ取得する。ステップ311では、先頭アドレス+
相対アドレスで求めた実アドレスとブレーク条件を実行
状態監視部111に登録する。
In step 310, the start address 601 is obtained from the expansion function start address information table shown in FIG.
Is obtained. In step 311, the starting address +
The real address and the break condition obtained by the relative address are registered in the execution state monitoring unit 111.

【0057】ステップ312では、次の先頭アドレス
(n+1)へ進める。ステップ313では、先頭アドレ
ス情報テーブルが終了かどうかを判断し、そうでなけれ
ばステップ310へ分岐し、そうであれば終了する。
In step 312, the process proceeds to the next start address (n + 1). In step 313, it is determined whether or not the head address information table is completed. If not, the process branches to step 310, and if so, the process ends.

【0058】図4は、行アドレス情報記憶部1034の
構成図である。展開された関数でない行には従来どおり
の、アドレス情報(ソース行番号n:対応するアドレス
n)401が記録される。関数が展開されている行に
は、展開関数フラグ402、ソース行番号、展開関数用
行アドレス情報テーブルポインタ403が記録される。
FIG. 4 is a configuration diagram of the row address information storage unit 1034. Address information (source line number n: corresponding address n) 401 is recorded in a row other than the expanded function as in the related art. In the line where the function is expanded, the expansion function flag 402, the source line number, and the expansion function line address information table pointer 403 are recorded.

【0059】展開関数情報記憶部1033は、展開関数
用行アドレス情報テーブルと、展開関数用先頭アドレス
情報テーブルで構成される。
The expansion function information storage section 1033 is composed of an expansion function row address information table and an expansion function head address information table.

【0060】図5は、展開関数用行アドレス情報テーブ
ルの構成図である。テーブルのはじめには、展開関数名
501、展開関数用先頭アドレス情報テーブルポインタ
502が記録される。その次には、順次、相対アドレス
情報(ソース行番号n:対応する相対アドレスn)50
3が記録される。
FIG. 5 is a configuration diagram of a row address information table for an expansion function. At the beginning of the table, an expansion function name 501 and an expansion function start address information table pointer 502 are recorded. Next, relative address information (source line number n: corresponding relative address n) 50
3 is recorded.

【0061】図6は、展開関数用先頭アドレス情報テー
ブルの構成図である。テーブルには1つの関数が展開さ
れた複数個所の先頭アドレス601を記録する。
FIG. 6 is a configuration diagram of the expansion function start address information table. The table records the start addresses 601 at a plurality of locations where one function is expanded.

【0062】なお、展開関数用行アドレス情報テーブ
ル、展開関数用先頭アドレス情報テーブルは、展開され
た関数の種類分、生成される。
The expanded function row address information table and expanded function start address information table are generated for each type of expanded function.

【0063】この発明は、展開関数用行アドレス情報テ
ーブルに記録されるアドレスを相対アドレスで持ち、関
数が展開された位置の各先頭アドレスを展開関数用先頭
アドレス情報テーブルで持つことにより、テーブルサイ
ズの縮小を行っている。
According to the present invention, the table size is obtained by having the addresses recorded in the row address information table for the expansion function as relative addresses and having each head address of the position where the function is expanded in the head address information table for the expansion function. Has been reduced.

【0064】展開関数用行アドレス情報のアドレスを相
対アドレスで持たない場合には、ソース行1行に対応す
るアドレスを、展開された個所の数だけ持つことにな
る。例えば、20行の関数が30個所に展開された場
合、1ソース行、1アドレスを1項目とすると、20
(行)×30(個所)=600(項目)の項目数が発生
する。展開関数用行アドレス情報を相対アドレスで持
ち、関数が展開された位置の各先頭アドレスを展開関数
用先頭アドレス情報テーブルで持つと、20(行)+3
0(先頭アドレス)=50(項目)の項目数で済み、1
/12の項目数で実現される。
When the address of the row address information for the expansion function is not provided as a relative address, the number of addresses corresponding to one source line is equal to the number of expanded locations. For example, if a function of 20 lines is expanded to 30 places, if one source line and one address are one item,
(Rows) × 30 (locations) = 600 (items). If the line address information for the expansion function is stored as a relative address, and each head address of the position where the function is expanded is stored in the head address information table for the expansion function, 20 (line) +3
0 (start address) = 50 (items), 1
/ 12 items.

【0065】この発明は、関数の展開がソースプログラ
ムのレベルで行われた後のソースプログラムに対して、
ユーザがそのソース行にブレイクポイントを設定すると
いう構成ではなく、関数の展開が行われる前の状態のソ
ースプログラムに対して、ユーザがそのソース行にブレ
イクポイントを設定し、実行形式のプログラムのソース
レベルのデバッグが行え、内部的に関数の展開が行われ
たことを、ユーザに意識させることなくデバッグを行う
ことができる。
According to the present invention, the source program after the expansion of the function is performed at the level of the source program,
Instead of the user setting a breakpoint on the source line, the user sets a breakpoint on the source line for the source program before the function expansion is performed, and Debugging can be performed at a level, and debugging can be performed without making the user aware that the function has been expanded internally.

【0066】また、この発明は、1つの関数の展開が任
意の複数箇所に展開された場合でも、予め関数が複数箇
所に展開されることを考慮したデバッグ情報の構造にな
っているため、任意の複数箇所に展開された関数に対
し、ソースレベルでブレイクポイントを設定することが
できる。
Further, according to the present invention, even if the expansion of one function is expanded to arbitrary plural places, the structure of the debug information is taken into consideration in advance that the function is expanded to plural places. A breakpoint can be set at the source level for a function expanded in multiple places.

【0067】[0067]

【発明の効果】以上説明したように、この発明によるプ
ログラムデバッグ方式では、従来のプログラムデバッグ
方式ではできなかった、プログラムの最適化により関数
の展開が複数箇所に行われた場合においても、展開され
た関数の展開される前のソースレベルでのデバッグが可
能となる。
As described above, in the program debugging system according to the present invention, even when a function is expanded to a plurality of places by program optimization, the expansion is not possible in the conventional program debugging system. This allows debugging at the source level before the expanded function is expanded.

【0068】従来のプログラムデバッグ方式では、複数
個所に関数が展開された場合、行アドレス情報がそれに
対応していないため、展開された関数の行アドレス情報
は生成されず、存在しない。そのような行アドレス情報
からは、展開された関数のソース行に対応するアドレス
を取り出すことができず、そのため、展開されたソース
レベルでのデバッグができない。
In the conventional program debugging method, when a function is expanded at a plurality of locations, the row address information of the expanded function does not correspond to the expanded function. From such line address information, an address corresponding to the source line of the expanded function cannot be extracted, and therefore, debugging at the expanded source level cannot be performed.

【0069】従来技術では、ソースレベルでのデバッグ
ができない場合は、アセンブラレベルでのデバッグを行
う方法があり、その場合、レジスタ管理、メモリ管理、
スタックメモリ動作管理、アセンブラコード動作管理
等、少なくとも4つの項目をユーザ自身が管理する必要
があり、1デバッグ当たり1項目に10時間要すると見
積もると、40時間程度必要とするが、この発明による
プログラムデバッグ方式では、ソースレベルでのデバッ
グが可能であるため、上記4項目をユーザが管理する必
要が発生しない。
In the prior art, when debugging at the source level is not possible, there is a method of performing debugging at the assembler level. In this case, register management, memory management,
It is necessary for the user to manage at least four items, such as stack memory operation management and assembler code operation management. If it is estimated that one item requires 10 hours per debug, about 40 hours are required. In the debugging method, since debugging at the source level is possible, there is no need for the user to manage the above four items.

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

【図1】この発明のプログラムデバッグ方式の実施の形
態を示す構成図である。
FIG. 1 is a configuration diagram showing an embodiment of a program debugging system of the present invention.

【図2】展開関数情報生成部の処理フロー図である。FIG. 2 is a processing flowchart of an expansion function information generation unit.

【図3】展開関数処理部の処理フロー図である。FIG. 3 is a processing flowchart of an expansion function processing unit.

【図4】行アドレス情報記憶部の構成図である。FIG. 4 is a configuration diagram of a row address information storage unit.

【図5】展開関数用行アドレス情報テーブルの構成図で
ある。
FIG. 5 is a configuration diagram of a row address information table for an expansion function.

【図6】展開関数用先頭アドレス情報テーブルの構成図
である。
FIG. 6 is a configuration diagram of an expansion function start address information table.

【図7】従来技術のプログラムデバッグ方式を示す構成
図である。
FIG. 7 is a configuration diagram showing a conventional program debugging method.

【図8】従来技術のプログラムデバッグ方式を示す構成
図である。
FIG. 8 is a configuration diagram showing a conventional program debugging method.

【図9】コンパイラの最適化処理で関数展開される関数
例を示す図である。
FIG. 9 is a diagram showing an example of a function that is expanded in a compiler optimizing process;

【図10】行アドレス情報記憶部の構成図である。FIG. 10 is a configuration diagram of a row address information storage unit.

【図11】展開関数情報記憶部の構成図である。FIG. 11 is a configuration diagram of an expansion function information storage unit.

【図12】展開関数情報記憶部の処理フロー図である。FIG. 12 is a processing flowchart of an expansion function information storage unit.

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

10 コンパイラ 11 デバッガ 101 プログラム記憶部 102 実行コード記憶部 103 デバッグ情報記憶部 104 内部表現変換部 105 最適化部 106 コード生成部 107 デバッグ情報生成部 108 展開関数情報生成部 109 入力部 110 コード実行部 111 実行状態監視部 112 展開関数処理部 113,713 実行状態記憶部 114 変数値表示部 115 関数呼び出し履歴表示部 116 変数値取得部 401 アドレス情報 402 展開関数フラグ 403 展開関数用行アドレス情報テーブルポインタ 501 展開関数名 502 展開関数用先頭アドレス情報テーブルポインタ 503 相対アドレス情報 601 先頭アドレス 1033,7033 展開関数情報記憶部 1034,7034 行アドレス情報記憶部 1051 関数展開最適化部 1052 引き数最適化部 1053 資源割当部 7031 関数情報記憶部 7032 変数情報記憶部 Reference Signs List 10 compiler 11 debugger 101 program storage unit 102 execution code storage unit 103 debug information storage unit 104 internal expression conversion unit 105 optimization unit 106 code generation unit 107 debug information generation unit 108 expansion function information generation unit 109 input unit 110 code execution unit 111 Execution state monitoring unit 112 Expansion function processing unit 113,713 Execution state storage unit 114 Variable value display unit 115 Function call history display unit 116 Variable value acquisition unit 401 Address information 402 Expansion function flag 403 Expansion function row address information table pointer 501 Expansion Function name 502 Expansion function start address information table pointer 503 Relative address information 601 Start address 1033, 7033 Expansion function information storage section 1034, 7034 Row address information storage section 1051 Function Expansion optimization unit 1052 Argument optimization unit 1053 Resource allocation unit 7031 Function information storage unit 7032 Variable information storage unit

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】コンパイラおよびデバッガで構成されるプ
ログラムデバッグ方式において、 前記コンパイラは、プログラムの最適化によって複数箇
所に展開された関数の各先頭アドレスを有する展開関数
用先頭アドレス情報テーブルを生成し、 プログラムの最適化によって複数箇所に展開された関数
の関数名および前記展開関数用先頭アドレス情報テーブ
ルのポインタをヘッダに持ち、1ソース行に対し1相対
アドレスで構成される展開関数用行アドレス情報テーブ
ルを生成し、 プログラムの最適化によって複数箇所に展開された関数
が存在する場合の、展開関数フラグおよび前記展開関数
用行アドレス情報テーブルのポインタを持ち、1ソース
行に対し1つの対応するアドレスで構成される行アドレ
ス情報を生成し、 前記デバッガは、前記展開関数用先頭アドレス情報テー
ブル、展開関数用行アドレス情報テーブルおよび行アド
レス情報を参照して、複数箇所に展開された関数をソー
スレベルでデバッグが行えることを特徴とするプログラ
ムデバッグ方式。
1. A program debugging method comprising a compiler and a debugger, wherein the compiler generates an expanded function start address information table having each start address of a function expanded at a plurality of locations by optimizing a program, A row address information table for an expansion function which has a function name of a function expanded at a plurality of locations by optimization of a program and a pointer of the head address information table for the expansion function in a header and has one relative address for one source line. When there is a function expanded at a plurality of locations by optimizing a program, it has an expansion function flag and a pointer to the expansion function line address information table, and has one corresponding address for one source line. Generating line address information comprising: A program debugging method characterized in that a function expanded in a plurality of locations can be debugged at a source level by referring to a head address information table for expansion function, a line address information table for expansion function, and line address information.
【請求項2】前記展開関数用先頭アドレス情報テーブ
ル、展開関数用行アドレス情報テーブルおよび行アドレ
ス情報は、コンパイル時に生成され、デバッグ情報とし
てデバッグ情報記憶部に格納されることを特徴とする請
求項1に記載のプログラムデバッグ方式。
2. The development information start address information table, the expansion function line address information table, and the line address information are generated at the time of compilation and stored in a debug information storage unit as debug information. 2. The program debugging method according to 1.
【請求項3】前記複数箇所に展開された関数の展開され
る前の状態の前記ソースプログラムのソース行に対し
て、ユーザがブレーク条件を設定できることを特徴とす
る請求項1または2に記載のプログラムデバッグ方式。
3. The user according to claim 1, wherein a break condition can be set by a user for a source line of the source program in a state before expansion of the function expanded at the plurality of locations. Program debugging method.
【請求項4】コンパイラおよびデバッガを用いたプログ
ラムデバッグ方法において、 前記コンパイラにより、プログラムの最適化によって複
数箇所に展開された関数の各先頭アドレスを有する展開
関数用先頭アドレス情報テーブルを生成し、 プログラムの最適化によって複数箇所に展開された関数
の関数名および前記展開関数用先頭アドレス情報テーブ
ルのポインタをヘッダに持ち、1ソース行に対し1相対
アドレスで構成される展開関数用行アドレス情報テーブ
ルを生成し、 プログラムの最適化によって複数箇所に展開された関数
が存在する場合の、展開関数フラグおよび前記展開関数
用行アドレス情報テーブルのポインタを持ち、1ソース
行に対し1つの対応するアドレスで構成される行アドレ
ス情報を生成し、 前記デバッガにより、前記展開関数用先頭アドレス情報
テーブル、展開関数用行アドレス情報テーブル、行アド
レス情報を参照して、複数箇所に展開された関数をソー
スレベルでデバッグが行えることを特徴とするプログラ
ムデバッグ方法。
4. A program debugging method using a compiler and a debugger, wherein the compiler generates a development function start address information table having respective start addresses of functions expanded at a plurality of locations by optimizing the program, The expansion function row address information table having a function name of a function expanded at a plurality of locations by the optimization and a pointer of the expansion function start address information table in a header and having one relative address for one source line is provided. When there is a function generated and expanded at a plurality of locations by program optimization, it has an expansion function flag and a pointer to the expansion function line address information table, and is configured with one corresponding address for one source line. Generated line address information, and the debugger generates A program debugging method, wherein a function expanded at a plurality of locations can be debugged at a source level with reference to the expansion function start address information table, expansion function line address information table, and line address information.
【請求項5】前記展開関数用先頭アドレス情報テーブ
ル、展開関数用行アドレス情報テーブルおよび行アドレ
ス情報は、コンパイル時に生成されることを特徴とする
請求項4に記載のプログラムデバッグ方法。
5. The program debugging method according to claim 4, wherein said expansion function start address information table, expansion function line address information table, and line address information are generated at the time of compilation.
【請求項6】前記複数箇所に展開された関数の展開され
る前の状態の前記ソースプログラムのソース行に対し
て、ユーザがブレーク条件を設定できることを特徴とす
る請求項4または5に記載のプログラムデバッグ方法。
6. The break-down condition according to claim 4, wherein a break condition can be set by a user for a source line of the source program before expansion of the function expanded at the plurality of locations. How to debug programs.
JP2000267430A 2000-09-04 2000-09-04 Program debugging method Pending JP2002073371A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000267430A JP2002073371A (en) 2000-09-04 2000-09-04 Program debugging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000267430A JP2002073371A (en) 2000-09-04 2000-09-04 Program debugging method

Publications (1)

Publication Number Publication Date
JP2002073371A true JP2002073371A (en) 2002-03-12

Family

ID=18754361

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000267430A Pending JP2002073371A (en) 2000-09-04 2000-09-04 Program debugging method

Country Status (1)

Country Link
JP (1) JP2002073371A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328722A (en) * 2006-06-09 2007-12-20 Fujitsu Ltd Operational state monitoring program
WO2022247441A1 (en) * 2021-05-27 2022-12-01 北京字节跳动网络技术有限公司 Log file parsing method and apparatus, and device and storage medium

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007328722A (en) * 2006-06-09 2007-12-20 Fujitsu Ltd Operational state monitoring program
US8122435B2 (en) 2006-06-09 2012-02-21 Fujitsu Limited Operating status monitoring program, method and device
WO2022247441A1 (en) * 2021-05-27 2022-12-01 北京字节跳动网络技术有限公司 Log file parsing method and apparatus, and device and storage medium

Similar Documents

Publication Publication Date Title
US20170132119A1 (en) Method and device for retrieving test case based on code coverage
US7178135B2 (en) Scope-based breakpoint selection and operation
US20080127113A1 (en) Method and system for implementing watchpoints
JP2004164554A (en) Device and method for executing and monitoring program
US7086033B2 (en) Software debugger having a monitor for monitoring conditional statements within a software program
US5987248A (en) Debugging information display device
JP2007304765A (en) Processor system and method for measuring performance of processor system
JP2002073371A (en) Program debugging method
JPH08502375A (en) Method of performing at least one test on at least one object of an object-oriented program that can be executed in parallel by a computer
WO2020073200A1 (en) Program debugging method and system
JP2004287869A (en) Program execution monitoring device and method
JPH10289110A (en) Program converter and debugging device
JP2002318712A (en) Program running history analyzing method
JP3077627B2 (en) Debugging method and recording medium for recording debug program
JPH08171499A (en) Debugging device
JP2001236243A (en) Debug method and recording medium with program for debug recorded
CN115292076A (en) Linux system kernel debugging device and method
JPH07191876A (en) Program testing device and using method for the same
JP2011204204A (en) Program debugging device and program debugging method
JPH04217034A (en) Display system for program trace
JPH0269837A (en) Program debug support device
JPH05151030A (en) Information display system at end of user program abnormality
JPH07319730A (en) Test debugging method
JPH0778096A (en) Program test system
JPH0997182A (en) Program converter and debugger