JPH06290077A - Method for setting up interruption point of program execution - Google Patents

Method for setting up interruption point of program execution

Info

Publication number
JPH06290077A
JPH06290077A JP5079645A JP7964593A JPH06290077A JP H06290077 A JPH06290077 A JP H06290077A JP 5079645 A JP5079645 A JP 5079645A JP 7964593 A JP7964593 A JP 7964593A JP H06290077 A JPH06290077 A JP H06290077A
Authority
JP
Japan
Prior art keywords
function
call
program
program execution
setting
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
JP5079645A
Other languages
Japanese (ja)
Inventor
Noriyasu Mori
教安 森
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5079645A priority Critical patent/JPH06290077A/en
Publication of JPH06290077A publication Critical patent/JPH06290077A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To reduce user's load and to improve debugging efficiency by setting up interruption points in all access points by the specification of a function. CONSTITUTION:Compiling processing 5 analyzes a source program 4 and generates function access information 72. Debugging processing 1 finds out all positions on an object code 6 for accessing a function specified by an interruption point setting command 21 inputted from input processing 2 based upon the information 72, saves the instruction codes of these positions and substitutes interruption instructions for the saved instruction codes. This interruption point setting method is especially effective for the debugging of a program having various kinds of functions and written by language capable of executing implicit function access or dynamic binding.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、プログラム実行中断点
設定方法に関し、さらに詳しくは、デバッグ時にプログ
ラムの実行を中断させる点(ブレークポイント)を設定
するための中断点設定方法に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a program execution breakpoint setting method, and more particularly, to a breakpoint setting method for setting a breakpoint (breakpoint) at which program execution is suspended during debugging.

【0002】[0002]

【従来の技術】プログラムのデバッグのために、所定の
時点でプログラムの実行を中断して、各種の変数等の内
容を調べることをよく行う。そのため、デバッガは、中
断点を設定する機能を備えている。従来の中断点設定方
法としては、ソースプログラムの行番号で中断点を設定
したり,ソースプログラムの表示上の位置で行単位に中
断点を設定したり,オブジェクトプログラムでの絶対ア
ドレスで中断点を設定する方法が知られている。このよ
うな中断点設定方法に関しては、「UNIX System
V プログラマ・リファレンス・マニュアル 第2版 リ
リース3.0(発行所:UNIX システムラボラトリーズ
パシフィック;発売元:共立出版 1985)pp.117-126」
のSDBコマンドの解説に詳しい開示がある。
2. Description of the Related Art In order to debug a program, the execution of the program is interrupted at a predetermined time point and the contents of various variables are often examined. Therefore, the debugger has a function of setting a break point. Conventional break point setting methods include setting break points by the line number of the source program, setting break points on a line-by-line basis at the display position of the source program, or by using absolute addresses in the object program. A method of setting is known. For such a breakpoint setting method, see "UNIX System".
V Programmer Reference Manual Second Edition Release 3.0 (Publisher: UNIX System Laboratories Pacific; Publisher: Kyoritsu Publishing 1985) pp.117-126 "
There is a detailed disclosure in the explanation of the SDB command.

【0003】また、従来の中断点設定方法の他の例とし
ては、関数名称および入口点か出口点かそれらの両方か
を指定する関数中断点設定方法が知られている。この場
合、指定された関数の入口点または出口点に制御が移っ
たときにプログラムの実行を中断する。手続き型言語に
おいては、関数(手続きと呼ばれているものも含む)が
制御構造上のまとまった処理単位であるので、この関数
中断点設定方法は有用である。また、行番号や絶対アド
レス等を調べること無く中断点の指定が出来る点でも、
この関数中断点設定方法は有用である。また、従来の中
断点設定方法のさらに他の例としては、C++言語のよ
うに関数の多義化機能(複数の関数に同一名称を与え、
引数の型により目的の関数を選択して呼び出す機能)が
ある言語に対して、一つの関数名称を指定するだけで、
多義化されている関数群に上記のような関数中断点を設
定する方法が知られている。このような中断点設定方法
に関しては、「HP-UX Symbolic DebuggerUser's
Guide HP9000 Computers(発行所 HEWLE
TT PACKARD 1991)pp.5-48〜5-51」に詳しい
開示がある。
As another example of the conventional breakpoint setting method, there is known a function breakpoint setting method for designating a function name and an entry point, an exit point, or both of them. In this case, the execution of the program is suspended when the control is transferred to the entry point or the exit point of the designated function. In a procedural language, a function (including what is called a procedure) is a unit of processing in a control structure, and thus this function breakpoint setting method is useful. In addition, you can specify a break point without checking the line number or absolute address.
This function breakpoint setting method is useful. Further, as still another example of the conventional breakpoint setting method, as in the C ++ language, a function ambiguity function (the same name is given to a plurality of functions,
For a language that has a function to select and call a target function according to the type of argument, just specify one function name,
There is known a method of setting the above-mentioned function break point in the ambiguous function group. Regarding such a breakpoint setting method, refer to "HP-UX Symbolic Debugger Users's
Guide HP9000 Computers (Publisher HEWLE
TT PACKARD 1991) pp.5-48-5-51 ".

【0004】[0004]

【発明が解決しようとする課題】上記従来の関数中断点
設定方法では、中断点は関数の入口点または出口点に限
られている。すなわち、関数の入口点または出口点に制
御が移ったときにプログラムの実行を中断する。しか
し、ソースプログラムの言語によっては、関数の入口点
に制御が移ってしまった時の状況よりも、その直前の関
数呼出し点での状況が重要な場合がある。例えば、言語
が関数の動的束縛の機能を備えており,同一名称の複数
の関数の中から実行時のオブジェクトの型に応じて選択
された関数が呼び出される場合(例えばC++言語にお
ける仮想関数の場合)、呼出し点においてどの関数の呼
出しが行われるか,すなわち,実行時にどの関数に束縛
されるかが重要である。このため、関数呼出し点で中断
する必要がある。特に、具体的な動的束縛の対象となる
関数群の確認や,動的束縛が行われている呼出し点の確
認はユーザまかせであり、誤用によるバグ発生の可能性
も高いため、関数呼出し点で中断する必要がある。ま
た、言語機能として暗黙的関数呼出しがある場合、やは
り関数呼出し点で中断する必要がある。
In the above-mentioned conventional function interruption point setting method, the interruption point is limited to the entry point or the exit point of the function. That is, the execution of the program is interrupted when the control is transferred to the entry point or the exit point of the function. However, depending on the language of the source program, the situation at the function call point immediately before that may be more important than the situation at the time when control is transferred to the entry point of the function. For example, when the language has a function of dynamically binding functions, and a function selected according to the type of an object at runtime is called from a plurality of functions with the same name (for example, a virtual function in the C ++ language). In the case), it is important which function is called at the call point, that is, which function is bound at run time. Therefore, it is necessary to interrupt at the function call point. In particular, it is up to the user to check the function group that is the target of the specific dynamic binding, and to check the call point where the dynamic binding is performed, and there is a high possibility that a bug will occur due to misuse. Need to interrupt at. Also, when there is an implicit function call as a language function, it is necessary to interrupt at the function call point.

