JP3372106B2 - Program debug device - Google Patents
Program debug deviceInfo
- Publication number
- JP3372106B2 JP3372106B2 JP13763694A JP13763694A JP3372106B2 JP 3372106 B2 JP3372106 B2 JP 3372106B2 JP 13763694 A JP13763694 A JP 13763694A JP 13763694 A JP13763694 A JP 13763694A JP 3372106 B2 JP3372106 B2 JP 3372106B2
- Authority
- JP
- Japan
- Prior art keywords
- program
- information
- class
- breakpoint
- objects
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
【0001】[0001]
【産業上の利用分野】本発明は、プログラムのデバッグ
(欠陥の除去)作業を支援するデバッグ装置の改良に関
するもので、特に、オブジェクト指向プログラムに適し
たものに係る。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an improvement of a debugging device for supporting program debugging (defect removal) work, and more particularly to a device suitable for an object-oriented program.
【0002】[0002]
【従来の技術】コンピュータのプログラムは複雑なデー
タ処理手順の集合であるから、その開発や変更の際に
は、開発者が万全を期してもプログラム中における誤り
の発生を完全に予防することが事実上困難である。した
がって、プログラムの信頼性を向上させるためには、一
応完成したプログラムを試験的に実行し、誤り(バグ)
を除去する作業(デバッグ)が必要である。2. Description of the Related Art Since a computer program is a set of complicated data processing procedures, it is possible to completely prevent the occurrence of errors in the program at the time of development or modification, even if the developer takes all possible measures. Virtually difficult. Therefore, in order to improve the reliability of the program, the completed program should be executed on a trial basis and
Work to remove (debugging) is required.
【0003】このデバッグ作業を支援する装置がプログ
ラムデバッグ装置であり、この装置は、デバッグ対象の
プログラムをユーザの操作にしたがって実行及び停止さ
せながら、プログラム中の実行箇所を表示したり、
プログラムの実行に係る実行情報(例えば、レジスタや
メモリの内容など)を表示したり、ユーザの指定した
箇所(ブレークポイント)でプログラムの実行をブレー
ク(停止)させたり、ユーザの命令や実行情報などの
実行履歴を記録する、などの機能によってプログラムの
効率的なデバッグを支援するものである。A device that supports this debugging work is a program debug device. This device displays the execution location in the program while executing and stopping the program to be debugged according to the user's operation.
Display execution information related to program execution (for example, register and memory contents), break (stop) program execution at a location (breakpoint) specified by the user, user instructions and execution information, etc. This function supports efficient debugging of programs by recording the execution history of.
【0004】そして、従来、プログラムは、データ処理
手続きを中心として構成され、処理対象となるデータ
は、処理手続きとは別個の存在として、かつ、処理手続
きに合わせて構成されていた。このような処理手続き中
心に構成されたプログラムを手続き型プログラムと呼ぶ
が、手続き型プログラムでは、1ステートメント(宣言
や命令などの記述単位)ずつ記述されたソースコード
(所定のプログラム言語で表されたプログラム)が、プ
ログラム実行時のコンピュータ上におけるデータ処理手
順を端的に表している。Conventionally, a program is mainly composed of a data processing procedure, and the data to be processed is structured separately from the processing procedure and according to the processing procedure. A program that is mainly composed of such processing procedures is called a procedural program. In a procedural program, a source code (expressed in a predetermined programming language) in which each statement (description unit such as a declaration or instruction) is described Program) simply represents the data processing procedure on the computer when the program is executed.
【0005】このため、従来のプログラムデバッグ装置
は、ステートメントや(プログラム記述における)行を
単位として、プログラムの実行中の箇所を表示したり、
ブレークポイント設定、実行履歴の記録などによるデバ
ッグの支援を行っていた。例えば、ブレークポイント
は、ユーザがソースコード上に特定の行に設定し、プロ
グラム実行における各行の実行順序にかかわらず、当該
ブレークポイントを実行する時にプログラムの実行が停
止するというものであった。For this reason, the conventional program debugging device displays the program being executed in units of statements and lines (in the program description),
It assisted in debugging by setting breakpoints and recording execution history. For example, a breakpoint is set by a user on a specific line in the source code, and execution of the program stops when the breakpoint is executed regardless of the execution order of each line in the program execution.
【0006】ところで、近年では、新たなソフトウェア
開発手法として、オブジェクト指向プログラミングが普
及している。ここで、オブジェクト指向プログラミング
とは、ソフトウェアが処理対象とする現実の事物を、ソ
フトウェア上の実体である「オブジェクト」によって表
し、現実の事物に関する情報やその情報に対する処理手
順を、それぞれ、前記オブジェクトを構成するデータ
(属性)やこのデータに対する処理手順(例えば「操作
関数」)として定義する手法である。By the way, in recent years, object-oriented programming has become popular as a new software development method. Here, the object-oriented programming expresses a real thing to be processed by software by an “object” which is a substance on the software, and the information about the real thing and a processing procedure for the information are respectively referred to as the object. This is a method of defining the data (attribute) that constitutes it and the processing procedure (for example, "operation function") for this data.
【0007】このような手法によるプログラムをオブジ
ェクト指向プログラムと称するが、オブジェクト指向プ
ログラムでは、現実の事物に対応した複数のオブジェク
トが協調動作を行うので、現実の事物間の関係に即した
情報処理をコンピュータ上に容易に実現することができ
る。この結果、現実の事物の情報構成がソフトウェア構
成上に模擬され、構成の明快な保守性に優れたソフトウ
ェアを実現することができる。また、プログラムを構成
する各モジュールの内容も客観的に理解しやすいものと
なるので、一般に、各モジュールの部品化や再利用性の
向上が容易になる。A program based on such a method is called an object-oriented program. In an object-oriented program, a plurality of objects corresponding to a real thing perform a cooperative operation, so that information processing according to the relationship between the real things is performed. It can be easily realized on a computer. As a result, the information structure of the real thing is simulated on the software structure, and the software having a clear structure and excellent maintainability can be realized. In addition, since the contents of each module that constitutes the program can be objectively understood easily, generally, it becomes easy to form each module as a component and improve reusability.
【0008】このようなオブジェクト指向プログラミン
グは、Smalltalk やC++のようなオブジェクト指向プ
ログラミング言語によって行われ、一般に、プログラム
をモジュールごとに開発するオブジェクト指向設計技法
が前提とされる。Such object-oriented programming is performed by an object-oriented programming language such as Smalltalk or C ++, and generally an object-oriented design technique for developing a program for each module is premised.
【0009】このようなオブジェクト指向プログラミン
グでは、プログラムは、概念的にはオブジェクトの集合
となるが、このオブジェクトは、プログラムの実行時に
初めてコンピュータ上に実体化するもので、オブジェク
トのデータもコンピュータのメモリ領域上に割り当てら
れた時点で初めて具体的な値をもつことができる。In such object-oriented programming, a program is conceptually a set of objects, but this object is materialized on the computer for the first time when the program is executed, and the data of the object is also the memory of the computer. It can have a concrete value only when it is allocated on the area.
【0010】したがって、オブジェクト指向プログラミ
ングにおいても、プログラムの開発は、便宜上、ソース
コードの形式で行われる。但し、オブジェクト指向プロ
グラミングにおけるソースコードは、オブジェクトの特
質を表したクラスの集合である。ここで、「クラス」と
は、プログラムを構成するモジュールであって、オブジ
ェクトのデータ及びこのデータに対する操作を表したも
のである。この「クラス」は、実体であるオブジェクト
を生成するためのひな型としての役割を果たすので、単
一のクラスから同様なオブジェクトが複数生成される場
合があるが、生成された後のオブジェクトは原則的に相
互に別個独立であり、データの内容は個々のオブジェク
トによって異なる。Therefore, also in object-oriented programming, development of a program is performed in the form of source code for convenience. However, the source code in object-oriented programming is a set of classes that express the characteristics of objects. Here, a "class" is a module that constitutes a program, and represents object data and an operation on this data. Since this "class" serves as a template for creating an object that is an entity, multiple similar objects may be created from a single class, but the objects after creation are basically Are independent of each other, and the content of data differs depending on individual objects.
【0011】以上のようなオブジェクト指向プログラミ
ング言語では、プログラミング作業の合理化のため、
「継承」という手法を用いることができる。ここで、
「継承」とは、あるクラスが、他のクラスにおけるデー
タ群や操作を受け継ぐことであり、この「受け継ぐ」と
は、継承したクラスが、継承されたクラスのデータ群と
操作とを再度記述することなく持つことができることを
意味する。In the above object-oriented programming language, in order to rationalize the programming work,
A technique called "inheritance" can be used. here,
"Inheritance" means that a class inherits data groups and operations in other classes. "Inheritance" means that the inherited class re-describes the data groups and operations of the inherited class. It means that you can have it without.
【0012】この継承は、ソースコードにおける所定の
記述によって実現され、継承を用いれば、新たなクラス
のプログラミングは、既存のクラスのデータや操作に追
加すべき差分のみの記述という、必要最小限の作業量で
簡単に終了する。This inheritance is realized by a predetermined description in the source code. With the use of inheritance, the programming of a new class is a minimum necessary description that describes only the differences to be added to the data and operations of the existing class. Easy to finish with a lot of work.
【0013】なお、一般に、継承する側のクラスを子ク
ラスといい、継承される側の(継承の元となった)クラ
スを親クラスという。また、継承は多段に行うことがで
き、あるクラスから見て、その親クラスと、さらにその
親クラスと...というように、自クラスの継承の元とな
った全てのクラスを祖先クラスと呼ぶ。同様に、あるク
ラスから見て、その子クラスと、さらにその子クラス
と...というように、自クラスから継承した全てのクラ
スを子孫クラスと呼ぶ。In general, the inheriting class is called a child class, and the inherited class (source of inheritance) is called a parent class. In addition, inheritance can be performed in multiple stages, and from the perspective of a class, all classes that are the source of inheritance of the own class are called ancestor classes, such as its parent class and its parent class. Call. Similarly, from a certain class, all classes inherited from its own class, such as its child class and its child class, are called descendant classes.
【0014】従来では、このようなオブジェクト指向プ
ログラムのデバッグも、上記のような従来のプログラム
デバッグ装置を用いて行われていた。Conventionally, the debugging of such an object-oriented program has also been performed by using the conventional program debugging device as described above.
【0015】[0015]
【発明が解決しようとする課題】ところで、オブジェク
ト指向プログラムでは、ひな型である単一のクラスに基
づいて複数のオブジェクトが生成されるので、単一のク
ラスが複数の異なるオブジェクトに対応する場合があ
る。By the way, in an object-oriented program, a plurality of objects are generated based on a single class, which is a template, so that a single class may correspond to a plurality of different objects. .
【0016】例えば、文字列一般を扱うクラス[文字
列]に基づいて、文字列を格納する2つのオブジェクト
a1,a2が生成され、このうちオブジェクトa1は人
の氏名"鈴木太郎"を内容とするのに対して、オブジェク
トa2は、エラーメッセージ"Error1:Disk Full "を内
容とするものとすると、単一のクラス[文字列]が2つ
のオブジェクトa1,a2に対応する。この場合におい
て、プログラムの動作のうち氏名データの処理にバグが
あれば、氏名を内容とするオブジェクトa1のみに着目
してデバッグを行うことが効率的である。For example, two objects a1 and a2 that store a character string are generated based on a class [character string] that handles a character string in general, and the object a1 has a person's name "Taro Suzuki" as a content. On the other hand, assuming that the object a2 has the error message "Error1: Disk Full", a single class [character string] corresponds to the two objects a1 and a2. In this case, if there is a bug in the processing of the name data in the operation of the program, it is efficient to focus only on the object a1 having the name as the content for debugging.
【0017】しかしながら、上記のような従来のデバッ
グ装置は、プログラムをソースコード中の位置に基づい
て扱い、オブジェクト単位で扱わなかったので、オブジ
ェクト指向プログラムのデバッグを効率的に支援するこ
とができなかった。すなわち、従来のプログラムデバッ
グ装置は、プログラムをオブジェクトに基づいて扱わな
かった結果、オブジェクト指向プログラミングに適用し
た場合、次のような問題点を有していた。However, since the conventional debugging device as described above handles the program based on the position in the source code and does not handle it in object units, it cannot efficiently support the debugging of the object-oriented program. It was That is, the conventional program debugging apparatus has the following problems when applied to object-oriented programming as a result of not treating the program based on objects.
【0018】[1.実行箇所表示]
プログラムの実行箇所をクラス単位で表示しても、実行
や操作の対象(以下「操作対象」という)となっている
オブジェクトが、そのクラスから生成された複数のオブ
ジェクトのうちいずれであるかを判断することが困難で
あった。例えば、上記の例において、クラス[文字列]
が実行箇所として表示されても、操作対象がオブジェク
トa1,a2のいずれであるかの判断が困難であったた
め、氏名を内容とするオブジェクトa1が操作されたと
きを捕らえてプログラムの動作内容を確認することがで
きなかった。[1. Execution location display] Even if the execution location of a program is displayed in class units, the object that is the target of execution or operation (hereinafter referred to as "operation target") is one of the multiple objects generated from that class. It was difficult to determine if there was. For example, in the above example, class [string]
Even if is displayed as the execution location, it was difficult to determine which of the objects a1 and a2 was the operation target, so the operation content of the program was confirmed by capturing when the object a1 whose name is the content was operated. I couldn't.
【0019】[2.内容表示]
また、ユーザが、特定のオブジェクトに関するデータな
どの情報の内容表示を希望することが考えられる。しか
し、従来のプログラムデバッグ装置は、オブジェクトと
いう単位を認識するように構成されていなかったので、
ソースコード上のクラスと実行時における個別具体的オ
ブジェクトを対応づけることができず、特定のオブジェ
クトの内容データを表示・出力することが困難であっ
た。[2. Content Display] Further, it is conceivable that the user desires the content display of information such as data regarding a specific object. However, since the conventional program debug device is not configured to recognize a unit called an object,
Since it was not possible to associate the class on the source code with the individual concrete object at runtime, it was difficult to display and output the content data of the specific object.
【0020】例えば、ある文字列操作でブレークした場
合、操作対象となっているデータとしては、クラス[文
字列]のデータとしてしか表示できなかったため、ユー
ザは操作対象となっているデータが、氏名を内容とする
オブジェクトa1であるのか、エラーメッセージを内容
とするオブジェクトa2なのかを知ることができなかっ
た。For example, when a break occurs in a certain character string operation, the data to be operated can be displayed only as the data of the class [character string]. It was not possible to know whether it was the object a1 having the content of or the object a2 having the content of the error message.
【0021】[3.ブレークポイントの設定]
また、従来のプログラムデバッグ装置におけるブレーク
ポイントの設定は、ソースコード中のクラスに基づいて
設定することしかできず、オブジェクトにブレークポイ
ントを設定することができなかった。[3. Setting of Breakpoint] In addition, the setting of the breakpoint in the conventional program debug device can only be set based on the class in the source code, and the breakpoint cannot be set in the object.
【0022】例えば、氏名を内容とするオブジェクトa
1でブレークしたい場合、従来では、ブレークポイント
は文字列一般を扱うクラス[文字列]に設定する他なか
った。しかし、この場合、氏名を内容とするオブジェク
トa1のみならず、エラーメッセージを内容とする無関
係なオブジェクトa2でもブレークが発生する。このた
め、ブレーク時には、内容表示などの手段で操作対象で
あるオブジェクトを確認し、氏名を内容とするオブジェ
クトa1でない場合は、実行を再開するという作業を繰
り返さなければならなかった。For example, an object a whose name is a content
To break at 1, in the past, the breakpoint had to be set in the class [character string] that handles character strings in general. However, in this case, a break occurs not only in the object a1 having the name as a content but also in the unrelated object a2 having the error message as a content. For this reason, at the time of a break, it was necessary to confirm the object to be operated by means such as displaying the contents, and if the object a1 containing the name is not the object, restart the execution.
【0023】[4.実行履歴]
また、従来のプログラムデバッグ装置では、実行履歴、
特に操作対象となったプログラム中の位置を、ソースコ
ード中での位置でしか記録しておくことができず、どの
オブジェクトを実行したかという情報を残すことができ
なかった。このため、上記の例では、クラス[文字列]
のある操作が実行されたという実行履歴を残すことはで
きるが、それが氏名を内容とするオブジェクトa1なの
かエラーメッセージを内容とするオブジェクトa2なの
かという情報は残すことができなかった。[4. Execution history] In the conventional program debug device,
In particular, the position in the program that was the operation target could be recorded only at the position in the source code, and it was not possible to leave information about which object was executed. Therefore, in the above example, the class [string]
Although it is possible to leave an execution history that a certain operation has been executed, it is not possible to leave information as to whether it is the object a1 having a name as a content or the object a2 having an error message as a content.
【0024】[5.継承]
特に、デバッグにおいて注目したいオブジェクトを生成
するクラスが、他のクラスを継承している場合、ソース
コード上の実行箇所と、実行されているオブジェクトの
対応関係が複雑化し、効率的なデバッグが一層困難であ
った。[5. Inheritance] Especially, when the class that generates the object you want to focus on in debugging inherits another class, the correspondence between the execution location in the source code and the object being executed becomes complicated, and efficient debugging is achieved. It was even more difficult.
【0025】すなわち、継承のあるオブジェクト指向プ
ログラムに従来のプログラムデバッグ装置を適用した場
合、子クラスのオブジェクトの実行時における実行箇所
表示に親クラスの名称も現れるので、操作対象オブジェ
クトの判断が一層困難であった。例えば、クラス[文字
列]がクラス[配列]を継承し、クラス[文字列]から
オブジェクトaが生成され、クラス[配列]からオブジ
ェクトbが生成される場合において、ユーザが、クラス
[文字列]固有のオブジェクトaに注目してデバッグを
行いたいものとする。In other words, when the conventional program debugging device is applied to an inherited object-oriented program, the name of the parent class also appears in the execution location display when the child class object is executed, making it more difficult to determine the operation target object. Met. For example, in the case where the class [string] inherits the class [array], the object a is created from the class [string], and the object b is created from the class [array], the user uses the class [string]. It is assumed that the user wants to debug by focusing on the unique object a.
【0026】この場合、実行箇所表示では、同じオブジ
ェクトaの実行時であっても、クラス[文字列]に固有
の部分の実行時にはクラス[文字列]を実行中であると
表示されるが、クラス[配列]の関数による操作を文字
列に対して流用した場合のように、継承部分の実行時に
はクラス[配列]を実行中であると表示される。しか
も、このクラス[配列]の表示は、クラス[配列]のオ
ブジェクトがそれ自体独立したものとして実行される場
合と同一であり、この実行箇所表示からは、ユーザは、
操作対象オブジェクトを判断することができなかった。
特に、実行箇所表示が、クラス[文字列]からクラス
[配列]に変わったような場合、ユーザは、この表示の
変更が操作対象オブジェクトの変更によるものか、継承
部分の実行によるものか判断できなかった。In this case, in the execution point display, even when the same object a is being executed, it is displayed that the class [character string] is being executed when the part unique to the class [character string] is being executed. When the operation by the function of the class [array] is diverted to the character string, it is displayed that the class [array] is being executed when the inheritance part is executed. Moreover, the display of this class [array] is the same as when the object of the class [array] is executed as an independent object itself, and from this execution point display, the user:
The operation target object could not be determined.
In particular, when the execution location display changes from class [string] to class [array], the user can determine whether this display change is due to the change of the operation target object or the execution of the inheritance part. There wasn't.
【0027】また、子クラスのデータに、子クラス固有
の記述部分から生成されるデータと、継承部分から生成
されるデータの双方が含まれる場合、双方が同一オブジ
ェクトを構成する場合でも、データ内容表示はクラスご
とに行われ、オブジェクト単位にまとめて表示できなか
った。If the data of the child class includes both the data generated from the description part specific to the child class and the data generated from the inheritance part, even if both form the same object, the data contents The display was done for each class and could not be displayed collectively for each object.
【0028】例えば、クラス[文字列]がクラス[配
列]を継承し、クラス[文字列]のオブジェクトaのデ
ータが、クラス[配列]からの継承部分を除くクラス
[文字列]固有の記述部分から生成されるデータと、ク
ラス[配列]からの継承部分に基づいて生成されるデー
タから構成されるとする。この場合、従来のプログラム
デバッグ装置では、クラス[配列]から継承したデータ
はクラス[配列]のデータとして、クラス[文字列]固
有のデータはクラス[文字列]のデータとして、それぞ
れユーザに表示されていた。そのため、「オブジェクト
a」という一つのまとまりとしてデバッグすることがで
きず、効率的なデバッグが困難であった。For example, the class [character string] inherits the class [array], and the data of the object a of the class [character string] is the description part specific to the class [character string] excluding the inherited part from the class [array]. And the data generated based on the inheritance part from the class [array]. In this case, in the conventional program debug device, the data inherited from the class [array] is displayed to the user as the data of the class [array] and the data specific to the class [string] is displayed to the user as the data of the class [string]. Was there. Therefore, it is difficult to debug as one unit called "object a", and it is difficult to perform efficient debugging.
【0029】また、所望のクラスのオブジェクトでブレ
ークさせるためには、継承される親クラスにもブレーク
ポイントを設定する煩雑な手数が必要であるが、この場
合、親クラスがそれ自体として実行されたときにもブレ
ークするため、操作対象オブジェクトの特定は困難であ
った。Further, in order to make a break in the object of the desired class, it is necessary to set a breakpoint also in the inherited parent class, but in this case, the parent class was executed as itself. Sometimes it breaks, so it was difficult to specify the operation target object.
【0030】例えば、クラス[配列]を継承するクラス
[文字列]のオブジェクトaは、クラス[文字列]の操
作の他にクラス[配列]の操作も併せ持っている。この
ため、オブジェクトaでブレークさせるためにはクラス
[文字列]の操作のみならず、継承されるクラス[配
列]の操作にもブレークポイントを設定しなければなら
ない。For example, the object a of the class [character string] which inherits the class [array] has the operation of the class [array] in addition to the operation of the class [character string]. Therefore, in order to break the object a, it is necessary to set a breakpoint not only in the operation of the class [character string] but also in the operation of the inherited class [array].
【0031】また、1つのブレークポイントは、通常、
ソースコード中の1行のみを指定するものであるため、
ブレークさせたいクラスが他のクラスから参照されるた
めの参照関数を複数有する場合において、当該クラスの
オブジェクトがどのような参照をされた場合も常にブレ
ークするようにしたい場合には、当該クラスが持つ参照
関数全てにブレークポイントを設定するという煩雑な手
数が必要であった。Also, one breakpoint is usually
Since only one line in the source code is specified,
If the class you want to break has multiple reference functions to be referenced from other classes, and you want to always break regardless of any reference to the object of the class, have the class It required the troublesome work of setting breakpoints for all reference functions.
【0032】当然、このようなオブジェクトのクラスが
持つ参照関数全てにブレークポイントを設けても、当該
クラスが他のオブジェクトのクラスから参照関数を継承
する場合は、継承対象となる全ての参照関数にも、祖先
クラスに遡ってブレークポイントを設定しなければなら
ない。Of course, even if breakpoints are provided for all reference functions of such an object class, if the reference function inherits a reference function from a class of another object, all reference functions to be inherited Also, you have to set breakpoints back to your ancestor class.
【0033】さらに、これらのブレークポイントでブレ
ークした場合に、ブレークしたオブジェクトは本来ブレ
ークさせたいオブジェクトとは限らない。すなわち、ブ
レークしたオブジェクトは、前記のように遡ってブレー
クポイントを設定した祖先クラスから独自に生成された
オブジェクトの可能性があり、また、その祖先クラスを
継承した別のクラスのオブジェクトの可能性もあり、さ
らに、それらのクラスの子孫クラスの可能性もある。Further, when a break occurs at any of these break points, the broken object is not always the object to be broken. That is, the broken object may be an object originally generated from the ancestor class to which the breakpoint is set retroactively as described above, or may be an object of another class that inherits the ancestor class. Yes, and also possible descendants of those classes.
【0034】また、プログラムの実行履歴についても、
子クラスの実行に対応する部分に、親クラスの名称が混
入するので、操作対象オブジェクトの判断が一層困難で
あった。Also, regarding the execution history of the program,
Since the name of the parent class is included in the portion corresponding to the execution of the child class, it is more difficult to determine the operation target object.
【0035】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その目的は、デバ
ッグ支援をオブジェクトに基づいて行うプログラムデバ
ッグ装置を提供することである。また、本発明の他の目
的は、デバッグを効率化するプログラムデバッグ装置を
提供することである。The present invention has been proposed in order to solve the above-mentioned problems of the prior art, and its object is to provide a program debug device which performs debugging support based on an object. Another object of the present invention is to provide a program debug device that makes debugging efficient.
【0036】[0036]
【課題を解決するための手段】上記の目的を達するた
め、請求項1のプログラムデバッグ装置は、デバッグ対
象プログラムのソースコードに基づいて、当該プログラ
ムの複数のオブジェクトを実現するための複数のクラス
間の構造を表すクラス情報を生成するクラス情報生成手
段と、前記プログラムの実行中に、前記複数のオブジェ
クトの各々が生成された場合に、各オブジェクトに対し
てオブジェクト識別と先頭アドレスを含むオブジェクト
情報を生成して記録するオブジェクト情報生成手段と、
前記オブジェクト情報に従って、各ブレークポイントが
前記複数のオブジェクトの特定オブジェクトに対応する
ブレークポイントアドレスで設定されるようにして複数
のブレークポイントを設定するブレークポイント設定手
段と、前記プログラムの前記特定オブジェクトにイベン
トポイントを設定するイベントポイント設定手段と、前
記プログラムの実行によって前記イベントポイントを検
出するイベントポイント検出手段と、前記イベントポイ
ントにおける前記プログラムの実行に関するイベント情
報を生成するイベント情報生成手段と、を有することを
特徴とする。In order to achieve the above object, a program debug device according to a first aspect of the invention has a plurality of classes for realizing a plurality of objects of a program to be debugged based on a source code of the program to be debugged. Class information generating means for generating class information representing the structure of a plurality of objects, and a plurality of objects during execution of the program.
For each object when each of the
Object that contains the object identification and start address
Object information generating means for generating and recording information,
According to the object information, each breakpoint
Corresponding to a specific object of the plurality of objects
Multiple as set by breakpoint address
Breakpoint setting hand to set a breakpoint
Event and the specific object of the program
Event point setting means to set the
The event points are detected by executing the program.
And an event point detecting means for issuing the event point.
Event information on the execution of the program
Event information generating means for generating information .
【0037】また、請求項2の発明は、請求項1記載の
プログラムデバッグ装置において、前記オブジェクト情
報に基づいて前記複数のオブジェクト間の参照関係を表
す参 照関係情報を生成する参照関係情報生成手段と、前
記参照関係情報を出力する参照関係情報出力手段と、を
有することを特徴とする。 The invention of claim 2 is the same as that of claim 1.
In the program debug device, the object information
The reference relationship between the plurality of objects based on
And the reference relation information generating means for generating to see related information, before
Reference relation information output means for outputting reference relation information,
It is characterized by having.
【0038】また、請求項3の発明は、請求項1記載の
プログラムデバッグ装置において、前記ブレークポイン
ト設定手段は、前記複数のクラスの一つに対応する前記
複数のオブジェクト内の位置にブレークポイントアドレ
スを設定するように構成されたことを特徴とする。 The invention of claim 3 is the same as that of claim 1.
In the program debug device, the break point
The setting means corresponds to one of the plurality of classes,
Breakpoint addresses at locations within multiple objects
It is characterized in that it is configured to set the space.
【0039】また、請求項4の発明は、請求項1記載の
プログラムデバッグ装置において、前記プログラムの前
記ソースコード中における前記特定オブジェクトに対応
する識別名に基づいて、当該オブジェクトに関するデバ
ッグ情報の入出力を行うユーザインタフェースを有する
ことを特徴とする。 The invention of claim 4 is the same as that of claim 1.
In the program debug device, before the program
Corresponding to the specific object in the source code
Based on the distinguished name
Has a user interface for inputting and outputting group information
It is characterized by
【0040】また、請求項5の発明は、請求項4記載の
プログラムデバッグ装置において、前記特定オブジェク
トの前記識別名を用いてデバッグ操作を予約する予約手
段と、前記特定オブジェクトが予約された識別名で参照
可能な場合に、当該オブジェクトに対して予約された操
作を自動的に実行する予約実行手段と、を有することを
特徴とする。 The invention of claim 5 is the same as that of claim 4.
In the program debug device, the specific object
A reservation hand that reserves a debug operation using the distinguished name of
Refer to the column and the reserved identifier of the specific object
If possible, the operations reserved for this object
A reservation execution means for automatically executing a work,
Characterize.
【0041】また、請求項6の発明は、請求項1記載の
プログラムデバッグ装置において、前記イベントポイン
ト設定手段は、前記特定オブジェクトの各公開メンバ関
数でイベントポイントを設定し、前記特定オブジェクト
に含まれる前記複数のオブジェクト中の各公開オブジェ
クトの各公開メンバ関数でイベントポイントを設定する
ように構成されたことを特徴とする。According to a sixth aspect of the present invention, in the program debug device according to the first aspect, the event point setting means is a member related to each public member of the specific object.
An event point is set by a number , and the event point is set by each public member function of each public object in the plurality of objects included in the specific object.
【0042】また、請求項7の発明は、請求項1記載の
プログラムデバッグ装置において、前記ブレークポイン
ト設定手段は、各ブレークポイントが、前記特定オブジ
ェクトの前記公開メンバ関数の第1のブレークポイント
アドレス、前記特定オブジェクトの親クラスの各公開メ
ンバ関数の第2のブレークポイントアドレス、および前
記特定オブジェクトに含まれる前記複数のオブジェクト
中の少なくとも一つの公開オブジェクトの公開メンバ関
数の第3のブレークポイントアドレスで設定されるよう
にして複数のブレークポイントを設定するように構成さ
れたことを特徴とする。The invention according to claim 7 is the program debug device according to claim 1, wherein each of the breakpoints is a first breakpoint address of the public member function of the specific object. Each public message of the parent class of the specific object
The second breakpoint address Nba functions, and the public member functions of at least one public object in said plurality of objects included in a specific object
A plurality of breakpoints as set by a number of third breakpoint addresses.
【0043】また、請求項8の発明は、請求項1記載の
プログラムデバッグ装置において、前記オブジェクト情
報生成手段は、前記複数のオブジェクト中のどのオブジ
ェクトが他のどのオブジェクトによって生成されている
かを記録するように構成されたことを特徴とする。Further, the invention of claim 8 is the program debug device according to claim 1, wherein the object information generating means is generated by which other object among the plurality of objects .
It is characterized in that it is configured to record or .
【0044】また、請求項9の発明は、請求項1記載の
プログラムデバッグ装置において、前記特定オブジェク
トの前記先頭アドレスが前記複数のオブジェクト中の他
のどのオブジェクトにいつ授受されたかを追跡すること
によって、アクセス権情報を追跡する手段をさらに有す
ることを特徴とする。[0044] The invention of claim 9 is the program debugging device according to claim 1, wherein the other of said head address in said plurality of objects of the specific object
It further comprises means for tracking access right information by tracking when and to which object of the.
【0045】また、請求項10の発明は、請求項9記載
のプログラムデバッグ装置において、前記ブレークポイ
ント設定手段は、前記アクセス権情報を用いて前記複数
のブレークポイントを設定できるように構成されたこと
を特徴とする。According to a tenth aspect of the present invention, in the program debug apparatus according to the ninth aspect, the breakpoint setting means uses the access right information to perform the plurality of operations.
It is characterized in that it is configured to be able to set breakpoints of .
【0046】また、請求項11の発明は、請求項1記載
のプログラムデバッグ装置において、前記ブレークポイ
ントアドレスの一つを参照したのが前記複数のオブジェ
クトのどのオブジェクトであるかに関わらず、当該ブレ
ークポイントアドレスで前記プログラムの実行をブレー
クするブレーク手段と、当該ブレークポイントアドレス
を呼び出したオブジェクトが、前記ブレークポイントが
設定されていないオブジェクトである場合に、ユーザの
介入なしに前記プログラムの実行を再開する手段と、当
該ブレークポイントアドレスを呼び出したオブジェクト
が、前記ブレークポイントが設定されているオブジェク
トである場合に、ユーザに制御を渡す手段と、をさらに
有することを特徴とする。According to the eleventh aspect of the present invention, in the program debug device according to the first aspect, regardless of which object of the plurality of objects refers to one of the breakpoint addresses, the break point Breaking means for breaking the execution of the program at the point address and the break point address
The object that called
When an object that has not been set, and resuming means the execution of the program without user intervention, those
The object that called the breakpoint address
Is the object where the breakpoint is set
If a preparative, and further comprising means for passing control to the user.
【0047】[0047]
【作用】上記のような構成を有する本発明は、次のよう
な作用を有する。すなわち、請求項1の発明では、プロ
グラムにおけるクラス間の構造を表すクラス情報が生成
されるので、クラス間の構造の理解が容易になる。ま
た、プログラムのオブジェクトの生成時にはオブジェク
ト情報が生成され記録されるので、オブジェクトの状態
の理解が容易になり、オブジェクト指向プログラミング
におけるデバッグが効果的に支援される。また、所望の
オブジェクトに設定したブレークポイントでプログラム
の実行を停止できるので、特定のオブジェクトに注目し
たデバッグが容易になる。また、イベントポイントとし
て設定した所望のオブジェクトにおける実行内容の履歴
を記録できるので、特定のオブジェクトに関するプログ
ラムの挙動を追跡することができる。 The present invention having the above structure has the following functions. That is, according to the invention of claim 1, class information representing a structure between classes in a program is generated, so that the structure between classes can be easily understood. Well
Also, when creating the program object, the object
Information is generated and recorded, so the state of the object
Easier to understand, object-oriented programming
Debugging in is effectively supported. Also desired
Program with breakpoints set on objects
You can stop the execution of
Debugging becomes easier. Also, as an event point
History of execution contents in the desired object set by
Can be recorded, so you can
The behavior of the ram can be tracked.
【0048】また、請求項2の発明では、オブジェクト
間の参照関係を表す参照関係情報が出力されるので、デ
バッグで注目すべきオブジェクトのみならず、このオブ
ジェクトと参照関係を有するオブジェクトに注目してデ
バッグを行うことができる。 According to the invention of claim 2, the object
Since the reference relationship information indicating the reference relationship between
Not only the notable objects in the bag, but also this object
The objects that have a reference relationship with the object.
You can do the bag.
【0049】また、請求項3の発明では、オブジェクト
のうち動作を確認したい関数やアドレスのみにブレーク
ポイントを設定すれば、当該アドレスが実行されない限
りプログラムがブレークしない。このため、デバッグ作
業の効率が向上する。 According to the invention of claim 3, the object
Break only the function or address whose operation you want to check
If you set the point, as long as the address is not executed
Program does not break. For this reason, debug
Work efficiency is improved.
【0050】また、請求項4の発明では、デバッグ操作
の入力や各種情報の出力が、システム内部でのオブジェ
クトIDのみではなく、オブジェクトに対応する識別名
で行われる。このため、情報の理解やデバッグ操作の入
力が容易になり、デバッグが効率化される。 Further, in the invention of claim 4, the debug operation
Input and output of various information are
Not only the object ID but also the identification name corresponding to the object
Done in. Therefore, understanding the information and entering debug operations
Power is easier and debugging is more efficient.
【0051】また、請求項5の発明では、所望の識別名
について、ブレークポイントの設定など所望のデバッグ
操作を予約できる。そして、予約された識別名で参照可
能に なったオブジェクトが存在するとき、当該オブジェ
クトに対して所望の予約された操作が実行される。した
がって、ソースコードでの識別名を単位にデバッグ操作
を事前にもしくはデバッグ作業中のうち任意の時点で予
約できる。このため、デバッグ操作が自動化され、デバ
ッグが効率化される。 According to the invention of claim 5, the desired identification name
About desired debugging, such as setting breakpoints
You can reserve the operation. And it is possible to refer with the reserved identification name
When the object became capability is present, the object
The desired reserved operation is executed for the task. did
Therefore, debug operation is performed in units of the distinguished name in the source code.
In advance or at any point during debugging.
Can about This automates debug operations and improves
The efficiency is improved.
【0052】また、請求項6の発明では、イベントポイ
ントが特定オブジェクトの親クラスのメンバにも設定さ
れ、当該メンバが参照されたときに、操作対象が特定オ
ブジェクトか否かが判断されるので、オブジェクト指向
プログラミングにおける継承が行われている場合でも、
オブジェクト単位のイベント記録が可能となる。 In the invention of claim 6, the event point is
Are also set as members of the parent class of the particular object.
When the relevant member is referenced, the operation target is specified
Since it is judged whether it is a object, it is object-oriented
Even if the inheritance in programming is done,
Event recording for each object is possible.
【0053】また、請求項7の発明では、ブレークポイ
ントが特定オブジェクトの親クラスのメンバにも設定さ
れ、当該メンバが参照されたときに、操作対象が特定オ
ブジェクトか否かが判断されるので、オブジェクト指向
プログラミングにおける継承が行われている場合でも、
オブジェクト単位のブレークが可能となる。 According to the invention of claim 7, the break point is
Are also set as members of the parent class of the particular object.
When the relevant member is referenced, the operation target is specified
Since it is judged whether it is a object, it is object-oriented
Even if the inheritance in programming is done,
Breaks can be made in object units.
【0054】また、請求項8の発明では、生成される側
のオブジェクトとそれを生成する側のオブジェクトとの
関係が情報として記録されるため、あるオブジェクトに
対する最初のアクセス権の所在を容易に把握することが
できる。 In the invention of claim 8, the side to be generated
Between the object and the object that creates it
Since the relationship is recorded as information,
It is easy to know where the first access right to
it can.
【0055】また、請求項9の発明では、あるオブジェ
クトに対するアクセス権が他のオブジェクトに移転され
た場合でも、その移転状況を確実に把握することができ
る。 According to the invention of claim 9, a certain object is
Access to other objects is transferred to other objects
Even if the
It
【0056】また、請求項10の発明では、オブジェク
トに対するアクセス権情報を利用してブレークポイント
を効率よく設定することができる。 According to the tenth aspect of the invention, the object is
Breakpoints using access rights information for
Can be set efficiently.
【0057】また、請求項11の発明では、ブレークポ
イントアドレスを検出した場合に、暫定的にプログラム
の実行を停止し、ユーザの設定したブレークポイントに
よるブレーク時には、ユーザに自動的に制御を渡すこと
により、ブレーク時において、ユーザは制御要求等の準
備操作を行うことなく、本質的なデバッグをそのまま 開
始することができる。また、ブレークが不要な場合に
は、ユーザの介入なしにプログラムの実行を再開するこ
とにより、プログラムの停止時間を極力短縮することが
できる。したがって、デバッグ作業の効率をさらに向上
することができる。 According to the eleventh aspect of the invention, the break point
When an address is detected, the program is provisionally
To stop the execution at the breakpoint you set
Automatically break control to the user during a break
Therefore, at the time of a break, the user can
Without performing the備操operation, as it is open the essential debug
You can start. If you don't need a break
Can resume program execution without user intervention.
By, the program stop time can be shortened as much as possible.
it can. Therefore, the efficiency of debugging work is further improved.
can do.
【0058】[0058]
【実施例】次に、本発明の実施例について、図面に従っ
て具体的に説明する。なお、以下の実施例はコンピュー
タ上に実現され、実施例の各機能は、このコンピュータ
を所定の手順(プログラム)が制御することで実現され
る。Embodiments of the present invention will now be specifically described with reference to the drawings. The following embodiments are realized on a computer, and each function of the embodiments is realized by controlling this computer by a predetermined procedure (program).
【0059】なお、本明細書における各「手段」は、実
施例の各機能に対応する概念的なもので、必ずしも特定
のハードウェアやソフトウェア・ルーチンに1対1には
対応しない。例えば、同一のハードウェア要素が、ある
命令を実行するときにある手段となり、別の命令を実行
するときは別の手段となりうる。また、一つの手段が、
わずか1命令によって実現される場合もあれば、多数の
命令によって実現される場合もある。Each "means" in this specification is a conceptual one corresponding to each function of the embodiment, and does not necessarily correspond to a specific hardware or software routine on a one-to-one basis. For example, the same hardware element may be one means when executing one instruction and another when executing another instruction. Also, one means
It may be realized by only one instruction, or may be realized by a large number of instructions.
【0060】したがって、本明細書では、実施例の各機
能を有する仮想的回路ブロック(手段)を想定して実施
例を説明している。但し、コンピュータの使用は一例で
あり、本発明の機能の全部又は一部は、可能ならば、カ
スタムチップ(専用の集積回路)のような電子回路上に
実現してもよい。Therefore, in this specification, the embodiments are described by assuming virtual circuit blocks (means) having each function of the embodiments. However, use of a computer is an example, and all or part of the functions of the present invention may be realized on an electronic circuit such as a custom chip (dedicated integrated circuit) if possible.
【0061】実施例で用いるコンピュータは、一般に
は、CPUと、RAM(随時読出書込型記憶素子)から
なる主メモリ(主記憶装置)を有する。また、コンピュ
ータは、マイクロコンピュータ・パーソナルコンピュー
タ・スモールコンピュータ・ワークステーション・メイ
ンフレームなど、いかなる規模のものを用いてもよい。The computer used in the embodiment generally has a CPU and a main memory (main memory device) including a RAM (random read / write memory element). The computer may be of any size, such as a microcomputer, a personal computer, a small computer, a workstation, or a mainframe.
【0062】また、前記コンピュータのハードウェア
は、典型的には、キーボードやマウスなどの入力装置
と、ハードディスク装置などの外部記憶装置と、CRT
表示装置やプリンタ印字装置などの出力装置と、必要な
入出力制御回路を含む。The hardware of the computer is typically an input device such as a keyboard and a mouse, an external storage device such as a hard disk device, and a CRT.
It includes an output device such as a display device and a printer printer, and necessary input / output control circuits.
【0063】但し、前記コンピュータのハードウェア構
成は自由であり、本発明が実施できる限り、上記の構成
要素の一部を追加・変更・除外してもよい。例えば、実
施例は、複数のコンピュータを接続したコンピュータネ
ットワーク上に実現してもよい。また、CPUの種類は
自由であり、CPUを複数同時に用いたり、単一のCP
Uをタイムシェアリング(時分割)で使用し、複数の処
理を同時平行的に行ってもよい。また、他の入力装置
(例えば、タッチパネル・ライトペン・トラックボール
などのポインティングデバイスや、デジタイザ・イメー
ジ読取装置やビデオカメラなどの画像入力装置・音声識
別装置・各種センサなど)を用いてもよい。また、他の
外部記憶装置(例えば、フロッピーディスク装置・RA
Mカード装置・磁気テープ装置・光学ディスク装置・光
磁気ディスク装置・バブルメモリ装置・フラッシュメモ
リなど)を用いてもよい。また、他の出力装置(例え
ば、液晶表示装置・プラズマディスプレイ装置・ビデオ
プロジェクター・LED表示装置・音響発生回路・音声
合成回路など)を用いてもよい。However, the hardware configuration of the computer is arbitrary, and as long as the present invention can be implemented, some of the above components may be added / changed / excluded. For example, the embodiments may be realized on a computer network in which a plurality of computers are connected. Also, the type of CPU is arbitrary, and multiple CPUs can be used simultaneously or a single CP can be used.
U may be used for time sharing (time division), and a plurality of processes may be simultaneously performed in parallel. In addition, other input devices (for example, a pointing device such as a touch panel, a light pen, and a trackball, an image input device such as a digitizer, an image reading device, a video camera, a voice recognition device, and various sensors) may be used. In addition, another external storage device (for example, floppy disk device / RA
M card device, magnetic tape device, optical disk device, magneto-optical disk device, bubble memory device, flash memory, etc.) may be used. Further, another output device (for example, a liquid crystal display device, a plasma display device, a video projector, an LED display device, a sound generation circuit, a voice synthesis circuit, etc.) may be used.
【0064】また、前記コンピュータにおいて実施例を
実現するためのソフトウェアの構成としては、典型的に
は、実施例の各機能を実現するためのアプリケーション
プログラムが、OS(オペレーティングシステム)上で
実行される態様が考えられる。また、実施例を実現する
ためのプログラムの態様としては、典型的には、高級言
語やアセンブラからコンパイル(翻訳)された機械語が
考えられる。但し、前記コンピュータのソフトウェア構
成も自由であり、本発明が実施できる限り、ソフトウェ
ア構成を変更してもよい。例えば、必ずしもOSを用い
る必要はなく、また、プログラムの表現形式も自由であ
り、BASICのようなインタプリタ(逐次解釈実行
型)言語を用いてもよい。As a software configuration for implementing the embodiment in the computer, typically, an application program for implementing each function of the embodiment is executed on an OS (operating system). Embodiments are possible. In addition, as a mode of a program for realizing the embodiment, a machine language compiled (translated) from a high-level language or an assembler is typically considered. However, the software configuration of the computer is also free, and the software configuration may be changed as long as the present invention can be implemented. For example, it is not always necessary to use the OS, the expression format of the program is free, and an interpreter (sequential interpretation execution type) language such as BASIC may be used.
【0065】また、プログラムの格納態様も自由であ
り、ROM(読出し専用メモリ)に格納しておいてもよ
く、また、ハードディスク装置のような外部記憶装置に
格納しておき、コンピュータの起動時や処理の開始時に
主メモリ上にロード(読み込み)してもよい。また、プ
ログラムを複数の部分に分割して外部記憶装置に格納し
ておき、処理内容に応じて必要なモジュールのみを随時
主メモリ上にロードしてもよい。さらに、プログラムの
部分ごとに異なった態様で格納してもよい。The program can be stored in any manner, and may be stored in a ROM (read-only memory), or stored in an external storage device such as a hard disk drive when the computer is started or when the computer is started. It may be loaded into the main memory at the start of processing. Alternatively, the program may be divided into a plurality of parts and stored in an external storage device, and only the necessary modules may be loaded onto the main memory at any time according to the processing content. Further, each part of the program may be stored in a different manner.
【0066】また、実施例に示す手順の各ステップは、
本発明の目的を達成できる限り、実行順序を変更したり
平行処理してもよい。また、各ステップは、毎回異なる
順序で実行してもよい。このような順序の変更は、例え
ば、ユーザが実行可能な処理を選択するなどメニュー形
式のインタフェース手法によって実現することができ
る。Each step of the procedure shown in the embodiment is
The execution order may be changed or parallel processing may be performed as long as the object of the present invention can be achieved. Also, the steps may be performed in a different order each time. Such an order change can be realized by a menu-type interface method, such as a user selecting an executable process.
【0067】また、本明細書における「入力」は、本来
の情報の入力のみならず、情報の入力と密接に関連する
他の処理を含む。このような処理は、例えば、入力内容
のエコーバックや修正・編集である。また、本明細書に
おける「出力」は、本来の情報の出力のみならず、情報
の出力と密接に関連する他の処理を含む。このような処
理は、例えば、出力すべき範囲の入力や、画面スクロー
ルの指示である。なお、対話的入出力手順によって入力
と出力を一体的操作によって実現してもよく、このよう
な一体的操作によって、選択・指定・特定などの処理を
行ってもよい。The "input" in this specification includes not only the original input of information but also other processing closely related to the input of information. Such processing is, for example, echo back or correction / editing of input contents. In addition, "output" in this specification includes not only the original output of information but also other processing closely related to the output of information. Such processing is, for example, input of a range to be output or an instruction for screen scrolling. It should be noted that input and output may be realized by an integrated operation by an interactive input / output procedure, and processing such as selection, designation, and specification may be performed by such an integrated operation.
【0068】また、コンピュータ外部の全ての事象は、
コンピュータ内部では、当該事象を表すパラメータなど
のデータとして処理される。本明細書におけるデータ
(情報)やデータの格納手段は前記コンピュータ上にお
いていかなる態様で存在してもよい。例えば、データ
は、いかなるハードウェア要素上(例えば、主記憶装置
・外部記憶装置・CPUのレジスタやキャッシュメモリ
など)に格納してもよい。また、データの保持態様も自
由である。例えば、データは、ファイル形式で保持され
るのみならず、メモリやディスクなどの記憶装置を物理
的アドレスで直接アクセスすることによって実現しても
よい。また、データの表現形式も自由で、例えば、文字
列を表すコードの単位は、文字単位でも単語単位でもよ
い。また、データの保持時間の長短は自由で、必要な間
だけ保持されその後消滅してもよい。また、辞書データ
のように当面変更されない情報は、ROMに格納しても
よい。All events outside the computer are
Inside the computer, it is processed as data such as parameters representing the event. The data (information) and the data storage means in this specification may exist in any form on the computer. For example, the data may be stored on any hardware element (for example, a main storage device / an external storage device / a CPU register or a cache memory). Further, the data retention mode is also free. For example, the data is not only retained in the file format, but may be realized by directly accessing a storage device such as a memory or a disk by a physical address. In addition, the expression format of the data is arbitrary, and for example, the unit of the code representing the character string may be a character unit or a word unit. Further, the length of the data holding time is arbitrary, and it may be held only for a necessary time and then deleted. Information that is not changed for the time being, such as dictionary data, may be stored in the ROM.
【0069】また、本明細書における特定の情報への言
及は確認的なもので、言及されない自明の情報の存在を
否定するものではない。例えば、ディスク上のあるファ
イルに言及した場合は、FAT(ファイルアロケーショ
ンテーブル)やディレクトリの存在は自明の事項として
省略する。また、本発明の動作では、動作に必要な一般
的な情報、例えば、各種ポインタ、カウンタ、フラグ、
パラメータ、バッファなどが適宜用いられる。Further, reference to specific information in this specification is a confirmation, and does not deny the existence of obvious information that is not mentioned. For example, when referring to a certain file on the disc, the existence of FAT (file allocation table) and directory is omitted as an obvious matter. In the operation of the present invention, general information necessary for the operation, such as various pointers, counters, flags,
Parameters, buffers, etc. are used as appropriate.
【0070】実施例の各部分が処理に要する情報は、特
に記載がない場合、当該情報を保持している他の部分か
ら獲得される。このような情報の獲得は、例えば、当該
情報を格納している変数やメモリをアクセスすることに
よって実現することができる。なお、情報の消去・抹消
は、当該情報の内容自体を必ずしも記憶領域から現実に
削除せず、消去フラグの設定など情報の修飾によって行
うことができる。The information required by each part of the embodiment for processing is obtained from the other part holding the information unless otherwise specified. Such acquisition of information can be realized, for example, by accessing a variable or memory that stores the information. Information can be erased / erased by not actually deleting the content itself of the information from the storage area but by modifying the information such as setting an erase flag.
【0071】[1.第1実施例]
[1−1.第1実施例の構成]
第1実施例の目的は、デバッグ支援をオブジェクトに基
づいて行うプログラムデバッグ装置を提供することであ
る。図1は、第1実施例の構成を示すブロック図であ
る。すなわち、第1実施例のプログラムデバッグ装置
は、この図に示すように、キーボード1と、マウス2
と、フロッピーディスク装置3と、表示装置4と、情報
を処理する処理部5とを有している。このうち処理部5
は、ユーザインタフェース部6を有している。このユー
ザインタフェース部6は、図示はしないが、I/O制御
回路と、メニュー形式や対話型のインタフェース手法を
用いた入出力手順との組み合わせによって構成されたも
ので、ユーザはこのユーザインタフェース部6を通じ
て、各ブロックから出力される情報を受領し、及び、所
望の情報や指示を所望のブロックに入力することができ
る。このユーザインタフェース部6は、前記オブジェク
ト情報出力手段、前記参照関係情報出力手段並びに前記
イベント情報出力手段に相当する。[1. First Example] [1-1. Configuration of First Embodiment] An object of the first embodiment is to provide a program debug device which performs debugging support based on an object. FIG. 1 is a block diagram showing the configuration of the first embodiment. That is, the program debugging device of the first embodiment, as shown in this figure, has a keyboard 1 and a mouse 2
A floppy disk device 3, a display device 4, and a processing unit 5 for processing information. Of these, processing unit 5
Has a user interface unit 6. Although not shown, the user interface unit 6 is composed of a combination of an I / O control circuit and an input / output procedure using a menu type or interactive interface method. Through, it is possible to receive information output from each block and input desired information and instructions to a desired block. The user interface unit 6 corresponds to the object information output unit, the reference relation information output unit, and the event information output unit.
【0072】また、第1実施例のプログラムデバッグ装
置は、デバッグ対象プログラムのソースコードを格納す
るソースコード格納部7と、前記プログラムにおけるク
ラス間の構造を表すクラス情報を生成するクラス情報生
成部8(前記クラス情報生成手段に相当するもの)と、
前記クラス情報を格納するクラス情報格納部9とを有し
ている。Further, the program debugging apparatus of the first embodiment has a source code storage unit 7 for storing the source code of the program to be debugged and a class information generation unit 8 for generating class information representing a structure between classes in the program. (Corresponding to the class information generating means),
And a class information storage unit 9 for storing the class information.
【0073】また、第1実施例のプログラムデバッグ装
置は、デバッグ対象プログラムのデバッグ情報を格納す
るデバッグ情報格納部10と、前記プログラムのロード
モジュールを格納するロードモジュール格納部11と、
前記プログラムのロードモジュールを実行し、実行内容
に関する実行情報を生成する実行部12(前記実行手段
に相当するもの)と、前記プログラムの実行中に、前記
クラス情報及び前記実行情報に基づいて、オブジェクト
の生成及び消滅に関するオブジェクト情報を生成するオ
ブジェクト情報生成部13(前記オブジェクト情報生成
手段に相当するもの)と、前記オブジェクト情報を格納
するオブジェクト情報格納部14とを有する。Further, the program debug device of the first embodiment includes a debug information storage section 10 for storing debug information of a debug target program, a load module storage section 11 for storing a load module of the program,
An execution unit 12 (corresponding to the execution unit) that executes a load module of the program and generates execution information regarding execution contents, and an object based on the class information and the execution information during execution of the program. An object information generation unit 13 (corresponding to the object information generation unit) that generates object information related to the generation and disappearance of the object and an object information storage unit 14 that stores the object information.
【0074】また、第1実施例のプログラムデバッグ装
置は、前記オブジェクト情報に基づいて前記各オブジェ
クト間の参照関係を表す参照関係情報を生成する参照関
係情報生成部15(前記参照関係情報生成手段に相当す
るもの)と、前記プログラムに係る所望のオブジェクト
及び当該オブジェクト中の所望の位置に、ブレークポイ
ント及びイベントポイントを設定するためのブレークポ
イント設定部16(前記イベントポイント設定手段及び
前記ブレークポイント設定手段に相当するもの)と、前
記ブレークポイント及びイベントポイントを表す情報を
格納するブレークポイント格納部17と、前記プログラ
ムの実行を前記ブレークポイント及び前記イベントポイ
ントでブレークするブレーク処理部18(前記ブレーク
手段及び前記イベントポイント検出手段に相当するも
の)とを有している。Further, the program debug apparatus of the first embodiment generates the reference relation information indicating the reference relation between the respective objects on the basis of the object information, the reference relation information generating section 15 (in the reference relation information generating means). Equivalent) and a desired object related to the program and a breakpoint setting unit 16 (the event point setting means and the breakpoint setting means) for setting a breakpoint and an event point at a desired position in the object. Corresponding to the above), a break point storage unit 17 that stores information indicating the break point and the event point, and a break processing unit 18 that breaks the execution of the program at the break point and the event point. Ibe And a ones) and corresponds to preparative point detection means.
【0075】また、第1実施例のプログラムデバッグ装
置は、イベントポイントにおけるブレーク時に、イベン
トポイントにおける所定の実行内容に関するイベント情
報を生成するイベント情報生成部19(前記イベント情
報生成手段に相当するもの)と、前記イベント情報を格
納するイベント情報格納部20(前記イベント情報格納
手段に相当するもの)とを有している。The program debug device of the first embodiment also generates an event information generating section 19 (corresponding to the above-mentioned event information generating means) for generating event information relating to a predetermined execution content at the event point when a break occurs at the event point. And an event information storage unit 20 (corresponding to the event information storage means) that stores the event information.
【0076】[1−2.第1実施例の作用]
上記のような構成を有する第1実施例のプログラムデバ
ッグ装置におけるデバッグは、次のように行われる。[1-2. Operation of First Embodiment] Debugging in the program debug device of the first embodiment having the above configuration is performed as follows.
【0077】[1−2−1.概略的作用]
図2は、第1実施例のプログラムデバッグ装置における
デバッグの態様を示す概念図である。すなわち、第1実
施例のプログラムデバッグ装置では、デバッグ対象プロ
グラムを、ブレークポイント設定後に実行し、ブレーク
ポイントでプログラム実行のブレーク(停止)が発生し
た場合、ソースコードなどの情報を表示させることによ
ってデバッグを行うことができる。また、第1実施例の
プログラムデバッグ装置では、デバッグ対象プログラム
を1ステップずつ実行させ、1ステップごとにソースコ
ードなどの情報を表示させてもよい。以下、第1実施例
のプログラムデバッグ装置の作用を具体的に説明する。[1-2-1. Schematic Operation] FIG. 2 is a conceptual diagram showing a mode of debugging in the program debug device of the first embodiment. That is, in the program debug device of the first embodiment, the program to be debugged is executed after the breakpoint is set, and when a break (stop) in program execution occurs at the breakpoint, the information such as the source code is displayed for debugging. It can be performed. Further, in the program debug device of the first embodiment, the debug target program may be executed step by step and the information such as the source code may be displayed for each step. The operation of the program debug device according to the first embodiment will be specifically described below.
【0078】[1−2−2.データ入力]
デバッグに先立って、ユーザは、デバックの対象となる
プログラムのソースコードをコンパイラによってコンパ
イルし、ロードモジュール(通常、機械語形式の実行プ
ログラム)及びデバッグ情報を生成する。ここで、デバ
ッグ情報とは、ソースコード中のステートメント(記述
単位)やシンボル名(データ名、関数名、ラベル名な
ど)と、ロードモジュール中におけるアドレス(メモリ
番地)との対照表を内容とするものである。このデバッ
グ情報は、公知のコンパイラが一般に有するデバッグ情
報生成機能によって得ることができる。デバッグ情報に
は、ソースコード中でオブジェクト生成を指定する識別
名が含まれる。[1-2-2. Data Input] Prior to debugging, the user compiles a source code of a program to be debugged by a compiler to generate a load module (usually a machine language executable program) and debug information. Here, the debug information consists of a comparison table of statements (description units) or symbol names (data names, function names, label names, etc.) in the source code and addresses (memory addresses) in the load module. It is a thing. This debug information can be obtained by a debug information generation function that a known compiler generally has. The debug information includes an identification name that specifies object generation in the source code.
【0079】次に、ユーザは、ディスク装置3及びユー
ザインタフェース部6を通じて、ソースコード、デバッ
グ情報及びロードモジュールを入力するが、これらはそ
れぞれ、ソースコード格納部7・デバッグ情報格納部1
0・ロードモジュール格納部11に格納される。Next, the user inputs the source code, the debug information and the load module through the disk device 3 and the user interface unit 6, which are respectively the source code storage unit 7 and the debug information storage unit 1.
0. Stored in the load module storage unit 11.
【0080】[1−2−3.クラス情報の抽出]
次に、クラス情報生成部8が、ソースコードに基づい
て、ソースコードにおけるクラスの構成を表すクラス情
報を生成し、クラス情報格納部9がこのクラス情報を格
納する。なお、オブジェクト指向プログラミング言語に
おけるソースコードでは、クラスの構成に関する情報が
一定の形式で定義されているので、クラス間の包含関
係、継承関係、クラスの内部構成(データや操作など)
等の情報をソースコードから容易に抽出することができ
る。[1-2-3. Extraction of Class Information] Next, the class information generation unit 8 generates class information representing the configuration of the class in the source code based on the source code, and the class information storage unit 9 stores this class information. Note that in the source code of an object-oriented programming language, since information about the structure of classes is defined in a certain format, the inclusive relationship between classes, the inheritance relationship, and the internal structure of classes (data, operations, etc.)
Information such as can be easily extracted from the source code.
【0081】ここで、図3は、第1実施例のプログラム
デバッグ装置におけるクラス情報の一般的表現形式であ
り、各クラス毎に、クラス名や親クラス名に続いて、当
該クラスのオブジェクトのメンバが示されている。ここ
で、「メンバ」とは、オブジェクトを構成する各データ
(メンバデータ)及びこれら各データに対する操作であ
る。なお、メンバデータは、いかに単純なデータであっ
ても、オブジェクトがメンバとして持つ別のオブジェク
トと考えることができるので、本明細書において「メン
バオブジェクト」と称する。また、メンバオブジェクト
に対する操作は、本明細書において、「メンバ関数」と
称する。このようなオブジェクトのメンバは当該オブジ
ェクトと運命を共にし、当該オブジェクトの生成によっ
て生成され、また、当該オブジェクトの消滅によって消
滅する。Here, FIG. 3 is a general expression format of class information in the program debugging device of the first embodiment. For each class, a class name or parent class name is followed by a member of an object of the class. It is shown. Here, the "member" is each data (member data) forming an object and an operation on each of these data. It should be noted that the member data is referred to as a “member object” in the present specification because it can be considered as another object that an object has as a member, however simple the data may be. Further, an operation on a member object is referred to as a "member function" in this specification. A member of such an object shares a fate with the object, is created by the creation of the object, and disappears when the object disappears.
【0082】さらに、オブジェクトのメンバは、公開メ
ンバと非公開メンバに分類することができる。ここで、
「公開メンバ」とは、他のオブジェクトから参照可能な
メンバをいい、「非公開メンバ」とは、他のオブジェク
トから参照不可能な(隠された)メンバをいう。因み
に、前記のように、メンバには、メンバオブジェクトと
メンバ関数という種別があるが、この種別を、公開/非
公開という種別と組み合わせると、オブジェクトのメン
バは、「公開メンバオブジェクト」、「非公開メンバオ
ブジェクト」、「公開メンバ関数」、「非公開メンバ関
数」の4種類に分類できることになる。Further, the members of the object can be classified into public members and private members. here,
"Public members" are members that can be referenced by other objects, and "private members" are members that cannot be referenced (hidden) by other objects. By the way, as described above, there are types of members, that is, a member object and a member function. If this type is combined with a type of public / private, the members of the object become “public member object” and “private”. It can be classified into four types of "member object", "public member function", and "private member function".
【0083】次に、図4は、図3の形式に準拠して表現
した具体的なクラス情報の例である。この図において、
メンバオブジェクト名に付されたアスタリスク(*)
は、ポインタ型オブジェクトを示す記号であり、ポイン
タ型オブジェクトとは、各オブジェクトが自己のメンバ
でない他のオブジェクトを参照するためのデータであ
る。このオブジェクトは、他のオブジェクトをポイント
(指示)していることから「ポインタ型」と称される。
このポインタ型オブジェクトが内容とするデータは、具
体的には、ロードモジュールのアドレスのうち、当該オ
ブジェクトが参照する他のオブジェクトに相当する部分
のアドレスである。Next, FIG. 4 shows an example of concrete class information expressed in conformity with the format of FIG. In this figure,
Asterisk (*) added to the member object name
Is a symbol indicating a pointer type object, and the pointer type object is data for each object to refer to another object that is not a member of itself. This object is called "pointer type" because it points (points) to another object.
Specifically, the data contained in the pointer type object is an address of a portion of the address of the load module corresponding to another object referred to by the object.
【0084】すなわち、オブジェクト指向プログラムで
は、各オブジェクトが、このポインタ型オブジェクトを
通じて他のオブジェクトに対して一定の操作を実行させ
ることによって、複数のオブジェクト間での協調動作が
実現され、プログラム全体が稼働する。That is, in an object-oriented program, each object executes a certain operation on another object through this pointer type object, thereby realizing a cooperative operation among a plurality of objects and operating the entire program. To do.
【0085】なお、図3において、「このクラスを参照
可能なクラス名,変数名」とは、上記とは逆に、当該ク
ラスを、メンバオブジェクトやポインタ型オブジェクト
として持つ他のクラスや変数の名称である。Note that, in FIG. 3, "class name and variable name that can refer to this class" is the reverse of the above, and is the name of another class or variable that holds the class as a member object or pointer type object. Is.
【0086】[1−2−4.生成/消滅関数へのブレー
クポイントの設定]
続いて、ブレークポイント設定部16が、オブジェクト
の生成を行う関数(本明細書において「構築子」又は
「生成関数」という)及び消滅を行う関数(本明細書に
おいて「消滅子」又は「消滅関数」という)に、システ
ムブレークポイントを設定する。ここで、「システムブ
レークポイント」は、ブレークポイントと同様のもので
あるが、ユーザの指定の有無に関係なく設定され、ブレ
ークした際に所定の手順が実行されるが、通常のブレー
クポイントと異なり、ブレークした際にユーザによる命
令待ちの状態とはならない。[1-2-4. Setting Breakpoints to Creation / Extinction Function] Subsequently, the breakpoint setting unit 16 performs a function for creating an object (referred to as “constructor” or “generation function” in this specification) and a function for extinguishing (book). In the specification, a system breakpoint is set to "annihilator" or "annihilation function". Here, a "system breakpoint" is similar to a breakpoint, but it is set regardless of the user's specification, and the specified procedure is executed when a break occurs. , When a break occurs, the state of waiting for an instruction by the user does not occur.
【0087】すなわち、プログラムの実行の過程で、オ
ブジェクトはクラスから生成されたり消滅したりし、具
体的には、オブジェクトがメモリ上に配置されたり、消
去されたりする。このようなオブジェクトの生成及び消
滅は、前記構築子及び消滅子を呼ぶことによって行われ
るが、これをユーザが正確に把握できるということが、
デバッグ時には大変重要になる。That is, in the process of executing a program, an object is created or deleted from a class, and specifically, the object is placed in the memory or deleted. The creation and disappearance of such an object is performed by calling the constructor and the extinct child, and the fact that the user can accurately grasp this
Very important when debugging.
【0088】なお、オブジェクト指向言語では、一般
に、生成関数及び消滅関数の名称が特定されているの
で、これらの検出は容易である。例えば、C++では、
クラス名と同名の関数が生成関数であり、Eiffelという
別の言語では、"Create"という名称の関数が生成関数に
相当する。In the object-oriented language, since the names of the generation function and the extinction function are generally specified, it is easy to detect them. For example, in C ++,
The function having the same name as the class name is the generation function, and in another language called Eiffel, the function named "Create" corresponds to the generation function.
【0089】なお、あるクラスが他のクラスを継承した
場合には、通常のメンバオブジェクト、メンバ関数と同
様に、親クラスの構築子及び消滅子も継承される。しか
し同時に、子クラスで定義された固有の構築子・消滅子
も実行される。従って、オブジェクト生成時には、その
型となるクラスの生成関数の他、祖先クラスの生成関数
が全て呼ばれ、オブジェクト消滅時には、その型となる
クラスの消滅関数の他、祖先クラスの消滅関数が全て呼
ばれる。When a class inherits another class, the constructor and the extinct child of the parent class are also inherited in the same manner as ordinary member objects and member functions. However, at the same time, the unique constructor / annihilator defined in the child class is also executed. Therefore, at the time of object creation, all the creation functions of the ancestor class are called in addition to the creation function of the class of that type. When the object disappears, all the annihilation functions of the ancestor class as well as the disappearance functions of the class of that type are called. .
【0090】[1−2−5.ロードモジュールの実行]
ユーザが、ユーザインタフェース部6を通じてプログラ
ムの実行を指示すると、実行部12がプログラムを実行
する。この指示においてユーザは、1ステップごとの実
行を指示することもでき、この場合は、1ステップごと
にプログラムの実行が(ブレーク)停止し、ユーザは、
ユーザインタフェース部6から各種情報を参照すること
ができる。[1-2-5. Execution of Load Module] When a user gives an instruction to execute a program through the user interface unit 6, the execution unit 12 executes the program. In this instruction, the user can instruct execution of each step, and in this case, the execution of the program (break) stops at each step, and the user
Various information can be referred to from the user interface unit 6.
【0091】[1−2−6.オブジェクト情報の抽出]
ロードモジュール実行時には、オブジェクト情報生成部
13が、実行部12から得られるプログラム実行に関す
る実行情報(例えば、実行アドレスやレジスタの内容
等)に基づいて、オブジェクトの生成及び消滅に関する
オブジェクト情報を抽出・生成し、オブジェクト情報格
納部14がこのオブジェクト情報を格納する。すなわ
ち、前記のように、全ての構築子及び消滅子にはブレー
クポイントが設定されているので、ロードモジュールの
実行時、オブジェクトの生成・消滅の度ごとにブレーク
処理部18がプログラム実行を停止させ、オブジェクト
情報生成部13を起動する。オブジェクト情報生成部1
3は、オブジェクトの生成・消滅の内容を記録した後、
実行部12にプログラム実行を再開させる。[1-2-6. Extraction of Object Information] When the load module is executed, the object information generation unit 13 causes the object information generation unit 13 to generate and delete objects based on the execution information (for example, the execution address and the contents of the register) related to the program execution obtained from the execution unit 12. Information is extracted and generated, and the object information storage unit 14 stores this object information. That is, as described above, since break points are set in all the constructors and the annihilators, the break processing unit 18 stops the program execution each time an object is created or deleted when the load module is executed. , Activates the object information generation unit 13. Object information generator 1
3. After recording the creation and disappearance of objects,
The execution unit 12 restarts the program execution.
【0092】ここで、図5は、オブジェクト情報生成の
手順を示すフローチャートである。すなわち、この手順
では、構築子又は消滅子を呼んだのが子孫クラスの構築
子又は消滅子か否かが判断され(ステップ51)、子孫
クラスの構築子又は消滅子でない場合、オブジェクトの
変動が記録される(ステップ52)。すなわち、オブジ
ェクトの生成時には、オブジェクトが配置されるアドレ
スの先頭と、オブジェクトの識別番号(ID)が記録さ
れる。一方、オブジェクトの消滅時には、消滅したオブ
ジェクトの前記情報が削除される。Here, FIG. 5 is a flow chart showing the procedure of object information generation. That is, in this procedure, it is judged whether or not the constructor or the extinct child is called the constructor or the extinct child of the descendant class (step 51). It is recorded (step 52). That is, when an object is generated, the head of the address where the object is arranged and the identification number (ID) of the object are recorded. On the other hand, when the object disappears, the information of the disappeared object is deleted.
【0093】続いて、オブジェクトの変動に伴う参照関
係の変動も記録される(ステップ53)。すなわち、生
成の場合は、生成されたオブジェクトのオブジェクト情
報に、構築子を呼んだオブジェクトを参照され得るオブ
ジェクトとして記録し、消滅の場合は、消滅するオブジ
ェクトを参照され得るとして持っているオブジェクトの
情報から、消滅するオブジェクトを削除する。なお、第
1実施例のプログラムデバッグ装置では、オブジェクト
が生成され又は消滅した場合、その旨がユーザインタフ
ェース部6を通じてユーザに通知される(ステップ5
4)。Subsequently, the change in the reference relationship due to the change in the object is also recorded (step 53). That is, in the case of generation, the object information of the generated object is recorded in the object information of the generated object as an object that can be referred to, and in the case of disappearance, the information of the object that has the disappearing object as the referenceable object. Delete the object that disappears from. In the program debug device of the first embodiment, when an object is created or disappears, the user is notified of that fact through the user interface unit 6 (step 5).
4).
【0094】なお、あるオブジェクトを参照し得るオブ
ジェクトは、最初は、そのオブジェクトを生成させたオ
ブジェクトだけであるが、オブジェクトを生成させたオ
ブジェクトが、生成されたオブジェクトに対するアクセ
ス権をプログラム実行中に、他のオブジェクトに移す可
能性もある。オブジェクト指向プログラムでは、これは
生成されたオブジェクトへのアドレスを授受する関数に
よって実現される。したがって、実行部12がこのよう
な関数を実行すると、オブジェクト情報生成部13がア
クセス権の移転を記録する。At first, the object which can refer to an object is only the object which has generated the object, but the object which has generated the object has access right to the generated object during program execution. It may be moved to another object. In object-oriented programs, this is accomplished by a function that gives and receives addresses to the created objects. Therefore, when the execution unit 12 executes such a function, the object information generation unit 13 records the transfer of the access right.
【0095】すなわち、図6は、アドレスを授受する関
数が実行された場合におけるアクセス権移転の記録手順
を示すフローチャートである。すなわち、この手順で
は、関数を呼んだオブジェクトがオブジェクトのアドレ
スを受け取った場合(ステップ61)、関数を呼んだオ
ブジェクトの参照され得るオブジェクトとしてアドレス
に係るオブジェクトを登録する(ステップ62)。ま
た、関数を呼んだオブジェクトがオブジェクトのアドレ
スを送った場合(ステップ63)、送ったアドレスに相
当するオブジェクトの、参照され得るオブジェクトとし
て、関数を呼んだオブジェクトを登録する(ステップ6
4)。That is, FIG. 6 is a flow chart showing the recording procedure of the access right transfer when the function of transmitting and receiving the address is executed. That is, in this procedure, when the object that called the function receives the address of the object (step 61), the object associated with the address is registered as the object that can be referred to by the object that called the function (step 62). If the object that called the function sends the address of the object (step 63), the object that called the function is registered as an object that can be referenced by the object corresponding to the sent address (step 6).
4).
【0096】図7は、第1実施例のプログラムデバッグ
装置において以上のように生成・記録されるオブジェク
ト情報の一般的形式を示す図であり、図8は、オブジェ
クト情報の具体例を示す図である。FIG. 7 is a diagram showing a general format of the object information generated and recorded as described above in the program debug device of the first embodiment, and FIG. 8 is a diagram showing a concrete example of the object information. is there.
【0097】この例では、オブジェクトを識別するため
のオブジェクトID、オブジェクトの先頭アドレス、メ
ンバオブジェクトのクラス名・変数名・オブジェクトI
Dを登録している。また、オブジェクトのメンバオブジ
ェクトと、継承した親クラスのオブジェクトも、独立し
たオブジェクトとして登録してある。例えば、クラスCl
ass Aのオブジェクトとして、「IDが11、配置アド
レスが8000 0000 (Hex) 、そのメンバオブジェクトとし
てString型のstr (ID=12)、整数型のx(ID=
18)」と、登録されている。String型のオブジェクト
12は、同時にクラスStringの部分にも登録されてい
る。In this example, the object ID for identifying the object, the start address of the object, the class name / variable name / object I of the member object
D is registered. Further, the member object of the object and the inherited parent class object are also registered as independent objects. For example, the class Cl
As an object of ass A, “ID is 11, allocation address is 8000 0000 (Hex), and as its member object, str of string type (ID = 12), x of integer type (ID =
18) ”is registered. The String type object 12 is also registered in the class String portion at the same time.
【0098】ユーザは、所望の時点で、インタフェース
部6を通じて所定の操作を行うことにより、オブジェク
ト情報、及び後述の参照関係情報を参照することができ
る。The user can refer to the object information and the reference relation information described later by performing a predetermined operation through the interface section 6 at a desired time.
【0099】[1−2−7.参照関係情報の作成]
ユーザは、ユーザインタフェース部6を通じて所定の操
作を行うことによって、ポインタ型オブジェクトやメン
バオブジェクトを使って行われるオブジェクト相互の参
照関係を表す参照関係情報を得ることができる。すなわ
ち、ユーザがユーザインタフェース部6を通じて所定の
指示を入力すると、参照関係情報生成部15は、オブジ
ェクト情報に基づいて、ユーザが指示を入力した時点に
おける参照関係情報を生成し、ユーザインタフェース部
6を通じて出力する。[1-2-7. Creation of Reference Relationship Information] By performing a predetermined operation through the user interface unit 6, the user can obtain reference relationship information indicating a reference relationship between objects performed using a pointer type object or a member object. That is, when the user inputs a predetermined instruction through the user interface unit 6, the reference relationship information generation unit 15 generates the reference relationship information at the time when the user inputs the instruction based on the object information and the user interface unit 6 performs the reference relationship information. Output.
【0100】なお、ユーザは、この指示において中心と
なるオブジェクトを指定し、参照関係情報は、中心オブ
ジェクトを参照することが可能なオブジェクト、及び、
中心オブジェクトが参照できる形式で提供される。な
お、一つのオブジェクトを指定して表示させるだけでな
く、全オブジェクトの参照関係を表示してもよい。ま
た、オブジェクトの参照関係の変動を、その都度ユーザ
に知らせてもよい。The user specifies the central object in this instruction, and the reference relation information is an object that can refer to the central object, and
It is provided in a format that can be referenced by the central object. Note that not only one object may be designated and displayed, but the reference relationship of all objects may be displayed. Further, the user may be informed of the change in the reference relationship of the objects each time.
【0101】ここで、図18は、参照関係情報生成の手
順を示すフローチャートである。すなわち、この手順で
は、クラス情報に基づいて、中心オブジェクトを参照可
能なクラスおよび中心オブジェクトから参照可能なクラ
スを特定し、ついで、オブジェクト情報に基づいて、こ
れらクラスに対応するオブジェクトのアドレスを調査
し、さらに、実行部12を通じて、これら各オブジェク
トのIDを取得する。なお、オブジェクトのアドレスに
は、中心オブジェクトのメンバオブジェクトであるポイ
ンタ型オブジェクトの指すアドレスが含まれ、このアド
レスを調査することにより、ポインタ型オブジェクトを
用いて参照できるオブジェクトのIDが取得できる。Here, FIG. 18 is a flow chart showing the procedure for generating the reference relation information. That is, in this procedure, the class that can refer to the central object and the class that can be referred to from the central object are specified based on the class information, and then the addresses of the objects corresponding to these classes are investigated based on the object information. Further, the ID of each of these objects is acquired through the execution unit 12. The address of the object includes the address pointed to by the pointer-type object that is a member object of the central object. By investigating this address, the ID of the object that can be referenced using the pointer-type object can be acquired.
【0102】なお、オブジェクト単位のブレーク処理や
イベントの記録は、実行情報、参照関係情報(継承して
いる場合にはさらにクラス情報)など、適宜各種情報に
基づいて行われる。Break processing and event recording for each object are performed based on various kinds of information such as execution information and reference relation information (further class information when inherited).
【0103】[1−2−8.ユーザブレークポイントの
設定]
また、ユーザは、オブジェクト単位でブレークポイント
を設定することができる。すなわち、ユーザが、ユーザ
インタフェース部6を通じてブレークポイントの設定対
象となる設定オブジェクトを指定すると、ブレークポイ
ント設定部16が当該設定オブジェクトにブレークポイ
ントを設定する。なお、従来と同様、アドレスのみを指
定する、全てのオブジェクトに有効なブレークポイント
も設定できることはいうまでもない。[1-2-8. Setting of User Breakpoint] Also, the user can set a breakpoint on an object-by-object basis. That is, when the user specifies a setting object to set a breakpoint through the user interface unit 6, the breakpoint setting unit 16 sets a breakpoint in the setting object. Needless to say, as in the conventional case, it is possible to set breakpoints effective for all objects, which specify only addresses.
【0104】なお、ユーザは、ブレークポイント設定部
16によって、所望の前記オブジェクトの所望の部分に
ブレークポイントを設定することができる。すなわち、
第1実施例のプログラムデバッグ装置では、オブジェク
ト型ブレークポイント及び(オブジェクト指定)アドレ
ス型ブレークポイントという2種類のブレークポイント
を設定することができる。ここで、「オブジェクト型ブ
レークポイント」は、ユーザが指定したオブジェクトに
対するなんらかの操作が行われた時にブレークするもの
であり、「アドレス型ブレークポイント」は、ユーザが
指定するオブジェクトの、さらに、ユーザが指定する位
置、すなわち、特定のメンバ関数や継承したメンバ関数
内の特定の位置でのみブレークするものである。The user can set a breakpoint at a desired portion of the desired object by using the breakpoint setting unit 16. That is,
In the program debug device of the first embodiment, two types of breakpoints, object type breakpoints and (object designation) address type breakpoints, can be set. Here, the "object type breakpoint" is a break point when an operation is performed on the object specified by the user, and the "address type breakpoint" is the object specified by the user and further specified by the user. It breaks only at the specified position, that is, at a specific position within a specific member function or inherited member function.
【0105】このように、第1実施例のプログラムデバ
ッグ装置では、オブジェクトのうち動作を確認したい関
数やアドレスのみにブレークポイントを設定すれば、当
該アドレスが実行されない限りプログラムがブレークし
ない。このため、デバッグ作業の効率が向上する。As described above, in the program debug device of the first embodiment, if a breakpoint is set only in the function or address of the object whose operation is desired to be confirmed, the program will not break unless the address is executed. Therefore, the efficiency of debugging work is improved.
【0106】ユーザがオブジェクト型を選択した場合、
ブレークポイント設定部16は、対象クラス及び対象ク
ラスの祖先クラスの公開メンバ関数全てにブレークポイ
ントを設定する。オブジェクトが持つメンバ関数には、
その型であるクラスの他に祖先クラスのメンバ関数も含
まれるので、それら全ての関数の全てにブレークポイン
トを設定することによって、いずれかの関数に参照され
たときにブレークするか否かの判断を行うことができ
る。すなわち、第1実施例のプログラムデバッグ装置で
は、オブジェクト単位のブレークを実現するために、ブ
レークポイントは、アドレスとオブジェクトIDという
2つの要素によって決定される。When the user selects the object type,
The breakpoint setting unit 16 sets a breakpoint on all public member functions of the target class and the ancestor class of the target class. The member function of the object is
Since the member function of the ancestor class is included in addition to the class which is the type, by setting a breakpoint in all of those functions, it is possible to judge whether or not to break when referenced by any function. It can be performed. That is, in the program debug device of the first embodiment, a break point is determined by two elements, an address and an object ID, in order to realize a break for each object.
【0107】また、当該オブジェクトのクラスが親クラ
スを通じて他のクラスを多段に継承している場合は、こ
の継承関係を遡って継承対象となっている全てのクラス
の全ての公開メンバ関数にブレークポイントが設定され
る。When the class of the object inherits other classes in multiple stages through the parent class, the breakpoints are set in all the public member functions of all the classes which are inherited by tracing back this inheritance relationship. Is set.
【0108】また、設定の対象となるオブジェクトが公
開メンバオブジェクトを持つ場合は、そのメンバオブジ
ェクトもそのオブジェクトから参照され得るオブジェク
トであるから、当該メンバオブジェクトにもオブジェク
ト型ブレークポイントを設定する。すなわち、参照する
側のオブジェクトで、当該オブジェクトをメンバオブジ
ェクトのアドレスデータとして保持している場合は、そ
のメンバオブジェクトに対して操作している部分にブレ
ークポイントが設定される。図9は、オブジェクト型ブ
レークポイントの設定における概略的手順の一例を示す
フローチャートである。If the object to be set has a public member object, the member object is also an object that can be referred to by the object, and therefore an object type breakpoint is set for the member object. That is, when the object on the reference side holds the object as the address data of the member object, a breakpoint is set at the portion where the member object is operated. FIG. 9 is a flowchart showing an example of a schematic procedure for setting an object type breakpoint.
【0109】また、図10は、アドレス型ブレークポイ
ントの設定手順を示すフローチャートであり、この手順
では、アドレスとオブジェクトの重複を調べ、両方が重
複していればなにもしないが、アドレスの重複がなけれ
ばブレークポイントを設定してそれを登録し、アドレス
の重複があってオブジェクトが異なる場合はそのブレー
クポイントの登録だけを行う。FIG. 10 is a flow chart showing the procedure for setting an address type break point. In this procedure, duplication of addresses and objects is checked. If it does not exist, set a breakpoint and register it. If there are duplicate addresses and the objects are different, only register the breakpoint.
【0110】図11は、ブレークポイントを示すデータ
の一般的形式を示す図であり、図12は、ブレークポイ
ントを示すデータの具体例である。この例では、オブジ
ェクト型ブレークポイントを設定したオブジェクトのI
D(クラス ClassA型のID=11)と、メンバ関数の
先頭に設定したアドレス型ブレークポイントの位置(pr
intA()の先頭アドレス2000 4000 (Hex) など)と参照
対象オブジェクトID(ID=11など)を登録してい
る。また、クラス ClassAのオブジェクト(ID=1
1)にオブジェクト型ブレークポイントを設定したこと
により、自動的に、そのメンバであるクラスString型の
オブジェクト(ID=12)にもオブジェクト型ブレー
クポイントが設定されている。FIG. 11 is a diagram showing a general format of data indicating a breakpoint, and FIG. 12 is a specific example of data indicating a breakpoint. In this example, I of the object for which an object type breakpoint is set
D (class Class A type ID = 11) and the position of the address type breakpoint set at the beginning of the member function (pr
The start address 2000 4000 (Hex) of intA () and the reference target object ID (ID = 11 etc.) are registered. Also, an object of class ClassA (ID = 1
By setting the object type breakpoint in 1), the object type breakpoint is automatically set also in the object of the class String type (ID = 12) which is the member.
【0111】[1−2−9.イベントポイントの設定]
また、ユーザは、ブレークポイント設定部16を通じ
て、オブジェクトにイベントポイントを設定することが
できる。ここで「イベントポイント」とは、プログラム
の実行は停止しないが、指定位置に関する所定の処理内
容を記録するためのポイントである。なお、このイベン
トポイントは実行時に生ずる効果がユーザブレークポイ
ントと異なるのみで、種類や設定手順はユーザブレーク
ポイントと相違しない。すなわち、イベントポイント
も、ユーザブレークポイントと同様、オブジェクト型と
アドレス型という2種類を指定することができ、種類ご
とに、ユーザブレークポイントと同様の手順で設定され
る。なお、アドレスのみを指定する、全オブジェクトに
共通なイベントポイントの設定が可能なのはいうまでも
ない。[1-2-9. Setting Event Point] Further, the user can set an event point on the object through the break point setting unit 16. Here, the "event point" is a point for recording the predetermined processing content regarding the designated position, although the execution of the program is not stopped. Note that the effect of this event point at the time of execution is different from the user breakpoint, and the type and setting procedure are not different from the user breakpoint. That is, as with the user breakpoint, two types of event points, that is, an object type and an address type, can be designated, and the event points are set in the same procedure as the user breakpoint. Needless to say, it is possible to set an event point that is common to all objects and that specifies only the address.
【0112】図13は、イベントポイントを指定する情
報の一般的形式を示すもので、図14は、この情報の具
体例である。この例では、オブジェクト型イベント(オ
ブジェクトID=12)と、アドレス型イベント(オブ
ジェクトID=154、アドレス2000 3000 )を登録し
ている。FIG. 13 shows a general format of information designating an event point, and FIG. 14 is a specific example of this information. In this example, an object type event (object ID = 12) and an address type event (object ID = 154, address 2000 3000) are registered.
【0113】[1−2−10.ブレーク処理]
ブレーク処理部18は、ロードモジュールの実行アドレ
スを監視し、ブレークポイントが設定されたアドレスを
検出すると、暫定的にプログラムの実行を停止し、ブレ
ークの条件が成立しているか否かを判断する。すなわ
ち、ブレーク処理部18は、クラス情報と実行情報に基
づいて、ブレークが、ブレークポイント設定の対象であ
るオブジェクトで生じたものか否かを判定する。[1-2-10. Break Processing] The break processing unit 18 monitors the execution address of the load module, and when it detects the address at which the breakpoint is set, it temporarily stops the execution of the program and checks whether or not the break condition is satisfied. to decide. That is, the break processing unit 18 determines, based on the class information and the execution information, whether or not the break has occurred in the object for which the breakpoint is set.
【0114】対象オブジェクトのクラス及び当該クラス
の親クラスの公開メンバ関数につけられたブレークポイ
ントが検出された場合、図15(フローチャート)に示
すように、実行部12を通じて、ブレーク時に操作中で
あったオブジェクトのIDが調査され(ステップ15
1)、そのオブジェクトIDがブレーク対象として登録
されていた場合は(ステップ152)実行を中断したま
ま制御がユーザインタフェース部6に移され(ステップ
153)、登録されていなかった場合は実行が再開され
る(ステップ154)。When a break point attached to the public member function of the class of the target object and the parent class of the class is detected, the execution unit 12 is in operation at the time of the break, as shown in FIG. 15 (flow chart). The ID of the object is investigated (step 15
1) If the object ID is registered as a break target (step 152), control is transferred to the user interface unit 6 while the execution is interrupted (step 153), and if it is not registered, the execution is resumed. (Step 154).
【0115】また、公開メンバデータのためにつけたブ
レークポイントで、プログラムの実行が中断した場合の
処理を図16(フローチャート)に示す。すなわち、こ
の場合は、まず、当該ブレークポイントに係るオブジェ
クトの形式が判断される(ステップ161)。つまり、
オブジェクトがアクセス権を持つオブジェクトでメンバ
オブジェクトとして保持されているなら、ブレークし
(ステップ163)、ユーザインタフェース部6が起動
される。また、オブジェクトが参照され得るオブジェク
トにおいてアドレスデータとして保持されている場合に
は、そのアドレスが設定オブジェクトに相当するか否か
が判断され(ステップ162)、設定オブジェクトなら
ばブレークするが(ステップ163)、設定オブジェク
トでないときはプログラムの実行が再開される(ステッ
プ164)。FIG. 16 (flowchart) shows the processing when the execution of the program is interrupted by the breakpoint set for the public member data. That is, in this case, first, the format of the object relating to the breakpoint is determined (step 161). That is,
If the object is an object that has access rights and is held as a member object, a break occurs (step 163) and the user interface unit 6 is activated. If the object is held as address data in an object that can be referred to, it is determined whether the address corresponds to the setting object (step 162), and if it is the setting object, a break occurs (step 163). If it is not a setting object, execution of the program is restarted (step 164).
【0116】さらに、アドレス型ブレークポイントに係
るブレーク処理の手順を図17に示す。Further, FIG. 17 shows a procedure of break processing relating to the address type break point.
【0117】[1−2−11.イベントの記録]
ブレーク処理部18はイベントポイントを検出した場
合、イベント情報生成部19を起動するが、このイベン
ト情報生成部19は、前記実行情報に基づいて、オブジ
ェクトに対する操作の内容などのイベント情報を抽出・
生成し、イベント情報格納部20がこの情報を格納す
る。情報抽出後、イベント情報生成部19は、実行部1
2を起動し、プログラムの実行を再開させる。[1-2-11. Recording of Event] When the break processing unit 18 detects an event point, it activates the event information generation unit 19. The event information generation unit 19 uses the execution information to generate event information such as the content of the operation on the object. Extract
It is generated and the event information storage unit 20 stores this information. After extracting the information, the event information generation unit 19
2 is started and the execution of the program is restarted.
【0118】このイベント情報の一般的形式は、(操作
対象オブジェクトID,関数のアドレス)であり、具体
例としては、(154,2000 3000)(12, 2000 331
0)を挙げることができる。この例では、操作されたオブ
ジェクトのIDと、オブジェクトの操作を試みたオブジ
ェクトのIDと、操作に用いた関数のアドレスを記録し
ている。すなわち、String型のオブジェクト「12」が
メンバ関数「2000 3310 」を用いて操作された、という
イベントを記録している。The general format of this event information is (operation target object ID, function address). As a specific example, (154, 2000 3000) (12, 2000 331)
0) can be mentioned. In this example, the ID of the operated object, the ID of the object that tried to operate the object, and the address of the function used for the operation are recorded. That is, the event that the String type object "12" is operated by using the member function "2000 3310" is recorded.
【0119】なお、同一対象に複数種類のポイントが重
複して設定されていた場合、ブレーク処理部は、シス
テムブレークポイント、イベントポイント、ユーザ
ブレークポイントの順序で、各ポイントに対応する処理
部を順次起動する。When a plurality of types of points are set in duplicate for the same target, the break processing unit sequentially processes the processing units corresponding to the respective points in the order of system break point, event point, and user break point. to start.
【0120】[1−3.第1実施例の効果]
以上のように、第1実施例のプログラムデバッグ装置に
よれば、プログラムにおけるクラス間の構造を表すクラ
ス情報が生成され、出力されるので、クラス間の構造の
理解が容易になる。また、第1実施例のプログラムデバ
ッグ装置では、オブジェクト情報が生成され出力される
ので、オブジェクトの状態の理解が容易になる。このた
め、ユーザは、オブジェクトの生成、消滅などを含むオ
ブジェクトの状況を見ながらデバッグを行うことがで
き、特定のオブジェクトに注目したデバッグも容易にな
る。また、第1実施例のプログラムデバッグ装置では、
オブジェクト間の参照関係を表す参照関係情報が出力さ
れるので、デバッグで注目すべきオブジェクトと参照関
係を有するオブジェクトに関する情報を入手することが
できる。[1-3. Effects of First Embodiment] As described above, according to the program debug device of the first embodiment, class information representing a structure between classes in a program is generated and output, so that the structure between classes can be understood. It will be easier. Further, in the program debug device of the first embodiment, since the object information is generated and output, it is easy to understand the state of the object. For this reason, the user can perform debugging while watching the status of the object including the generation and disappearance of the object, and the debugging focusing on the specific object becomes easy. Further, in the program debug device of the first embodiment,
Since the reference relation information indicating the reference relation between the objects is output, it is possible to obtain the information about the object having the reference relation with the object to be noted in the debugging.
【0121】また、第1実施例のプログラムデバッグ装
置では、所望のオブジェクトにブレークポイントを設定
し、ブレークポイントでプログラムの実行を停止できる
ので、特定のオブジェクトに注目したデバッグが容易に
なる。また、第1実施例のプログラムデバッグ装置で
は、イベントポイントとして設定した所望のオブジェク
トにおける実行内容の履歴を記録できるので、特定のオ
ブジェクトに注目してプログラムの挙動を追跡すること
ができる。Further, in the program debug device of the first embodiment, a breakpoint can be set on a desired object and the execution of the program can be stopped at the breakpoint, which facilitates debugging focusing on a specific object. Further, in the program debug device of the first embodiment, since the history of the execution contents of the desired object set as the event point can be recorded, the behavior of the program can be traced by focusing on the specific object.
【0122】また、第1実施例のプログラムデバッグ装
置では、ブレークポイントが設定オブジェクトの親クラ
スのメンバにも設定され、当該メンバが参照されたとき
に、操作対象が対象オブジェクトか否かが判断されるの
で、オブジェクト指向プログラミングにおける継承が行
われている場合でも、オブジェクト単位のブレークが可
能となる。Further, in the program debug device of the first embodiment, the breakpoint is set also in the member of the parent class of the setting object, and when the member is referenced, it is judged whether or not the operation target is the target object. Therefore, even if inheritance in object-oriented programming is performed, breaks can be made in object units.
【0123】このように第1実施例のプログラムデバッ
グ装置によれば、オブジェクトに基づいたデバッグ支援
が行われるので、特定のオブジェクトに注目したデバッ
グが容易になり、オブジェクト指向プログラミングにお
けるデバッグ作業の効率が向上する。As described above, according to the program debugging apparatus of the first embodiment, since the debugging support based on the object is performed, the debugging focusing on the specific object becomes easy, and the efficiency of the debugging work in the object-oriented programming is improved. improves.
【0124】[2.第2実施例]
なお、デバッグ操作や各種情報出力など、オブジェクト
に関する入出力を、ソースコード中において当該オブジ
ェクトに対応する識別名に基づいて行ってもよい。ま
た、所望のデバッグ操作をオブジェクトの識別名で予約
できるようにしてもよい。第2実施例のプログラムデバ
ッグ装置は、これらを実現する構成を示すもので、第2
実施例の目的は、デバッグ操作を効率化するプログラム
デバッグ装置を提供することである。[2. Second Example] It should be noted that input / output of an object such as debug operation and output of various information may be performed based on an identification name corresponding to the object in the source code. Further, a desired debug operation may be reserved by the object identification name. The program debug device of the second embodiment shows a configuration for realizing these.
An object of the embodiment is to provide a program debug device that makes the debug operation efficient.
【0125】すなわち、図19は、プログラムデバッグ
装置の第2実施例のプログラムデバッグ装置の構成を示
す機能ブロック図である。この図に示すように、第2実
施例のプログラムデバッグ装置は、第1実施例のプログ
ラムデバッグ装置と略同様の構成を有するプログラムデ
バッグ装置において、所望のデバッグ操作をオブジェク
トの識別名で予約する予約部21(前記予約手段に相当
するもの)と、予約された識別名で参照可能になったオ
ブジェクトが存在する場合に当該オブジェクトに対して
予約された操作を実行する予約実行部22(前記予約実
行手段に相当するもの)手段と、を有する。That is, FIG. 19 is a functional block diagram showing the structure of the program debug device of the second embodiment of the program debug device. As shown in this figure, the program debug device of the second embodiment is a program debug device having a configuration substantially similar to that of the program debug device of the first embodiment, and is a reservation for reserving a desired debug operation with an object identification name. A part 21 (corresponding to the reservation unit) and a reservation execution part 22 (reservation execution) for executing an operation reserved for the object when an object that can be referred to by the reserved identification name exists. (Corresponding to the means) means.
【0126】また、第2実施例のプログラムデバッグ装
置は、各オブジェクトに関する入出力を、ソースコード
中において当該オブジェクトに対応する識別名に基づい
て行うユーザインタフェース26を有する。このような
第2実施例では、デバッグ操作の入力や各種情報の出力
が、システム内部のオブジェクトのIDのみではなく、
オブジェクトに対応する識別名で行われる。このため、
情報の理解やデバッグ操作の入力が容易になり、デバッ
グが効率化される。The program debug device of the second embodiment also has a user interface 26 for inputting / outputting each object based on the identification name corresponding to the object in the source code. In such a second embodiment, the input of the debug operation and the output of various information are not limited to the ID of the object inside the system,
It is done with the distinguished name corresponding to the object. For this reason,
The information can be easily understood and the debug operation can be input easily, and the debugging can be made efficient.
【0127】[2−1.操作の予約]
第2実施例のプログラムデバッグ装置において、ユーザ
は、予約部21によって、所望のデバッグ操作をオブジ
ェクトの識別名で予約することができる。すなわち、こ
の予約は、プログラムの実行前でも実行中でも行うこと
ができる。また、識別名は、注目するオブジェクトのソ
ースコード中における識別名を用いる。識別名は、デバ
ッグ情報として獲得される。操作としては、ブレークポ
イントやイベントポイントの設定など所望の操作を自由
に予約できる。予約内容は、所定のメモリ領域にデータ
として保持される。[2-1. Reservation of Operation] In the program debug device according to the second embodiment, the user can reserve a desired debug operation by the object identification name by the reservation unit 21. That is, this reservation can be performed before or during execution of the program. As the identification name, the identification name in the source code of the object of interest is used. The identification name is acquired as debug information. As an operation, a desired operation such as setting a breakpoint or an event point can be freely reserved. The reservation content is held as data in a predetermined memory area.
【0128】図20は、予約内容の例であり、オブジェ
クトを型と識別名で指定し、操作内容を記述したもので
ある。例えば、2行目では、cat型オブジェクトのメ
ンバであるString型オブジェクト"zoo−>c
at.name"へのオブジェクト型ブレークポイント
設定という操作が表されている。FIG. 20 shows an example of reservation contents, in which an object is designated by a type and an identification name and operation contents are described. For example, in the second line, a String type object "zoo->c" that is a member of the cat type object.
at. An operation of setting an object type breakpoint to "name" is shown.
【0129】[2−2.操作の実行]
予約実行部22は、予約された識別名で参照可能になっ
たオブジェクトの存在がする場合、当該オブジェクトに
対して予約された操作を実行する。[2-2. Execution of Operation] When there is an object that can be referred to by the reserved identification name, the reservation execution unit 22 executes the reserved operation for the object.
【0130】なお、オブジェクトが予約された識別名で
参照可能になる場合としては、典型的には、予約され
た識別名でオブジェクトが生成された場合、ポインタ
型オブジェクトによるアクセス権の移転で、既存のオブ
ジェクトに対して予約された識別名での参照が可能にな
った場合、を挙げることができる。As a case where the object can be referred to by the reserved identification name, typically, when the object is generated with the reserved identification name, the access right by the pointer type object is transferred to the existing object. If it becomes possible to refer to the object with the reserved distinguished name, it can be mentioned.
【0131】これらの場合を検出するため、次のような
処理が行われる。すなわち、プログラムの実行中、ブレ
ーク処理部18は、オブジェクトの生成と、ポインタ型
オブジェクトの操作を検出し、これらを予約実行部22
に通知する。オブジェクトが生成された場合、予約実行
部22は、当該オブジェクトの識別名が予約された識別
名に一致するか否かを調査し、一致する場合は当該識別
名について予約された操作を実行する。In order to detect these cases, the following processing is performed. That is, during the execution of the program, the break processing unit 18 detects the generation of the object and the operation of the pointer type object, and the reservation processing unit 22 detects them.
To notify. When the object is generated, the reservation execution unit 22 investigates whether or not the identification name of the object matches the reserved identification name, and if they match, executes the reserved operation for the identification name.
【0132】また、ポインタ型オブジェクトが操作され
た場合、予約実行部22は、アクセス権の移転によっ
て、既存のオブジェクトに対して予約された識別名での
参照が可能になったか否かを調査し、可能になった場合
は当該識別名について予約された操作を実行する。Further, when the pointer type object is operated, the reservation executing section 22 checks whether or not the transfer of the access right makes it possible to refer to the existing object with the reserved identification name. If it becomes possible, execute the reserved operation for the relevant identification name.
【0133】なお、これらの調査は、参照関係情報、実
行情報、ソースコード、デバッグ情報などを用いて行わ
れ、実際の操作は、オブジェクトをIDによって特定し
て行われる。また、図21は、予約実行手段の動作手順
の例を示す。Note that these investigations are performed by using the reference relation information, execution information, source code, debug information, etc., and the actual operation is performed by specifying the object by the ID. Further, FIG. 21 shows an example of an operation procedure of the reservation executing means.
【0134】予約された操作は、予約の時点ですでに予
約された識別名のオブジェクトが存在すれば直ちに実行
するようにしてもよい。図22は、この場合における予
約実行手段の動作手順の例である。The reserved operation may be executed immediately if there is an object having the reserved identification name at the time of reservation. FIG. 22 shows an example of the operation procedure of the reservation executing means in this case.
【0135】このように、第2実施例のプログラムデバ
ッグ装置では、プログラムの実行前か実行中かを問わ
ず、所望の識別名について、ブレークポイントの設定な
ど所望のデバッグ操作を予約できる。そして、予約され
た識別名で参照可能になったオブジェクトが存在すると
き、当該オブジェクトに対して予約された操作が実行さ
れる。このため、デバッグ操作が自動化され、デバッグ
が効率化される。As described above, in the program debug device of the second embodiment, it is possible to reserve a desired debug operation such as setting a breakpoint for a desired identification name regardless of whether the program is being executed or being executed. Then, when there is an object that can be referred to by the reserved identification name, the reserved operation is executed for the object. Therefore, the debugging operation is automated and the debugging is efficient.
【0136】[3.第3実施例]
本発明において、各種情報の表示は、1又は2以上のウ
インドウに表示するマルチウインドウ表示システムを用
いて行ってもよい。この表示システムによって、ウイン
ドウに表示されている情報に関係ある他の情報を、順次
新たなウインドウに呼び出せば、多種類の情報を相互に
有機的関連性をもって表示させ、効率的に利用すること
ができる。[3. Third Example] In the present invention, various information may be displayed using a multi-window display system that displays one or more windows. By using this display system, other information related to the information displayed in a window can be sequentially called up in a new window so that various types of information can be displayed in an organically related manner and used efficiently. it can.
【0137】例えば、ウインドウごとにソースコード
(図23)、クラス情報(図24)、オブジェクト情報
(図25)などを表示する。また、ブレークポイントの
設定など、表示された情報に対する操作は、例えば、操
作用の新たなウインドウで行う(図26)。For example, the source code (FIG. 23), class information (FIG. 24), object information (FIG. 25), etc. are displayed for each window. Further, the operation for the displayed information such as the setting of a breakpoint is performed in a new operation window (FIG. 26).
【0138】これらのウインドウには、例えば、ブレー
ク時に、ブレークポイントに係るソースコードや(図2
7)、ブレークしたオブジェクトの情報(図28)を表
示してもよい。また、図27や図28に示すように、情
報の一部を反転表示などによって強調することが考えら
れる。In these windows, for example, at the time of a break, the source code relating to the breakpoint or (see FIG.
7), information on the object that has broken (FIG. 28) may be displayed. Further, as shown in FIGS. 27 and 28, it is conceivable that a part of information is highlighted by reverse display or the like.
【0139】このようなマルチウインドウシステムで
は、該当するソースコードの部分を1つのウインドウに
表示すると共に、対応するオブジェクト情報を他のウイ
ンドウに表示してもよい(図29)。また、ソースコー
ドに対応するオブジェクトにブレークポイントやイベン
トポイントを設定できるようにしてもよい(図30)。
さらに、ソースコードに対応するオブジェクトにブレー
クポイントを設定する場合、ソースコードの該当部分に
対応する複数のオブジェクトを別のウインドウに表示
し、その中から設定の対象とするオブジェクトを選択す
るようにしてもよい(図31)。In such a multi-window system, the corresponding source code portion may be displayed in one window and the corresponding object information may be displayed in another window (FIG. 29). Further, a breakpoint or an event point may be set in the object corresponding to the source code (FIG. 30).
Furthermore, when setting a breakpoint on an object corresponding to the source code, display multiple objects corresponding to the relevant part of the source code in another window and select the object to be set from among them. Good (Figure 31).
【0140】[4.他の実施例]
なお、本発明は上記実施例に限定されるものではなく、
実施態様の変更は自由であるから、次のような他の実施
例をも包含する。例えば、本発明は、いかなるオブジェ
クト指向プログラムミング言語に適用してもよい。ま
た、クラス情報・オブジェクト情報など、各種情報の表
示形式は自由である。また、オブジェクトに設定するブ
レークポイントの種類は、オブジェクト型又はアドレス
型のいずれか1種類でもよい。また、操作の予約やマル
チウインドウ表示システムは必須ではない。[4. Other Embodiments] The present invention is not limited to the above embodiments,
Since the embodiment can be freely changed, the following other examples are also included. For example, the present invention may be applied to any object oriented programming language. Also, the display format of various information such as class information and object information is free. Further, the type of the breakpoint set in the object may be either one of the object type and the address type. In addition, operation reservation and multi-window display system are not essential.
【0141】[0141]
【発明の効果】以上のように、本発明によれば、オブジ
ェクトに基づいてデバッグ作業を支援するプログラムデ
バッグ装置を提供することができるので、オブジェクト
指向プログラミングによるソフトウェア開発の効率や信
頼性が向上する。As described above, according to the present invention, since it is possible to provide a program debugging device that supports debugging work based on objects, the efficiency and reliability of software development by object-oriented programming are improved. .
【図1】本発明の第1実施例のプログラムデバッグ装置
の構成を示す機能ブロック図。FIG. 1 is a functional block diagram showing a configuration of a program debug device according to a first embodiment of the present invention.
【図2】本発明の第1実施例のプログラムデバッグ装置
におけるデバッグ作業の態様を概念的に示したフローチ
ャート。FIG. 2 is a flowchart conceptually showing a mode of debugging work in the program debugging device in the first embodiment of the present invention.
【図3】本発明の第1実施例のプログラムデバッグ装置
におけるクラス情報の一般的形式を示す図。FIG. 3 is a diagram showing a general format of class information in the program debug device according to the first embodiment of the present invention.
【図4】本発明の第1実施例のプログラムデバッグ装置
におけるクラス情報の具体例。FIG. 4 is a specific example of class information in the program debug device according to the first embodiment of the present invention.
【図5】本発明の第1実施例のプログラムデバッグ装置
におけるオブジェクト情報生成の手順を示すフローチャ
ート。FIG. 5 is a flowchart showing a procedure of object information generation in the program debug device according to the first embodiment of the present invention.
【図6】本発明の第1実施例のプログラムデバッグ装置
においてオブジェクトのアドレスを授受する関数がアク
セスされた場合におけるオブジェクト情報生成の手順を
示すフローチャート。FIG. 6 is a flowchart showing a procedure for generating object information when a function for transferring an object address is accessed in the program debug device according to the first embodiment of the present invention.
【図7】本発明の第1実施例のプログラムデバッグ装置
におけるオブジェクト情報の一般的形式を示す図。FIG. 7 is a diagram showing a general format of object information in the program debug device according to the first embodiment of the present invention.
【図8】本発明の第1実施例のプログラムデバッグ装置
におけるオブジェクト情報の具体例。FIG. 8 is a specific example of object information in the program debug device according to the first embodiment of the present invention.
【図9】本発明の第1実施例のプログラムデバッグ装置
におけるオブジェクト型ブレークポイント設定の手順を
示すフローチャート。FIG. 9 is a flowchart showing a procedure for setting an object type breakpoint in the program debug device according to the first embodiment of the present invention.
【図10】本発明の第1実施例のプログラムデバッグ装
置におけるアドレス型ブレークポイント設定の手順を示
すフローチャート。FIG. 10 is a flow chart showing the procedure of address type breakpoint setting in the program debug device of the first embodiment of the present invention.
【図11】本発明の第1実施例のプログラムデバッグ装
置におけるブレークポイントを表す情報の一般的形式を
示す図。FIG. 11 is a diagram showing a general format of information representing a breakpoint in the program debug device according to the first embodiment of the present invention.
【図12】本発明の第1実施例のプログラムデバッグ装
置におけるブレークポイントを表す情報の具体例を示す
図。FIG. 12 is a diagram showing a specific example of information indicating a breakpoint in the program debug device according to the first embodiment of the present invention.
【図13】本発明の第1実施例のプログラムデバッグ装
置におけるイベントポイントを表す情報の一般的形式を
示す図。FIG. 13 is a diagram showing a general format of information representing an event point in the program debug device according to the first embodiment of the present invention.
【図14】本発明の第1実施例のプログラムデバッグ装
置におけるイベントポイントを表す情報の具体例を示す
図。FIG. 14 is a diagram showing a specific example of information representing an event point in the program debug device according to the first embodiment of the present invention.
【図15】本発明の第1実施例のプログラムデバッグ装
置においてオブジェクトのクラスとその先祖クラスの公
開メンバ関数に設定したブレークが発生した場合の処理
手順を示すフローチャート。FIG. 15 is a flowchart showing a processing procedure when a break set in a public member function of an object class and its ancestor class occurs in the program debug device of the first embodiment of the present invention.
【図16】本発明の第1実施例のプログラムデバッグ装
置において公開メンバを持つ場合に設定したブレークが
発生した場合の処理手順を示すフローチャート。FIG. 16 is a flowchart showing a processing procedure in the case where a set break occurs when the program debugging apparatus according to the first embodiment of the present invention has a public member.
【図17】本発明の第1実施例のプログラムデバッグ装
置においてアドレス型ブレークポイントに係るブレーク
処理の手順を示すフローチャート。FIG. 17 is a flowchart showing a procedure of break processing related to an address type break point in the program debug device according to the first embodiment of the present invention.
【図18】本発明の第1実施例のプログラムデバッグ装
置における参照関係情報生成の手順を示すフローチャー
ト。FIG. 18 is a flowchart showing a procedure of reference reference information generation in the program debug device according to the first embodiment of the present invention.
【図19】本発明の第2実施例のプログラムデバッグ装
置の構成を示す機能ブロック図。FIG. 19 is a functional block diagram showing a configuration of a program debug device according to a second embodiment of the present invention.
【図20】本発明の第2実施例のプログラムデバッグ装
置における予約内容。FIG. 20 shows reserved contents in the program debug device according to the second embodiment of the present invention.
【図21】本発明の第2実施例のプログラムデバッグ装
置における予約実行部の動作手順を示すフローチャー
ト。FIG. 21 is a flowchart showing an operation procedure of a reservation execution unit in the program debug device according to the second embodiment of the present invention.
【図22】本発明の第2実施例のプログラムデバッグ装
置における予約実行部の動作手順を示すフローチャー
ト。FIG. 22 is a flowchart showing an operation procedure of a reservation execution section in the program debug device according to the second embodiment of the present invention.
【図23】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 23 is a window display example in the program debug device according to the third embodiment of the present invention.
【図24】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 24 is a display example of a window in the program debug device according to the third embodiment of the present invention.
【図25】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 25 is a window display example in the program debug device according to the third embodiment of the present invention.
【図26】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 26 is a window display example in the program debug device according to the third embodiment of the present invention.
【図27】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 27 is a display example of a window in the program debug device according to the third embodiment of the present invention.
【図28】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 28 is a display example of a window in the program debug device according to the third embodiment of the present invention.
【図29】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 29 is a display example of a window in the program debug device according to the third embodiment of the present invention.
【図30】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 30 is a window display example in the program debug device according to the third embodiment of the present invention.
【図31】本発明の第3実施例のプログラムデバッグ装
置におけるウインドウの表示例。FIG. 31 is a window display example in the program debug device according to the third embodiment of the present invention.
1:キーボード 2:マウス 3:フロッピーディスク装置 4:表示装置 5:処理部 6,26:ユーザインタフェース部 7:ソースコード格納部 8:クラス情報生成部 9:クラス情報格納部 10:デバッグ情報格納部 11:ロードモジュール格納部 12:実行部 13:オブジェクト情報生成部 14:オブジェクト情報格納部 15:参照関係情報生成部 16:ブレークポイント設定部 17:ブレークポイント格納部 18:ブレーク処理部 19:イベント情報生成部 20:イベント情報格納部 21:予約部 22:予約実行部 1: Keyboard 2: Mouse 3: Floppy disk device 4: Display device 5: Processing unit 6, 26: User interface section 7: Source code storage 8: Class information generator 9: Class information storage 10: Debug information storage 11: Load module storage section 12: Execution unit 13: Object information generation unit 14: Object information storage section 15: Reference relationship information generation unit 16: Breakpoint setting section 17: Breakpoint storage 18: Break processing section 19: Event information generation unit 20: Event information storage section 21: Reservation department 22: Reservation execution unit
───────────────────────────────────────────────────── フロントページの続き (72)発明者 小山 徳章 神奈川県川崎市幸区柳町70番地 株式会 社東芝 柳町工場内 (56)参考文献 特開 昭64−19439(JP,A) 特開 平1−229339(JP,A) 特開 平5−282174(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 11/28 G06F 9/44 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Tokuaki Koyama 70 Yanagimachi, Saiwai-ku, Kawasaki City, Kanagawa Stock company Toshiba Yanagimachi Plant (56) References JP-A 64-19439 (JP, A) JPA 1 -229339 (JP, A) JP-A-5-282174 (JP, A) (58) Fields investigated (Int.Cl. 7 , DB name) G06F 11/28 G06F 9/44
Claims (11)
に基づいて、当該プログラムの複数のオブジェクトを実
現するための複数のクラス間の構造を表すクラス情報を
生成するクラス情報生成手段と、 前記プログラムの実行中に、前記複数のオブジェクトの
各々が生成された場合に、各オブジェクトに対してオブ
ジェクト識別と先頭アドレスを含むオブジェクト情報を
生成して記録するオブジェクト情報生成手段と、 前記オブジェクト情報に従って、各ブレークポイントが
前記複数のオブジェクトの特定オブジェクトに対応する
ブレークポイントアドレスで設定されるようにして複数
のブレークポイントを設定するブレークポイント設定手
段と、 前記プログラムの前記特定オブジェクトにイベントポイ
ントを設定するイベントポイント設定手段と、 前記プログラムの実行によって前記イベントポイントを
検出するイベントポイント検出手段と、 前記イベントポイントにおける前記プログラムの実行に
関するイベント情報を生成するイベント情報生成手段
と、 を有することを特徴とするプログラムデバッグ装置。1. Class information generation means for generating, based on a source code of a program to be debugged, class information representing a structure between a plurality of classes for realizing a plurality of objects of the program, and during execution of the program. In addition, when each of the plurality of objects is generated, object information generating means for generating and recording object information including an object identification and a start address for each object, and each breakpoint according to the object information. Breakpoint setting means for setting a plurality of breakpoints so that they are set at break point addresses corresponding to specific objects of the plurality of objects, and an event point setting means for setting an event point on the specific object of the program. A program debug device comprising: a stage; event point detecting means for detecting the event point by executing the program; and event information generating means for generating event information related to the execution of the program at the event point. .
数のオブジェクト間の参照関係を表す参照関係情報を生
成する参照関係情報生成手段と、 前記参照関係情報を出力する参照関係情報出力手段と、 を有することを特徴とする請求項1記載のプログラムデ
バッグ装置。2. A reference relationship information generating unit that generates reference relationship information indicating a reference relationship between the plurality of objects based on the object information, and a reference relationship information output unit that outputs the reference relationship information. The program debugging device according to claim 1, wherein
複数のクラスの一つに対応する前記複数のオブジェクト
内の位置にブレークポイントアドレスを設定するように
構成されたことを特徴とする請求項1記載のプログラム
デバッグ装置。3. The break point setting means is configured to set a break point address at a position in the plurality of objects corresponding to one of the plurality of classes. Program debug device.
おける前記特定オブジェクトに対応する識別名に基づい
て、当該オブジェクトに関するデバッグ情報の入出力を
行うユーザインタフェースを有することを特徴とする請
求項1記載のプログラムデバッグ装置。4. The program according to claim 1, further comprising a user interface for inputting / outputting debug information regarding an object based on an identification name corresponding to the specific object in the source code of the program. Debug device.
いてデバッグ操作を予約する予約手段と、 前記特定オブジェクトが予約された識別名で参照可能な
場合に、当該オブジェクトに対して予約された操作を自
動的に実行する予約実行手段と、 を有することを特徴とする請求項4記載のプログラムデ
バッグ装置。5. Reserving means for reserving a debug operation using the identification name of the specific object, and a reserving operation for the object when the specific object can be referred to by the reserved identification name. 5. The program debugging device according to claim 4, further comprising a reservation execution unit that executes automatically.
特定オブジェクトの各公開メンバ関数でイベントポイン
トを設定し、前記特定オブジェクトに含まれる前記複数
のオブジェクト中の各公開オブジェクトの各公開メンバ
関数でイベントポイントを設定するように構成されたこ
とを特徴とする請求項1記載のプログラムデバッグ装
置。Wherein said event point setting means, the setting of the event points each published member functions of a particular object, each published member of each published object in the plurality of objects included in the specific object
The program debug device according to claim 1, wherein the program debug device is configured to set an event point by a function .
レークポイントが、前記特定オブジェクトの前記公開メ
ンバ関数の第1のブレークポイントアドレス、前記特定
オブジェクトの親クラスの各公開メンバ関数の第2のブ
レークポイントアドレス、および前記特定オブジェクト
に含まれる前記複数のオブジェクト中の少なくとも一つ
の公開オブジェクトの公開メンバ関数の第3のブレーク
ポイントアドレスで設定されるようにして複数のブレー
クポイントを設定するように構成されたことを特徴とす
る請求項1記載のプログラムデバッグ装置。7. The break point setting means sets each break point to the public message of the specific object.
A first breakpoint address of a public function, a second breakpoint address of each public member function of a parent class of the particular object, and a public member of at least one public object of the plurality of objects contained in the particular object. 2. The program debug device according to claim 1, wherein the program debug device is configured to set a plurality of breakpoints as set by a third breakpoint address of the function .
複数のオブジェクト中のどのオブジェクトが他のどのオ
ブジェクトによって生成されているかを記録するように
構成されたことを特徴とする請求項1記載のプログラム
デバッグ装置。8. The object information generating means determines which object in the plurality of objects is the other object.
2. The program debug device according to claim 1, wherein the program debug device is configured to record whether the object is generated by the object .
スが前記複数のオブジェクト中の他のどのオブジェクト
にいつ授受されたかを追跡することによって、アクセス
権情報を追跡する手段をさらに有することを特徴とする
請求項1記載のプログラムデバッグ装置。9. The other object among the plurality of objects, wherein the start address of the specific object is
2. The program debugging device according to claim 1, further comprising means for tracking access right information by tracking when the data is transferred to and from the access right information.
記アクセス権情報を用いて前記複数のブレークポイント
を設定できるように構成されたことを特徴とする請求項
9記載のプログラムデバッグ装置。Wherein said break point setting means, before
The plurality of breakpoints using the access right information
10. The program debug device according to claim 9, wherein the program debug device is configured to be able to set .
を参照したのが前記複数のオブジェクトのどのオブジェ
クトであるかに関わらず、当該ブレークポイントアドレ
スで前記プログラムの実行をブレークするブレーク手段
と、当該ブレークポイントアドレスを呼び出したオブジェク
トが、前記ブレークポイントが設定されていないオブジ
ェクトである場合に 、ユーザの介入なしに前記プログラ
ムの実行を再開する手段と、当該ブレークポイントアドレスを呼び出したオブジェク
トが、前記ブレークポイントが設定されているオブジェ
クトである場合に 、ユーザに制御を渡す手段と、 をさらに有することを特徴とする請求項1記載のプログ
ラムデバッグ装置。11. Breaking means for breaking execution of the program at the breakpoint address regardless of which of the plurality of objects referred to one of the breakpoint addresses, and the breakpoint. The object that called the address
Is an object whose breakpoint is not set.
And the object that called the breakpoint address , the method of restarting the execution of the program without user intervention.
The object where the breakpoint is set.
If it is transfected, a program debugging device according to claim 1, further comprising a means to pass control to the user.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13763694A JP3372106B2 (en) | 1993-06-21 | 1994-06-20 | Program debug device |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5-149529 | 1993-06-21 | ||
JP14952993 | 1993-06-21 | ||
JP13763694A JP3372106B2 (en) | 1993-06-21 | 1994-06-20 | Program debug device |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0773070A JPH0773070A (en) | 1995-03-17 |
JP3372106B2 true JP3372106B2 (en) | 2003-01-27 |
Family
ID=26470877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13763694A Expired - Fee Related JP3372106B2 (en) | 1993-06-21 | 1994-06-20 | Program debug device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3372106B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100590604C (en) * | 2003-06-20 | 2010-02-17 | 微软公司 | Debugging breakpoints on pluggable components |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4062546B2 (en) * | 2005-09-30 | 2008-03-19 | オムロン株式会社 | Debug device |
JP5050624B2 (en) * | 2007-04-20 | 2012-10-17 | 株式会社明電舎 | Software development support system |
JP5297158B2 (en) * | 2008-11-18 | 2013-09-25 | 株式会社Jsol | Information processing apparatus and control program |
KR101476536B1 (en) * | 2013-05-27 | 2014-12-24 | (주)스마일게이트엔터테인먼트 | The method and system for inspecting program |
-
1994
- 1994-06-20 JP JP13763694A patent/JP3372106B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100590604C (en) * | 2003-06-20 | 2010-02-17 | 微软公司 | Debugging breakpoints on pluggable components |
Also Published As
Publication number | Publication date |
---|---|
JPH0773070A (en) | 1995-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5845125A (en) | Debugger using class information and dynamic instance inter-relationships | |
Swinehart et al. | A structural view of the Cedar programming environment | |
US5611043A (en) | Debugger system and method for controlling child processes | |
US6067641A (en) | Demand-based generation of symbolic information | |
US5758160A (en) | Method and apparatus for building a software program using dependencies derived from software component interfaces | |
CA2211478C (en) | Systems, methods and apparatus for generating and controlling display of medical images | |
US5590330A (en) | Method and system for providing a testing facility in a program development tool | |
EP3785124B1 (en) | Memory validity states in time-travel debugging | |
US8250537B2 (en) | Flexible horizontal stack display and editor | |
CA2211373C (en) | Learn mode script generation in a medical imaging system | |
US8752020B2 (en) | System and process for debugging object-oriented programming code leveraging runtime metadata | |
US20110307871A1 (en) | Distributed Debugging | |
JPH09506722A (en) | Modeling system | |
US8291386B2 (en) | System and process for debugging object-oriented programming code | |
JPH0760380B2 (en) | Program call device | |
US5831612A (en) | Cell overlap detection and correction in a medical imaging system | |
EP2171589B1 (en) | Transactional debugger for a transactional memory system | |
US20070143678A1 (en) | Method and apparatus for persistently resolving events to event source | |
US6070006A (en) | Object oriented software development tool for creation of new class(es) | |
JP3372106B2 (en) | Program debug device | |
JPH11110255A (en) | Software debugging device and method | |
US8635603B2 (en) | Handling debugger breakpoints in a shared instruction system | |
US20030177471A1 (en) | System and method for graphically developing a program | |
JPH06332689A (en) | Program displaying method and program edition accepting method | |
Biddle et al. | Reuse of debuggers for visualization of reuse |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
LAPS | Cancellation because of no payment of annual fees |