【0005】ところが、従来は、関数呼出し点で中断し
たい場合は、関数呼出し点の行番号をユーザが調査し、
その行番号に対し中断点を設定する必要があった。しか
し、ソースプログラムをユーザが解析して関数呼出し点
の行番号を調査するのは、ユーザに負担がかかる問題点
があった。また、関数呼出し点は一般にプログラム中に
複数存在するため、行番号に対する中断点の設定でも、
ユーザに負担がかかる問題点があった。そこで、本発明
の目的は、ユーザに負担をかけずに,容易に関数呼出し
点に中断点を設定することが出来るプログラム実行中断
点設定方法を提供することにある。
However, conventionally, when it is desired to interrupt at the function call point, the user investigates the line number of the function call point,
It was necessary to set a break point for that line number. However, there is a problem that it is burdensome for the user to analyze the source program and investigate the line number of the function call point. Also, since there are generally multiple function call points in a program, even when setting a break point for a line number,
There is a problem that the user is burdened. SUMMARY OF THE INVENTION It is therefore an object of the present invention to provide a program execution breakpoint setting method that can easily set a breakpoint at a function call point without imposing a burden on the user.

【0006】[0006]

【課題を解決するための手段】本発明は、プログラムを
解析してプログラムの特定の処理単位に対する実行可能
性情報を抽出する実行可能性情報抽出ステップと、プロ
グラムの特定の処理単位に対する実行可能性を利用した
中断点設定命令を受け付ける中断点設定命令受付ステッ
プと、前記実行可能性情報と前記中断点設定命令とに基
づいてプログラムの関連する1つまたは複数の位置に対
し中断点の設定を行う中断点設定ステップとを備えたこ
と特徴とするプログラム実行中断点設定方法を提供す
る。
According to the present invention, there is provided a feasibility information extraction step of analyzing a program to extract feasibility information for a specific processing unit of the program, and an executability for the specific processing unit of the program. And a step of setting a break point at one or more positions associated with the program based on the executability information and the break point setting command. There is provided a program execution breakpoint setting method characterized by including a breakpoint setting step.

【0007】[0007]

【作用】本発明のプログラム実行中断点設定方法では、
プログラムの特定の処理単位を例えば関数呼出しとする
とき、実行可能性情報抽出ステップは、プログラム中の
関数呼出し点の位置情報を実行可能性情報として抽出す
る。そして、中断点設定命令受付ステップは、ユーザが
例えば関数呼出し中断点設定命令を入力するのを受け付
け、中断点設定ステップに制御を移す。中断点設定ステ
ップは、前記実行可能性情報からプログラム中の関数呼
出し点の位置情報をプログラムの関連する1つまたは複
数の位置として取り出し、それらの位置に中断点の設定
を行う。かくして、複数の関数呼出し点に中断点を容易
に設定することが出来るようになり、ユーザの負担が軽
減されるようになる。
In the method of setting a program execution break point according to the present invention,
When a specific processing unit of the program is, for example, a function call, the feasibility information extraction step extracts the position information of the function call point in the program as the feasibility information. Then, the interruption point setting command reception step receives, for example, a user inputting a function call interruption point setting command, and shifts control to the interruption point setting step. The break point setting step fetches the position information of the function call point in the program from the executability information as one or a plurality of positions associated with the program, and sets break points at those positions. Thus, it becomes possible to easily set break points at a plurality of function call points, and the burden on the user is reduced.

【0008】[0008]

【実施例】以下、図に示す実施例により本発明を詳細に
説明する。なお、これにより本発明が限定されるもので
はない。 −第1実施例− 図1は、本発明のプログラム実行中断点設定方法を実施
するデバッギング装置の構成図である。このデバッギン
グ装置1000は、メモリ1001と、表示装置100
2と、CPU1003と、入力装置1004と、外部記
憶装置1005とを具備している。メモリ1001に
は、本発明のプログラム実行中断点設定方法を実施する
ことが可能なコンパイル処理およびデバッグ処理のプロ
グラムが記憶されている。
The present invention will be described in detail below with reference to the embodiments shown in the drawings. The present invention is not limited to this. First Embodiment FIG. 1 is a block diagram of a debugging device for carrying out the program execution break point setting method of the present invention. The debugging device 1000 includes a memory 1001 and a display device 100.
2, a CPU 1003, an input device 1004, and an external storage device 1005. The memory 1001 stores a program for a compile process and a debug process capable of implementing the program execution breakpoint setting method of the present invention.

【0009】図2は、本発明の第1実施例のプログラム
実行中断点設定方法にかかる処理群の構成図である。コ
ンパイル処理5は、ソースプログラム4を解析し、オブ
ジェクトコード6およびソース情報ファイル7を生成す
る。ソース情報ファイル7には、従来技術の場合と同様
に、行アドレス対応表71が含まれている。行アドレス
対応表71の詳細は後述する。さらに、ソース情報ファ
イル7には、従来技術の場合と異なり、関数呼出し情報
72が含まれている。関数呼出し情報72の詳細は後述
する。なお、ソース情報ファイル7の情報をオブジェク
トコード6に含ませれば、ソース情報ファイル7を独立
したファイルとしなくてもよい。
FIG. 2 is a block diagram of a processing group according to the program execution interruption point setting method of the first embodiment of the present invention. The compiling process 5 analyzes the source program 4 and generates an object code 6 and a source information file 7. The source information file 7 includes a row address correspondence table 71 as in the case of the conventional technique. Details of the row address correspondence table 71 will be described later. Further, the source information file 7 includes the function call information 72, which is different from the conventional technique. Details of the function call information 72 will be described later. If the information of the source information file 7 is included in the object code 6, the source information file 7 does not have to be an independent file.

【0010】デバッグ処理1は、入力処理2からユーザ
が入力した中断点設定コマンド21に従い、中断点表
3,ソースプログラム4,オブジェクトコード6および
ソース情報ファイル7を用いて、デバッグを行う。デバ
ッグ処理1には、コマンド解析処理11と、中断点設定
処理12と、命令実行処理13と、ブレーク処理14
と,中断点表示処理15とが含まれる。
The debug processing 1 performs debugging using the break point table 3, the source program 4, the object code 6, and the source information file 7 in accordance with the break point setting command 21 input by the user from the input processing 2. The debug process 1 includes a command analysis process 11, a breakpoint setting process 12, an instruction execution process 13, and a break process 14.
And interruption point display processing 15.

【0011】図3は、ソースプログラム4の例である。FIG. 3 shows an example of the source program 4.

【0012】プログラム言語はC言語である。1行から
7行に関数absの定義があり、15行と16行にその
関数absの呼出しがある。また、11行から18行に
関数absmaxの定義があり、26行にその関数ab
smaxの呼出しがある。
The programming language is C language. The 1st to 7th lines have the definition of the function abs, and the 15th and 16th lines have the call to the function abs. Also, the definition of the function absmax is on lines 11 to 18, and the definition of the function absmax is on line 26.
There is a call to smax.

【0013】図4は、行アドレス対応表71の例であ
る。行アドレス対応表71の各エントリは、ソース位置
711としてソースプログラム4上の行番号を有し、ま
た、オブジェクト位置として前記行番号のソースプログ
ラム部分のコンパイル結果が格納されているオブジェク
トコード6上のアドレスを有している。例えば、エント
リ7111は、図3のソースプログラム4上の行番号2
4がオブジェクトコード6上のアドレス228に対応す
ることを表している。なお、ソース位置は、ソースプロ
グラム上での特定のプログラム要素の位置であり、一般
的には、ソースプログラム番号とそのソースプログラム
上の行番号と列番号とを組み合わせて表現される。しか
し、本発明においてソース位置の表現方法は本質的な事
項ではないので、説明の簡略化のため、ソースプログラ
ムが1つであり,1行に関数呼出しは1つしかないもの
とし、ソース位置は行番号のみで指定可能であるものと
する。
FIG. 4 is an example of the row address correspondence table 71. Each entry of the row address correspondence table 71 has a line number on the source program 4 as the source position 711, and on the object code 6 where the compile result of the source program portion of the line number is stored as the object position. Have an address. For example, entry 7111 is line number 2 in source program 4 in FIG.
4 corresponds to the address 228 on the object code 6. The source position is the position of a specific program element on the source program, and is generally expressed by combining the source program number and the line number and column number on the source program. However, in the present invention, the method of expressing the source position is not an essential matter. Therefore, for simplification of the explanation, it is assumed that there is one source program and there is only one function call per line. It can be specified only by the line number.

【0014】図5は、関数呼出し情報72が含む呼出し
情報表721の例である。呼出し情報表721の各エン
トリは、呼出しソース位置情報7211としてソースプ
ログラム4上の行番号を有し、また、関数番号7212
として当該行番号で呼び出される関数を表わす関数の番
号(図6参照)を有している。
FIG. 5 is an example of a call information table 721 included in the function call information 72. Each entry of the call information table 721 has a line number on the source program 4 as call source position information 7211, and a function number 7212.
Has the function number (see FIG. 6) representing the function called by the line number.

【0015】図6は、関数呼出し情報72が含む関数情
報表722の例である。関数情報表722の各エントリ
は、関数番号7221として関数に任意に付けた番号を
有し、また、関数名称7222としてソースプログラム
4で定義された関数の名称を有し、また、関数属性72
23としてコンパイル処理5で明らかになった関数の各
種属性(性質)の情報を有している。ただし、関数属性
7223は、第1実施例では使用しないので、空欄とな
っている(後述する第2実施例において使用する)。な
お、関数情報表722の情報を呼出し情報表721の中
に含ませれば、独立した表としなくてもよい。
FIG. 6 is an example of the function information table 722 included in the function call information 72. Each entry of the function information table 722 has a number arbitrarily assigned to the function as the function number 7221, the name of the function defined in the source program 4 as the function name 7222, and the function attribute 72.
Reference numeral 23 has information on various attributes (properties) of the function that are clarified in the compile processing 5. However, since the function attribute 7223 is not used in the first embodiment, it is blank (used in the second embodiment described later). In addition, if the information of the function information table 722 is included in the call information table 721, it does not have to be an independent table.

【0016】上記呼出し情報表721および関数情報表
722の各エントリは、の意味解析時に関数または関数
呼出しが認識される度に作成される。
Each entry of the call information table 721 and the function information table 722 is created every time a function or a function call is recognized during the semantic analysis.

【0017】図7は、コンパイル処理5が関数呼出し情
報72を作成する処理のフローチャートである。この処
理は、コンパイル処理5のフロント部(字句構文意味解
析フェーズ)の一部を成すものである。ステップ600
では、関数番号カウンタCFIを“0”に初期化する。
また、ソース行番号カウンタSLNを“0”に初期化す
る。ステップ601では、ソースプログラム4の1行を
読み込み、ソース行番号カウンタSLNをインクリメン
トする。ステップ602では、ソースプログラム4の最
後かを判定し、最後なら処理を終了し、最後でないなら
ステップ603に進む。ステップ603では、構文意味
解析を行う。これは中間ファイル(中間語やシンボル表
等)の出力も含んでおり、従来技術におけるフロント部
の処理にそのまま対応している。
FIG. 7 is a flow chart of a process in which the compile process 5 creates the function call information 72. This process is a part of the front part (the lexical syntactic and semantic analysis phase) of the compilation process 5. Step 600
Then, the function number counter CFI is initialized to "0".
Further, the source line number counter SLN is initialized to "0". In step 601, one line of the source program 4 is read and the source line number counter SLN is incremented. In step 602, it is determined whether the source program 4 is the last one. If it is the last one, the process is terminated. If not, the process proceeds to step 603. In step 603, syntactic and semantic analysis is performed. This includes the output of an intermediate file (intermediate language, symbol table, etc.), and directly corresponds to the processing of the front part in the conventional technique.

【0018】ステップ604では、当該行が関数定義か
判定し、関数定義のときはステップ605に進み、関数
定義でないときはステップ607に進む。ステップ60
5では、関数番号カウンタCFIをインクリメントす
る。ステップ606では、関数情報表722にエントリ
を作成し、関数番号カウンタCFIの値を関数番号72
21に格納し、関数の名称を関数名称7222に格納
し、関数の属性を関数属性7223に格納する。ただ
し、関数属性7223は、第1実施例では使用しないの
で、空欄とする(後述する第2実施例においては使用す
る)。そして、前記ステップ601に戻る。
In step 604, it is determined whether the line is a function definition. If it is a function definition, the process proceeds to step 605. If it is not a function definition, the process proceeds to step 607. Step 60
In 5, the function number counter CFI is incremented. In step 606, an entry is created in the function information table 722, and the value of the function number counter CFI is set to the function number 72.
21, the function name is stored in the function name 7222, and the function attribute is stored in the function attribute 7223. However, since the function attribute 7223 is not used in the first embodiment, it is blank (used in the second embodiment described later). Then, the process returns to step 601.

【0019】ステップ607では、関数呼出しか判定
し、関数呼出しのときはステップ608に進み、関数呼
出しでないときは前記ステップ601に戻る。ステップ
608では、呼び出す関数の名称から関数情報表722
より関数番号CFNを取得する。ステップ609では、
呼出し情報表721にエントリを作成し、ソース行番号
カウンタSLNの値を呼出しソース位置7211に格納
し、関数番号CFNの値を関数番号7212に格納す
る。そして、前記ステップ601に戻る。
In step 607, only the function call is judged. If the function is called, the process proceeds to step 608. If the function is not called, the process returns to step 601. In step 608, the function information table 722
The function number CFN is acquired. In step 609,
An entry is created in the call information table 721, the value of the source line number counter SLN is stored in the call source position 7211, and the value of the function number CFN is stored in the function number 7212. Then, the process returns to step 601.

【0020】図8は、中断点設定コマンド21の例であ
る。第1のコマンド101は、行番号を指定する通常の
中断点設定コマンドであり、オペランド「24」が中断
点を設定される行番号である。第2のコマンド102
は、本発明にかかる呼出し中断点設定コマンドであり、
オペランド「abs」が呼出し中断点を設定される関数
名称である。
FIG. 8 shows an example of the break point setting command 21. The first command 101 is a normal break point setting command that specifies the line number, and the operand "24" is the line number at which the break point is set. Second command 102
Is a call break point setting command according to the present invention,
The operand "abs" is the function name for which the call break point is set.

【0021】図9は、呼出し中断点設定コマンドに対し
てデバッグ処理1のコマンド解析処理11および中断点
設定処理12が行う処理のフローチャートである。ステ
ップ901では、呼出し中断点設定コマンドのオペラン
ドより関数名称FNを読み込む。ステップ902では、
関数情報表722を検索し、関数名称FNに対応する関
数番号SFIを取得する。ステップ903では、検索エ
ントリ番号カウンタFIに“0”を設定し、初期化す
る。ステップ904では、検索エントリ番号カウンタF
Iを、インクリメントする。ステップ905では、検索
エントリ番号カウンタFIと呼出し情報表721のエン
トリ総数CNMとを比較し、FI≦CNMならステップ
906に進み、FI>CNMなら未検討のエントリが無
いので、処理を終了する。
FIG. 9 is a flowchart of the processing executed by the command analysis processing 11 and the breakpoint setting processing 12 of the debug processing 1 for the call breakpoint setting command. In step 901, the function name FN is read from the operand of the call interruption point setting command. In step 902,
The function information table 722 is searched to acquire the function number SFI corresponding to the function name FN. In step 903, the search entry number counter FI is set to "0" and initialized. In step 904, the search entry number counter F
Increment I. In step 905, the search entry number counter FI is compared with the total number CNM of entries in the call information table 721. If FI ≦ CNM, the process proceeds to step 906, and if FI> CNM, there are no unexamined entries, and the process ends.

【0022】ステップ906では、検索エントリ番号カ
ウンタFIの値をエントリ番号とする呼出し情報表72
1のエントリを調べ、そのエントリの関数番号7212
の内容と関数番号SFIとを比較する。一致しないとき
は、前記ステップ904へ戻る。一致したときは、ステ
ップ907へ進む。ステップ907では、当該エントリ
の呼出しソース位置7211の内容である行番号CIを
取り出し、その行番号CIを中断点表3に登録する。そ
して、前記ステップ904に戻る。
In step 906, a call information table 72 whose entry number is the value of the search entry number counter FI
1 entry is checked, and the function number 7212 of that entry
And the function number SFI are compared. If they do not match, the process returns to step 904. If they match, the process proceeds to step 907. In step 907, the line number CI which is the contents of the calling source position 7211 of the entry is fetched and the line number CI is registered in the interruption point table 3. Then, the process returns to step 904.

【0023】図10は、図8の中断点設定コマンド10
1,102から作成された中断点表3の例である。図3
のソースプログラム4は行番号のみで管理されるものと
するので、中断点表3は行番号31のみで構成されてい
る。エントリ331は、図8の第1のコマンド101に
対応し、ソースプログラム4の24行目に中断点が設定
されることを示す。また、エントリ332とエントリ3
33は、図8の第2のコマンド102に対応し、ソース
プログラム4の15行目と16行目に中断点が設定され
ることを示している。
FIG. 10 shows an interruption point setting command 10 of FIG.
It is an example of the interruption point table 3 created from 1, 102. Figure 3
Since the source program 4 of 4 is managed only by the line number, the breakpoint table 3 is composed of only the line number 31. The entry 331 corresponds to the first command 101 in FIG. 8 and indicates that the break point is set on the 24th line of the source program 4. Also, entry 332 and entry 3
Reference numeral 33 corresponds to the second command 102 in FIG. 8 and indicates that break points are set on the 15th and 16th lines of the source program 4.

【0024】図2に戻り、中断点設定処理12は、中断
点表3を作成後、行アドレス対応表71を参照して、中
断点表3に登録した行番号に対応するオブジェクト位置
を求め、オブジェクトコード6上の該当位置の命令を退
避し、その命令を割込み命令で置換する。その後、命令
実行処理13は、オブジェクトコード6を実行する。中
断点に至ると、割込み命令を実行し、割込みを発生させ
る。すると、ブレーク処理14は、オブジェクトコード
6の実行を中断させ、ユーザからの入力を待つ。このと
き、中断点表示処理15は、中断点付近のソースプログ
ラム4の内容を表示し、カーソル等により中断点を強調
表示する。ユーザが入力処理2を介して継続実行を指示
すると、中断点の退避されている元の命令を実行した
後、割込み命令の次の命令からオブジェクトコード6の
実行を再開する。
Returning to FIG. 2, the breakpoint setting processing 12 obtains the object position corresponding to the line number registered in the breakpoint table 3 by referring to the row address correspondence table 71 after creating the breakpoint table 3. The instruction at the corresponding position on the object code 6 is saved, and the instruction is replaced with the interrupt instruction. After that, the instruction execution process 13 executes the object code 6. When the break point is reached, the interrupt instruction is executed and an interrupt is generated. Then, the break processing 14 suspends the execution of the object code 6 and waits for an input from the user. At this time, the break point display processing 15 displays the contents of the source program 4 near the break point and highlights the break point with a cursor or the like. When the user instructs continuous execution via the input process 2, the original instruction whose interrupt point has been saved is executed, and then the execution of the object code 6 is restarted from the instruction following the interrupt instruction.

【0025】以上の第1実施例によれば、ユーザは関数
名称を指定するだけで、その関数の全ての呼出し点に中
断点を設定することができ、デバッグ作業を効率的に行
なうことが出来る。
According to the first embodiment described above, the user can set the break points at all the calling points of the function only by specifying the function name, and the debugging work can be performed efficiently. .

【0026】−第2実施例− 第1実施例におけるソースプログラム4のプログラム言
語はC言語であったが、第2実施例におけるソースプロ
グラム4のプログラム言語はC++言語である。本発明
によるプログラム実行の中断点設定方法は、関数の種別
が豊富にあり,暗黙的な関数呼出しや動的束縛が可能な
C++言語に対して導入すると特に有用である。第2実
施例のプログラム実行の中断点設定方法を実施する計算
機の構成は、図1と同じである。また、処理群の構成
は、図2と同じである。
Second Embodiment The programming language of the source program 4 in the first embodiment was C language, but the programming language of the source program 4 in the second embodiment is C ++ language. The program execution breakpoint setting method according to the present invention is particularly useful when introduced to a C ++ language that has a wide variety of function types and is capable of implicit function call and dynamic binding. The configuration of the computer that implements the program execution breakpoint setting method of the second embodiment is the same as in FIG. The configuration of the processing group is the same as that in FIG.

【0027】図11は、第2実施例の説明のためのソー
スプログラム4の例である。なお、図3との区別のた
め、行番号は101行からとした。プログラム言語はC
++言語である。C++言語では、関数は、クラス内に
存在するメンバ関数とクラスの外に存在する非メンバ関
数とがある。図11の関数はすべてメンバ関数である。
非メンバ関数は、図2の各関数と同様である。メンバ関
数はクラス内に存在するので、関数の特定のためにはク
ラス名を修飾する必要がある。そこで、一般に、 「クラス名::メンバ関数名(引数型リスト)」 の形式で関数を表現する。引数型リストを付与するの
は、多義化関数(同一名称で引数の型が異なる関数が定
義できる)を考慮しているためである。図11では、ク
ラスListには、 102行目に構築子List::List() 104行目に仮想関数List::print() 105行目に演算子関数List::operator
+(List) がそれぞれ定義されている。また、クラスiListに
は、108行目の後半の「:List」の指定により、
クラスListの全メンバ(関数も含む)を継承してい
る。さらに、このクラスiListに特有の関数とし
て、 110行目に仮想関数iList::print() が定義されている。この110行目は、継承された仮想
関数List::print()を、クラスiList
内で再定義したものである。構築子は、オブジェクトが
定義されるときに自動的に呼び出されるもので、図11
では、113行目で関数List::List()が呼
び出される。また、演算子関数は、演算子「+」により
呼びだすことが可能で、例えば125行目で、105行
目で定義された演算子関数の呼出しが行なわれる。この
113行目の構築子の呼出し及び125行目の演算子関
数の呼出しのように、明示的な関数呼出しの形式をとら
ない関数呼出しが暗黙的な関数呼出しである。
FIG. 11 shows an example of the source program 4 for explaining the second embodiment. In order to distinguish from FIG. 3, the line numbers are from 101st line. Programming language is C
It is a ++ language. In the C ++ language, a function has a member function existing inside a class and a non-member function existing outside the class. All the functions in FIG. 11 are member functions.
The non-member function is similar to each function in FIG. Since the member function exists in the class, it is necessary to qualify the class name to identify the function. Therefore, generally, a function is expressed in the form of "class name :: member function name (argument type list)". The argument type list is added because the ambiguity function (functions with the same name but different argument types can be defined) is considered. In FIG. 11, the class List has a constructor List :: List () on line 102, a virtual function List :: print () on line 104, and an operator function List :: operator on line 105.
+ (List) is defined respectively. Also, for the class iList, by specifying ": List" in the latter half of the 108th line,
It inherits all members (including functions) of class List. Further, as a function peculiar to this class iList, a virtual function iList :: print () is defined in the 110th line. In the 110th line, the inherited virtual function List :: print () is added to the class iList.
It was redefined in. The constructor is called automatically when the object is defined.
Then, the function List :: List () is called at the 113th line. The operator function can be called by the operator "+". For example, at line 125, the operator function defined at line 105 is called. A function call that does not take the form of an explicit function call, such as the call of the constructor on the 113th line and the call of the operator function on the 125th line, is an implicit function call.

【0028】一方、104行目と110行目の仮想関数
は、動的束縛により、オブジェクトの型(=クラス)に
応じて実行時に選択実行される。122行目と124行
目が動的束縛の例である。122行目または124行目
の変数lpの指す先がList型であるときはLis
t::print()を呼び出し、iList型である
ときはiList::print()を呼び出す。図1
1のソースプログラム4では、121行目と123行目
の状況から、122行目ではList::prin
t()を呼び出し、124行目ではiList::pr
int()を呼び出すことが判るが、一般には、実行時
になるまでどの仮想関数が呼ばれるのか不明である。
On the other hand, the virtual functions on the 104th and 110th lines are selected and executed at the time of execution according to the type (= class) of the object by dynamic binding. Lines 122 and 124 are examples of dynamic binding. Lis when the destination pointed to by the variable lp on the 122nd or 124th line is the List type
Call t :: print (), and if it is an iList type, call iList :: print (). Figure 1
In the source program 4 of No. 1, from the situation of the 121th line and the 123rd line, in the 122nd line, List :: print
Call t (), and in line 124, iList :: pr
It can be seen that int () is called, but generally it is unknown which virtual function will be called until run time.

【0029】図12は、図11のソースプログラム4に
対して作成された呼出し情報表721である。図13
は、図11のソースプログラム4に対して作成された関
数情報表722である。図6の関数情報表722と異な
り、関数の属性が関数属性7223に格納されている。
なお、図6との区別のため、関数番号は4番からとし
た。
FIG. 12 is a call information table 721 created for the source program 4 of FIG. FIG.
Is a function information table 722 created for the source program 4 of FIG. 11. Unlike the function information table 722 in FIG. 6, the function attribute is stored in the function attribute 7223.
For the sake of distinction from FIG. 6, the function number starts from 4.

【0030】図14は、中断点設定コマンドの例であ
る。コマンド103は、本発明にかかる属性指定型呼出
し中断点設定コマンドである。属性条件指定オペランド
「con」は、属性条件として「関数属性が構築子(c
on)であること」を指定している。この外に、消滅子
(des),多義化演算子関数(ovp),仮想関数
(vir)といった属性であることを指定できる。関数
指定オペランド「List::List()」は、関数
名称を指定する。このコマンド103に対しては、関数
List::List()の属性をチェックし、属性が
構築子(con)であるときのみ、その呼出し点に呼出
し中断点を設定する。なお、属性条件指定オペランドで
指定する属性条件は任意である。例えば暗黙呼出し可能
な関数に対して「属性が構築子または消滅子または多義
化演算子であること」という条件などを指定することも
可能である。また、関数指定オペランドは省略すること
が出来る。省略した場合は、全ての暗黙呼出し可能な関
数を指定したものとして処理される。これと同等の専用
の条件付き呼出し中断点設定コマンドを設けてもよい。
FIG. 14 shows an example of the break point setting command. The command 103 is an attribute-designated call interruption point setting command according to the present invention. The attribute condition specification operand “con” has the attribute condition “function attribute is a constructor (c
on) ”is specified. In addition to this, attributes such as an extinction (des), a polysemy operator function (ovp), and a virtual function (vir) can be specified. The function designation operand "List :: List ()" designates a function name. For this command 103, the attribute of the function List :: List () is checked, and only when the attribute is the constructor (con), the call interruption point is set at the call point. The attribute condition specified by the attribute condition specification operand is arbitrary. For example, it is possible to specify a condition that an attribute is a constructor, an extinct child, or a ambiguity operator for a function that can be implicitly called. Further, the function designation operand can be omitted. If omitted, all implicitly callable functions are processed. A dedicated conditional call interruption point setting command equivalent to this may be provided.

【0031】コマンド104は、本発明にかかる動的呼
出し中断点設定コマンドである。オペランドは省略され
ているが、関数名称を指定可能である。オペランドが省
略されている場合は、全ての動的呼出し可能な関数に対
する全ての動的呼出し点(実行時になるまで呼出し関数
が確定しない呼出し点)に中断点を設定する。一方、関
数名称がオペランドで指定されている場合は、その関数
が動的呼出し可能な関数であるか否かを関数属性により
判断し、可能であるときのみ、その関数に対する全ての
動的呼出し点に中断点を設定する。
The command 104 is a dynamic call interruption point setting command according to the present invention. Although the operand is omitted, the function name can be specified. When the operand is omitted, the break points are set at all the dynamic call points for all the dynamically callable functions (call points at which the call function is not fixed until the execution time). On the other hand, when the function name is specified by the operand, whether the function is a dynamically callable function or not is determined by the function attribute, and only when it is possible, all the dynamic call points for the function are determined. Set a break point at.

【0032】図15は、属性指定型呼出し中断点設定コ
マンドに対してデバッグ処理1のコマンド解析処理11
および中断点設定処理12が行う処理のフローチャート
である。なお、説明の簡単のため、関数オペランドは省
略されないものとする。関数オペランドが省略される場
合は、後述する図16のフローチャートと同様になる。
ステップ151では、属性指定型呼出し中断点設定コマ
ンドのオペランドより属性条件と関数名称FNを読み込
む。ステップ152では、関数情報表722を検索し、
関数名称FNの関数番号SFIを取得する。ステップ1
53では、関数情報表722を検索し、関数名称FNの
関数属性7223を取得し、それが属性条件指定オペラ
ンドで指定された条件に合致するかどうかを判定する。
合致しない場合は、中断点を設定することなく、処理を
終了する。合致した場合は、ステップ154に進む。
FIG. 15 shows a command analysis process 11 of the debug process 1 for the attribute-designated call interruption point setting command.
9 is a flowchart of a process performed by a break point setting process 12. For simplicity of explanation, the function operands are not omitted. When the function operand is omitted, the process becomes the same as the flowchart of FIG. 16 described later.
In step 151, the attribute condition and the function name FN are read from the operand of the attribute designation type call interruption point setting command. In step 152, the function information table 722 is searched,
The function number SFI of the function name FN is acquired. Step 1
In 53, the function information table 722 is searched, the function attribute 7223 of the function name FN is acquired, and it is determined whether or not it matches the condition designated by the attribute condition designation operand.
If they do not match, the process ends without setting a break point. If they match, the process proceeds to step 154.

【0033】ステップ154では、検索エントリ番号カ
ウンタFIに“0”を設定し、初期化する。ステップ1
55では、検索エントリ番号カウンタFIを、インクリ
メントする。ステップ156では、検索エントリ番号カ
ウンタFIと呼出し情報表721のエントリ総数CNM
とを比較し、FI≦CNMならステップ157に進み、
FI>CNMなら未検討のエントリが無いので、処理を
終了する。
In step 154, the search entry number counter FI is set to "0" and initialized. Step 1
At 55, the search entry number counter FI is incremented. In step 156, the search entry number counter FI and the total number of entries CNM in the call information table 721 are CNM.
And FI ≦ CNM, the process proceeds to step 157,
If FI> CNM, there are no unexamined entries, and the process ends.

【0034】ステップ157では、検索エントリ番号カ
ウンタFIの値をエントリ番号とする呼出し情報表72
1のエントリを調べ、そのエントリの関数番号7212
の内容と関数番号SFIとを比較する。一致しないとき
は、前記ステップ155へ戻る。一致したときは、ステ
ップ158へ進む。ステップ158では、当該エントリ
の呼出しソース位置7211の内容である行番号CIを
取り出し、その行番号CIを中断点表3に登録する。そ
して、前記ステップ155に戻る。
In step 157, the call information table 72 whose entry number is the value of the search entry number counter FI
1 entry is checked, and the function number 7212 of that entry
And the function number SFI are compared. If they do not match, the process returns to step 155. If they match, the process proceeds to step 158. In step 158, the line number CI which is the contents of the calling source position 7211 of the entry is fetched and the line number CI is registered in the interruption point table 3. Then, the process returns to step 155.

【0035】図16は、デバッグ処理1のコマンド解析
処理11および中断点設定処理12が動的呼出し中断点
設定コマンドに応じて中断点を設定する処理のフローチ
ャートである。ステップ161では、動的呼出し中断点
設定コマンドのオペランドより関数名称FNを読み込
む。ステップ162では、関数名称FNの指定があった
か判定する。関数名称FNの指定があったときは、ステ
ップ163に進む。関数名称FNの指定が省略されてい
たときは、ステップ165に進む。
FIG. 16 is a flow chart of a process in which the command analysis process 11 and the break point setting process 12 of the debug process 1 set a break point according to a dynamic call break point setting command. In step 161, the function name FN is read from the operand of the dynamic call breakpoint setting command. In step 162, it is determined whether the function name FN has been designated. If the function name FN is specified, the process proceeds to step 163. If the designation of the function name FN is omitted, the process proceeds to step 165.

【0036】ステップ163では、関数情報表722を
検索し、関数名称FNのエントリFNIを取得する。ス
テップ164では、エントリFNIに対して、図15と
同様にして仮想関数指定の呼出し中断点を設定する。そ
して、処理を終了する。
In step 163, the function information table 722 is searched and the entry FNI of the function name FN is acquired. In step 164, a call interruption point designated by a virtual function is set for the entry FNI in the same manner as in FIG. Then, the process ends.

【0037】ステップ165ではエントリ番号カウンタ
FNIを“0”で初期化する。ステップ166ではエン
トリ番号カウンタFNIをインクリメントする。ステッ
プ167では、エントリ番号カウンタFNIと関数情報
表722のエントリ総数FNMとを比較し、FNI≦F
NMならステップ168に進み、FNI>FNMなら未
検討のエントリが無いので、処理を終了する。ステップ
168では、エントリFNIに対して、図15と同様に
して仮想関数指定の呼出し中断点を設定する。そして、
前記ステップ166に戻る。
At step 165, the entry number counter FNI is initialized to "0". In step 166, the entry number counter FNI is incremented. In step 167, the entry number counter FNI is compared with the total number of entries FNM in the function information table 722, and FNI ≦ F
If NM, the process proceeds to step 168. If FNI> FNM, there is no unexamined entry, and the process is terminated. In step 168, a virtual function-specified call interruption point is set for the entry FNI in the same manner as in FIG. And
Return to step 166.

【0038】図17は、図14の中断点設定コマンド1
03,104から作成された中断点表3の例である。図
11のソースプログラム4は行番号のみで管理されるも
のとするので、中断点表3は行番号31のみで構成され
ている。エントリ334は、図14の属性指定型呼出し
中断点設定コマンド103に対応し、ソースプログラム
4の113行目に中断点が設定されることを示す。ま
た、エントリ335とエントリ336は、図14の動的
呼出し中断点設定コマンド104に対応し、ソースプロ
グラム4の122行目と125行目に中断点が設定され
ることを示している。
FIG. 17 shows the interruption point setting command 1 of FIG.
It is an example of the interruption point table 3 created from 03,104. Since the source program 4 in FIG. 11 is managed only by the line number, the break point table 3 is composed of only the line number 31. The entry 334 corresponds to the attribute-designated call interruption point setting command 103 in FIG. 14 and indicates that the interruption point is set on the 113th line of the source program 4. Further, the entries 335 and 336 correspond to the dynamic call interruption point setting command 104 of FIG. 14, and indicate that the interruption points are set on the 122nd and 125th lines of the source program 4.

【0039】以上の第2実施例によれば、ユーザは、関
数名称と共に関数属性条件の指定により呼出し中断点の
設定を行なうことが出来る。これにより、関数属性に応
じたきめ細かな中断点の設定や,関数属性を確認した上
での中断点の設定が可能となる。さらに、暗黙的関数呼
出し点,動的束縛による関数呼出し点の確認を効果的に
行なうことができ、デバッグ作業の効率化に寄与する。
According to the second embodiment described above, the user can set the call interruption point by specifying the function name and the function attribute condition. As a result, it becomes possible to set a fine break point according to the function attribute and set a break point after checking the function attribute. Furthermore, it is possible to effectively confirm the implicit function call point and the function call point by dynamic binding, which contributes to the efficiency of the debugging work.

【0040】−第3実施例− 第3実施例は、中断点設定指示コマンド21の入力の代
りに、メニュー選択方式で中断点設定指示を行うもので
ある。図18は、メニュー画面の一例である。このメニ
ュー画面は、ソースプログラム表示画面181と、中断
点設定画面182とからなっている。また、中断点設定
画面182は、中断点設定の条件を指定する選択メニュ
ーとして、関数属性選択メニュー1821,クラス指定
選択メニュー1822,関数指定選択メニュー182
3,関数中断点選択メニュー1824を備えている。
Third Embodiment In the third embodiment, instead of inputting the break point setting instruction command 21, a break point setting instruction is given by a menu selection method. FIG. 18 is an example of a menu screen. The menu screen includes a source program display screen 181 and a break point setting screen 182. Further, the breakpoint setting screen 182 has function attribute selection menus 1821, class designation selection menus 1822, and function designation selection menus 182 as selection menus for designating the conditions for setting the breakpoints.
3. A function break point selection menu 1824 is provided.

【0041】関数属性選択メニューは、選択フィールド
18211を持っており、マウス等のポインティングデ
バイスで選択フィールドをクリックして条件を指定す
る。指定された条件の選択フィールド18211には、
選択マークが入れられる。他の選択メニューも同様であ
る。クラス指定選択メニュー1822では、「対象クラ
ス指定」をユーザが指定したため、デバッグ処理1はソ
ースプログラム4中のクラスの一覧を選択サブメニュー
18221として表示している。このように選択サブメ
ニューを表示することで、より詳細な条件指定が可能と
なっている。
The function attribute selection menu has a selection field 18211, and a condition is specified by clicking the selection field with a pointing device such as a mouse. In the selection field 18211 of the specified condition,
A selection mark is added. The same applies to other selection menus. In the class designation selection menu 1822, since the user has designated “target class designation”, the debug processing 1 displays a list of classes in the source program 4 as a selection submenu 18221. By displaying the selection submenu in this way, it is possible to specify more detailed conditions.

【0042】なお、図18のメニュー画面例による中断
点の設定は、図14の属性指定型呼出し中断点コマンド
103による中断点の設定と等価である。
The setting of the break point by the example of the menu screen of FIG. 18 is equivalent to the setting of the break point by the attribute designation type call break point command 103 of FIG.

【0043】[0043]

【発明の効果】本発明のプログラム実行中断点設定方法
によれば、ユーザがプログラムの特定の処理単位に対す
る実行可能性を利用した中断点設定命令を入力するだけ
で、プログラムの関連する1つまたは複数の位置に対し
中断点の設定を行うことが出来るようになる。そこで、
ユーザに負担をかけることなく,例えば複数の関数呼出
し点に中断点を設定することが出来るようになる。
According to the program execution break point setting method of the present invention, the user only needs to input a break point setting command utilizing the executability of the program for a specific processing unit, and one of It becomes possible to set break points for multiple positions. Therefore,
For example, it becomes possible to set break points at a plurality of function call points without burdening the user.

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

【図1】本発明のプログラム実行中断点設定方法を実施
するデバッギング装置の構成図である。
FIG. 1 is a configuration diagram of a debugging device that implements a program execution breakpoint setting method of the present invention.

【図2】本発明の第1実施例のプログラム実行中断点設
定方法にかかる処理群の構成図である。
FIG. 2 is a configuration diagram of a processing group related to a program execution breakpoint setting method according to the first embodiment of the present invention.

【図3】ソースプログラムの例示図である。FIG. 3 is a view showing an example of a source program.

【図4】行アドレス対応表の例示図である。FIG. 4 is an exemplary diagram of a row address correspondence table.

【図5】呼出し情報表の例示図である。FIG. 5 is a view showing an example of a call information table.

【図6】関数情報表の例示図である。FIG. 6 is a view showing an example of a function information table.

【図7】関数呼出し情報作成手順を示すフローチャート
である。
FIG. 7 is a flowchart showing a procedure for creating function call information.

【図8】中断点設定コマンドの例示図である。FIG. 8 is a view showing an example of a break point setting command.

【図9】呼出し中断点設定コマンドに対する処理手順を
示すフローチャートである。
FIG. 9 is a flowchart showing a processing procedure for a call interruption point setting command.

【図10】中断点表の例示図である。FIG. 10 is an exemplary diagram of a break point table.

【図11】ソースプログラムの別の例示図である。FIG. 11 is another exemplary diagram of a source program.

【図12】呼出し情報表の別の例示図である。FIG. 12 is another exemplary diagram of a call information table.

【図13】関数情報表の別の例示図である。FIG. 13 is another exemplary diagram of a function information table.

【図14】中断点設定コマンドの別の例示図である。FIG. 14 is another exemplary diagram of a breakpoint setting command.

【図15】属性指定型呼出し中断点設定コマンドに対す
る処理手順を示すフローチャートである。
FIG. 15 is a flowchart showing a processing procedure for an attribute designation type call interruption point setting command.

【図16】動的呼出し中断点設定コマンドに対する処理
手順を示すフローチャートである。
FIG. 16 is a flowchart showing a processing procedure for a dynamic call interruption point setting command.

【図17】中断点表の別の例示図である。FIG. 17 is another exemplary diagram of a break point table.

【図18】メニュー画面の例示図である。FIG. 18 is a view showing an example of a menu screen.

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

1000 デバッギング装置 1001
メモリ 1002 表示装置 1003
CPU 1004 入力装置 1005
外部記憶装置 1 デバッグ処理 2 入力
処理 3 中断点表 4 ソー
スプログラム 5 コンパイル処理 7 ソー
ス情報ファイル 11 コマンド解析処理 12 中
断点設定手段 15 中断点表示処理
1000 Debugging device 1001
Memory 1002 Display device 1003
CPU 1004 Input device 1005
External storage device 1 Debugging process 2 Input process 3 Break point table 4 Source program 5 Compile process 7 Source information file 11 Command analysis process 12 Break point setting means 15 Break point display process

Claims (13)

【特許請求の範囲】[Claims] 【請求項1】 プログラムを解析してプログラムの特定
の処理単位に対する実行可能性情報を抽出する実行可能
性情報抽出ステップと、 プログラムの特定の処理単位に対する実行可能性を利用
した中断点設定命令を受け付ける中断点設定命令受付ス
テップと、 前記実行可能性情報と前記中断点設定命令とに基づい
て、プログラムの関連する1つまたは複数の位置に対し
中断点の設定を行う中断点設定ステップとを備えたこと
特徴とするプログラム実行中断点設定方法。
1. A feasibility information extraction step of analyzing a program to extract feasibility information for a specific processing unit of the program, and an interruption point setting command utilizing the feasibility of the program for a specific processing unit. A step of receiving a break point setting instruction, and a step of setting a break point at one or more positions associated with the program based on the feasibility information and the break point setting instruction. What is characterized is a method for setting a program execution break point.
【請求項2】 請求項1に記載のプログラム実行中断点
設定方法において、プログラムの特定の処理単位が関数
呼出しであり、実行可能性情報抽出ステップは、プログ
ラム中の関数呼出し点の位置情報を実行可能性情報とし
て抽出することを特徴とするプログラム実行中断点設定
方法。
2. The program execution breakpoint setting method according to claim 1, wherein the specific processing unit of the program is a function call, and the feasibility information extracting step executes position information of a function call point in the program. A program execution break point setting method characterized by extracting as possibility information.
【請求項3】 請求項2に記載のプログラム実行中断点
設定方法において、関数の呼出し形態として変数の宣言
や演算の形態で関数を呼び出す暗黙呼出しが可能である
とき、暗黙呼出しによる関数呼出し点の位置情報も実行
可能性情報として抽出することを特徴とするプログラム
実行中断点設定方法。
3. The program execution breakpoint setting method according to claim 2, wherein when a function can be called implicitly to call the function in the form of variable declaration or operation, the function calling point A program execution break point setting method characterized in that position information is also extracted as executability information.
【請求項4】 請求項2または請求項3に記載のプログ
ラム実行中断点設定方法において、関数の呼出し形態と
して実行時に呼び出す関数が確定する動的呼出しが可能
であるとき、動的呼出しによる関数呼出し点の位置情報
も実行可能性情報として抽出することを特徴とするプロ
グラム実行中断点設定方法。
4. The program execution breakpoint setting method according to claim 2 or 3, wherein when a function to be called can be dynamically called in which a function to be called at execution is determined as a function calling form, the function is called by dynamic calling. A program execution interruption point setting method characterized in that position information of points is also extracted as executability information.
【請求項5】 請求項2から請求項4のいずれかに記載
のプログラム実行中断点設定方法において、関数を指定
し且つその関数に対する全ての関数呼出し点に中断点を
設定する呼出し中断点設定命令を中断点設定命令受付ス
テップが受け付けたとき、中断点設定ステップは、前記
指定された関数に対するプログラム中の全ての関数呼出
し点の位置に中断点を設定することを特徴とするプログ
ラム実行中断点設定方法。
5. The program execution break point setting method according to claim 2, wherein a call break point setting instruction for specifying a function and setting break points at all function call points for the function. When the interruption point setting command acceptance step is received, the interruption point setting step sets the interruption points at the positions of all the function call points in the program for the specified function. Method.
【請求項6】 請求項2から請求項5のいずれかに記載
のプログラム実行中断点設定方法において、関数を指定
せず且つ全ての関数呼出し点に中断点を設定する呼出し
中断点設定命令を中断点設定命令受付ステップが受け付
けたとき、中断点設定ステップは、プログラム中の全て
の関数に対する全ての関数呼出し点の位置に中断点を設
定することを特徴とするプログラム実行中断点設定方
法。
6. The program execution break point setting method according to claim 2, wherein a call break point setting instruction for setting a break point to all function call points without specifying a function is interrupted. A program execution breakpoint setting method characterized in that, when the point setting command receiving step receives, the breakpoint setting step sets breakpoints at positions of all function calling points for all functions in the program.
【請求項7】 請求項1に記載のプログラム実行中断点
設定方法において、プログラムの特定の処理単位が関数
呼出しであり、実行可能性情報抽出ステップは、プログ
ラム中の関数呼出し点の位置情報および関数の呼出し方
法に関する性質や関数の種類等を規定する関数属性情報
を実行可能性情報として抽出することを特徴とするプロ
グラム実行中断点設定方法。
7. The program execution break point setting method according to claim 1, wherein the specific processing unit of the program is a function call, and the feasibility information extracting step includes position information and a function of a function call point in the program. A method for setting a program execution break point, characterized in that function attribute information that defines the nature of a method of calling a function, the type of function, etc. is extracted as executability information.
【請求項8】 請求項7に記載のプログラム実行中断点
設定方法において、関数の呼出し形態として変数の宣言
や演算の形態で関数を呼び出す暗黙呼出しが可能である
とき、暗黙呼出しによる関数呼出し点の位置情報も実行
可能性情報として抽出することを特徴とするプログラム
実行中断点設定方法。
8. The program execution break point setting method according to claim 7, wherein when a function is called by an implicit call for calling a function in the form of variable declaration or operation, the function call point by the implicit call is set. A program execution break point setting method characterized in that position information is also extracted as executability information.
【請求項9】 請求項7または請求項8に記載のプログ
ラム実行中断点設定方法において、関数の呼出し形態と
して実行時に呼び出す関数が確定する動的呼出しが可能
であるとき、動的呼出しによる関数呼出し点の位置情報
も実行可能性情報として抽出することを特徴とするプロ
グラム実行中断点設定方法。
9. The program execution breakpoint setting method according to claim 7 or 8, wherein when the function to be called can be dynamically called by determining a function to be called at the time of execution, the function is called by the dynamic call. A program execution interruption point setting method characterized in that position information of points is also extracted as executability information.
【請求項10】 請求項7から請求項9のいずれかに記
載のプログラム実行中断点設定方法において、関数およ
び関数属性条件を指定し且つその関数属性条件を満たす
全ての関数呼出し点に中断点を設定する条件付き呼出し
中断点設定命令を中断点設定命令受付ステップが受け付
けたとき、中断点設定ステップは、前記指定された関数
が前記指定された関数属性条件を満たすか判定し、満た
すときのみ、前記指定された関数に対するプログラム中
の全ての関数呼出し点の位置に中断点を設定することを
特徴とするプログラム実行中断点設定方法。
10. The program execution breakpoint setting method according to claim 7, wherein a function and a function attribute condition are specified and breakpoints are set at all function call points satisfying the function attribute condition. When the interruption point setting instruction reception step receives the conditional call interruption point setting instruction to be set, the interruption point setting step determines whether the specified function satisfies the specified function attribute condition, and only when the condition is satisfied, A program execution breakpoint setting method, wherein breakpoints are set at positions of all function call points in a program for the specified function.
【請求項11】 請求項7から請求項10のいずれかに
記載のプログラム実行中断点設定方法において、関数の
指定を省略し且つ関数属性条件を指定し且つその関数属
性条件を満たす全ての関数呼出し点に中断点を設定する
条件付き呼出し中断点設定命令を中断点設定命令受付ス
テップが受け付けたとき、中断点設定ステップは、プロ
グラム中の全ての関数に対して前記指定された関数属性
条件を満たすか判定し、満たすときのみ、その関数に対
するプログラム中の全ての関数呼出し点の位置に中断点
を設定することを特徴とするプログラム実行中断点設定
方法。
11. The program execution breakpoint setting method according to any one of claims 7 to 10, wherein function specification is omitted, function attribute conditions are specified, and all function calls satisfying the function attribute conditions are specified. Conditional call for setting a break point at a point When the break point setting command reception step receives a break point setting command, the break point setting step satisfies the specified function attribute condition for all functions in the program. A program execution break point setting method characterized in that the break points are set at the positions of all the function call points in the program for the function only when it is judged and satisfied.
【請求項12】 請求項10または請求項11に記載の
プログラム実行中断点設定方法において、関数の呼出し
形態として変数の宣言や演算の形態で関数を呼び出す暗
黙呼出しが可能であるとき、暗黙呼出しを含むように関
数属性条件を指定可能であることを特徴とするプログラ
ム実行中断点設定方法。
12. The program execution breakpoint setting method according to claim 10 or 11, wherein when the function can be called implicitly by calling the function in the form of variable declaration or operation, the implicit call is made. A method for setting a program execution break point, wherein a function attribute condition can be specified so as to include it.
【請求項13】 請求項10から請求項12のいずれか
に記載のプログラム実行中断点設定方法において、関数
の呼出し形態として実行時に呼び出す関数が確定する動
的呼出しが可能であるとき、動的呼出しを含むように関
数属性条件を指定可能であることを特徴とするプログラ
ム実行中断点設定方法。
13. The program execution interruption point setting method according to claim 10, wherein a dynamic call is made when a function to be called at the time of execution can be determined dynamically as a function call form. A method for setting a program execution break point, wherein a function attribute condition can be specified such that
JP5079645A 1993-04-06 1993-04-06 Method for setting up interruption point of program execution Pending JPH06290077A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5079645A JPH06290077A (en) 1993-04-06 1993-04-06 Method for setting up interruption point of program execution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5079645A JPH06290077A (en) 1993-04-06 1993-04-06 Method for setting up interruption point of program execution

Publications (1)

Publication Number Publication Date
JPH06290077A true JPH06290077A (en) 1994-10-18

Family

ID=13695856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5079645A Pending JPH06290077A (en) 1993-04-06 1993-04-06 Method for setting up interruption point of program execution

Country Status (1)

Country Link
JP (1) JPH06290077A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162426A (en) * 2001-11-28 2003-06-06 Hitachi Ltd Computer system with cooperative debug circuit for multiple cpu and debug method
JP2003271415A (en) * 2002-03-13 2003-09-26 Denso Corp Execution history recording device, brake instruction setting device and program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003162426A (en) * 2001-11-28 2003-06-06 Hitachi Ltd Computer system with cooperative debug circuit for multiple cpu and debug method
JP2003271415A (en) * 2002-03-13 2003-09-26 Denso Corp Execution history recording device, brake instruction setting device and program

Similar Documents

Publication Publication Date Title
US8423969B2 (en) Inheritance breakpoints for use in debugging object-oriented computer programs
US6658649B1 (en) Method, apparatus and article of manufacture for debugging a user defined region of code
CA2522605C (en) Method and system for detecting vulnerabilities in source code
US5946486A (en) Apparatus and method for tracing entries to or exits from a dynamic link library
US6305008B1 (en) Automatic statement completion
US5754755A (en) Method and system for generating test scripts
US6249907B1 (en) Method system and article of manufacture for debugging a computer program by encoding user specified breakpoint types at multiple locations in the computer program
US6789216B2 (en) Platform independent memory image analysis architecture for debugging a computer program
US7299456B2 (en) Run into function
US7552425B2 (en) Implementing enhanced compiled breakpoint analysis
US7735069B2 (en) Creating software debug breakpoints activated by specific call patterns
US20110271258A1 (en) Software Development Tool
US9417931B2 (en) Unified metadata for external components
US20110271250A1 (en) Software Development Tool
JPH0926873A (en) Method and system for discrimination of class relationship of object-oriented system
US20130019227A1 (en) Debugging Inline Functions in Optimized Code
US8607197B2 (en) Displaying HTTP session entry and exit points
EP0784264B1 (en) A computer-implemented process for determining a minimum code set for an executable application in a data processing system
US6330714B1 (en) Method and computer program product for implementing redundant lock avoidance
JPH07230386A (en) Data processor and method for calling control routine
US20090064102A1 (en) Method and system for navigationally displaying http session entry and exit points
US20020066075A1 (en) System and method for implementing a project facility
US20090019273A1 (en) Exception-based error handling in an array-based language
Hanson Event associations in SNOBOL4 for program debugging
JPH06290077A (en) Method for setting up interruption point of program execution