JPH10198578A - System and method for debugging - Google Patents
System and method for debuggingInfo
- Publication number
- JPH10198578A JPH10198578A JP10016891A JP1689198A JPH10198578A JP H10198578 A JPH10198578 A JP H10198578A JP 10016891 A JP10016891 A JP 10016891A JP 1689198 A JP1689198 A JP 1689198A JP H10198578 A JPH10198578 A JP H10198578A
- Authority
- JP
- Japan
- Prior art keywords
- program
- failure
- debugging
- checkpoint
- debug mode
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Retry When Errors Occur (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
【0001】[0001]
【発明の属する技術分野】本発明は、例えばコンピュー
タシステムにおけるプログラムのデバッグに適用して好
適なデバッグ方式およびデバッグ方法に係り、特にマル
チプロセッサシステムでのタイミングを原因とした障害
等、従来再現させることが困難であった障害についての
解析を容易に行うことのできるデバッグ方式およびデバ
ッグ方法に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a debugging method and a debugging method suitable for application to, for example, debugging of a program in a computer system. The present invention relates to a debugging method and a debugging method that can easily analyze a failure that has been difficult.
【0002】[0002]
【従来の技術】近年、プログラムのデバッグ方法につい
ては、ブレークポイントの設定、シングルステップでの
実行、及びシンボリックデバッグ等、数々の手法が開発
されており、一般的な手法は確立されたといえる。2. Description of the Related Art In recent years, a number of techniques have been developed for debugging a program, such as setting a breakpoint, executing in a single step, and symbolic debugging. It can be said that a general technique has been established.
【0003】ただし、それはシングルプロセッサシステ
ムにおけるデバッグ手法についてのことであり、マルチ
プロセッサシステムにおける並列プログラムのデバッグ
手法は未だ模索段階であるといえる。[0003] However, this is about a debugging technique in a single processor system, and it can be said that a debugging technique for a parallel program in a multiprocessor system is still in a search stage.
【0004】特に、並列処理プログラムにおいては、複
数のプロセッサ上で処理が同時に進行するため、何等か
の障害が発生した場合に、その処理を再現させてみよう
としても、微妙なタイミングのずれにより同じ障害が再
現できないといったことがしばしばあり、デバッグをま
すます困難なものにしている。[0004] In particular, in a parallel processing program, since the processing proceeds simultaneously on a plurality of processors, even if a failure occurs, even if an attempt is made to reproduce the processing, the same processing is performed due to a slight timing shift. Often, the failure cannot be reproduced, making debugging more difficult.
【0005】例えば、図6に示すように、プロセッサ1
1a〜11cの3つのプロセッサを有するマルチプロセ
ッサシステムの配下でプログラムが並列に実行されてい
るような状況において、プログラム中の排他処理13a
〜13cにバグが存在するために排他制御が正常に機能
せず、相互の実行タイミングによって障害を発生させて
しまうような場合が該当し、このような場合、複数プロ
セッサ11a〜11c配下で同期を取りながらデバッガ
を操作しなければ障害を再現させることができず、デバ
ッグの効率を著しく低下させていた。また、場合によっ
ては再現が不可能であり、デバッグを行うことができな
かった。[0005] For example, as shown in FIG.
In a situation where programs are executed in parallel under a multiprocessor system having three processors 1a to 11c, exclusive processing 13a in the program is executed.
Exclusion control does not function properly due to a bug in .about.13c, and a failure occurs due to mutual execution timing. In such a case, synchronization under the control of the multiple processors 11a to 11c is performed. If the user does not operate the debugger while retrieving the data, the failure cannot be reproduced and the efficiency of debugging has been significantly reduced. In some cases, reproduction was impossible, and debugging could not be performed.
【0006】また、プログラムの再現性を確保するため
に、タイムスタンプなどの各種情報を通常のプログラム
実行時にも採取し続けるといった手法も存在するが、こ
れらの手法においては、通常のプログラム実行時のオー
バーヘッドが大きくなってしまうとともに、それらの各
種情報を格納するための記憶媒体を大量に消費してしま
うといった問題があった。In order to ensure the reproducibility of a program, there is also a method of continuously collecting various information such as a time stamp even during a normal program execution. There is a problem that the overhead increases and a storage medium for storing such various information is consumed in large quantities.
【0007】[0007]
【発明が解決しようとする課題】上述したように、従来
のデバッグ方式においては、例えば複数のプロセッサ上
で並列処理されるプログラムにてタイミングを原因とし
た障害が発生したような場合に、そのデバッグが非常に
困難であり、あるいはその障害を再現させることができ
ないためにデバッグが不可能であるといった問題があっ
た。As described above, in the conventional debugging method, for example, when a failure due to timing occurs in a program processed in parallel on a plurality of processors, the debugging is performed. However, there has been a problem that debugging is extremely difficult or debugging is impossible because the failure cannot be reproduced.
【0008】また、プログラムの再現性を確保するため
に、タイムスタンプなどの各種情報を通常のプログラム
実行時にも採取し続けるといった手法では、通常のプロ
グラム実行時のオーバーヘッドが大きくなってしまうと
ともに、それらの各種情報を格納するための記憶媒体を
大量に消費してしまうといった問題があった。[0008] In order to ensure the reproducibility of a program, a method of continuously collecting various information such as a time stamp at the time of normal program execution increases the overhead at the time of normal program execution. However, there is a problem that a large amount of a storage medium for storing the various information is consumed.
【0009】本発明は、上記実情に鑑みてなされたもの
であり、例えばマルチプロセッサシステム上で並列処理
されるプログラムにおいて障害が発生したような場合
に、その障害の再現を自動的に実施することによりデバ
ッグの効率を飛躍的に向上させることのできるデバッグ
方式を提供することを目的とする。The present invention has been made in view of the above circumstances. For example, when a failure occurs in a program that is processed in parallel on a multiprocessor system, the failure is automatically reproduced. Accordingly, it is an object of the present invention to provide a debugging method capable of dramatically improving debugging efficiency.
【0010】[0010]
【課題を解決するための手段】前述した目的を達成する
ために、この発明は、プログラムの障害発生を監視し
て、プログラムの障害発生が検出された際に、すべての
プロセッサで同期してプログラムをデバッグモードに移
行させてチェックポイントからリスタートさせるように
したものである。SUMMARY OF THE INVENTION In order to achieve the above-mentioned object, the present invention monitors the occurrence of a program failure and, when the occurrence of a program failure is detected, synchronizes the program with all processors. Is shifted to the debug mode and restarted from the checkpoint.
【0011】すなわち、この発明においては、通常のプ
ログラム実行時にタイムスタンプなどの各種情報を採取
するといったオーバヘッドを発生させることなく、障害
が発生したときに、すべてのプロセッサで同期してプロ
グラムをデバッグモードに移行させてチェックポイント
からリスタートさせることにより、障害の再現を自動的
に試みるとともに、プログラム解析のための情報をリス
タート点以降の必要最少限度のみ採取するといったデバ
ッグの効率化を図ることが可能となる。That is, according to the present invention, when a failure occurs, the program can be synchronously executed in all the processors in the debug mode without causing an overhead such as collecting various information such as a time stamp at the time of normal program execution. By restarting from the checkpoint and restarting from the checkpoint, it is possible to automatically attempt to reproduce the failure and to improve the efficiency of debugging by collecting only the minimum necessary information for program analysis after the restart point. It becomes possible.
【0012】[0012]
【発明の実施の形態】以下図面を参照してこの発明の実
施の形態を説明する。図1は本発明の実施形態に係るデ
バッグ方式の構成を示す図である。いま、プロセッサ1
は、プログラム2を実行しており、またこの際プロセッ
サ1は、所定の間隔でリスタート用のチェックポイント
3を取得している。もし、プログラム2に何等かの障害
が発生すると、プロセッサ1はトラップを発生させる。Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a diagram showing a configuration of a debugging system according to an embodiment of the present invention. Now, processor 1
Executes the program 2, and at this time, the processor 1 acquires the checkpoint 3 for restart at a predetermined interval. If any failure occurs in the program 2, the processor 1 generates a trap.
【0013】プログラムエラー発生検出部4は、このプ
ロセッサ1の発生させるトラップを検出し、また、プロ
グラムデバッグモードリスタート部5は、プログラム2
をデバッグモードに移行させると共にチェックポイント
3に取得された情報をもとに障害発生の直前に取得され
た時点からリスタートさせる。The program error occurrence detecting section 4 detects a trap generated by the processor 1, and the program debug mode restarting section 5
To the debug mode, and restart from the time immediately before the occurrence of the failure based on the information acquired at the checkpoint 3.
【0014】なお、プログラム2中にプログラムの実行
状態が正しく制御されているかどうかを検査するコード
(通常ASSERTと呼ばれる)を埋め込んでおき、もしプロ
グラム2の実行状態が正しく制御されていない場合に、
プログラム2が自らトラップを発生し、プログラムエラ
ー発生検出部4に異常状態の発生を検出させて、上述の
処理へ移行させる方法も有効である。A code (usually called ASSERT) for checking whether the execution state of the program is properly controlled is embedded in the program 2, and if the execution state of the program 2 is not properly controlled,
It is also effective that the program 2 generates a trap by itself, causes the program error occurrence detection unit 4 to detect the occurrence of an abnormal state, and shifts to the above-described processing.
【0015】また、プログラムデバッグモードリスター
ト部5が、プログラム2をデバッグモードに移行させた
後は、プログラム2はデバッガの制御下で実行されるこ
とになり、例えば、プログラム2がステップ実行される
ようになったり、実行履歴を採取されながら実行される
ようになる。After the program debug mode restart unit 5 shifts the program 2 to the debug mode, the program 2 is executed under the control of the debugger. For example, the program 2 is step-executed. , Or while the execution history is being collected.
【0016】ここで、図2及び図3を参照して同実施例
に係るデバッグ方式の動作を説明する。図2及び図3は
同実施例に係るデバッグ方式の動作を説明するためのフ
ローチャートである。Here, the operation of the debugging system according to the embodiment will be described with reference to FIGS. 2 and 3 are flowcharts for explaining the operation of the debugging method according to the embodiment.
【0017】実行中のプログラム2に障害が発生する
と、まず、プログラムエラー発生検出部4がその障害発
生を検出する(図2のステップA1)。そして、プログ
ラムデバッグモードリスタート部5が、プログラム2を
デバッグモードに移行させ(図2のステップA2)、か
つ、プログラム2の実行ステップをチェックポイント3
に格納された情報から障害発生の直前に取得したチェッ
クポイントに戻し(図2のステップA3)、さらに、デ
バッガ配下でのリスタートを実施する(図2のステップ
A4)。When a failure occurs in the program 2 being executed, first, the program error occurrence detection section 4 detects the occurrence of the failure (step A1 in FIG. 2). Then, the program debug mode restart unit 5 shifts the program 2 to the debug mode (step A2 in FIG. 2) and sets the execution step of the program 2 to the check point 3
Is returned to the checkpoint acquired immediately before the occurrence of the failure from the information stored in step (A3 in FIG. 2), and a restart under the debugger is performed (step A4 in FIG. 2).
【0018】デバッグモードに移行され、障害発生の直
前に取得したチェックポイントからリスタートされたプ
ログラムは、実行履歴を採取されながら処理が進められ
(図3のステップB1)、障害が発生した時点でトラッ
プ(割り込み)に入り、実行履歴の退避等、デバッグモ
ードでのトラップ発生時の処理(図3のステップB5)
を実施した後に終了する。The program is shifted to the debug mode, and the program restarted from the checkpoint obtained immediately before the occurrence of the failure is processed while collecting the execution history (step B1 in FIG. 3). Processing when a trap occurs in debug mode, such as entering a trap (interrupt) and saving execution history (step B5 in FIG. 3)
Is terminated after the execution of.
【0019】一方、障害が再現されずに次のチェックポ
イント取得箇所に到達してしまった場合には(図3のス
テップB2のY)、これまでに採取した実行履歴を廃棄
して(図3のステップB3)、再度障害発生の直前に取
得したチェックポイントからのリスタートを実施する
(図3のステップB4)。On the other hand, if the failure has not been reproduced and the next checkpoint has been reached (Y in step B2 in FIG. 3), the execution history collected so far is discarded (FIG. 3). Step B3), and restart from the checkpoint acquired immediately before the occurrence of the failure again (Step B4 in FIG. 3).
【0020】これにより、障害が再現されるまで、上記
処理が繰り返されることとなり、また、障害が再現され
た際の実行履歴のみを採取することが可能となる。図4
及び図5は、同実施例に係るデバッグ方式を適用したシ
ステムの流れを示す概念図である。As a result, the above processing is repeated until the failure is reproduced, and only the execution history at the time when the failure is reproduced can be collected. FIG.
And FIG. 5 is a conceptual diagram showing a flow of a system to which the debugging method according to the embodiment is applied.
【0021】図4に示すように、プロセッサ11a〜1
1cの3つのプロセッサを有するマルチプロセッサシス
テムの配下でプログラムが並列に実行されているような
状況において、プログラム中の排他処理13a〜13c
にバグが存在するために排他制御が正常に機能せず、相
互の実行タイミングによって障害を発生させてしまった
ような場合、プロセッサ11a〜11cで実行中の全プ
ログラムはデバッガ配下に移行され、再度チェックポイ
ント12からリスタートされる。このプログラムは障害
が再現されるまでリスタートが繰り返される。As shown in FIG. 4, the processors 11a to 11a
In a situation where programs are executed in parallel under a multiprocessor system having three processors 1c, exclusive processes 13a to 13c in the programs are executed.
If exclusive control does not function properly due to a bug in the program and a failure occurs due to mutual execution timing, all programs being executed by the processors 11a to 11c are transferred to the debugger and re-executed. Restart from checkpoint 12. This program is repeatedly restarted until the failure is reproduced.
【0022】次に、図5を参照してシステムの流れを説
明する。プログラム2は、所定の間隔でチェックポイン
トを取得されながら実行されていく(図5の(1))。
ここで、何等かの原因によりプログラム2に障害が発生
すると(図5の(2))、プログラムエラー発生検出部
4により障害発生が検出され、かつ、プログラムデバッ
グモードリスタート部5によってデバッグモードに移行
され(図5の(3))、さらに、障害発生の直前に取得
したチェックポイントからリスタートされる(図5の
(4))。Next, the flow of the system will be described with reference to FIG. The program 2 is executed while obtaining checkpoints at predetermined intervals ((1) in FIG. 5).
Here, if a failure occurs in the program 2 due to any cause ((2) in FIG. 5), the occurrence of the failure is detected by the program error detection section 4 and the program debug mode restart section 5 switches to the debug mode. The process is shifted ((3) in FIG. 5), and is restarted from the checkpoint acquired immediately before the occurrence of the failure ((4) in FIG. 5).
【0023】デバッグモードに移行され、障害発生の直
前に取得したチェックポイントからリスタートされたプ
ログラム2は、実行履歴を採取されながら処理が進めら
れるが、障害が再現されずに次のチェックポイント取得
箇所に到達してしまった場合には(図5の(5))、こ
れまでに採取した実行履歴を廃棄し(図5の(6))、
再度、障害発生の直前に取得したチェックポイントから
のリスタートが実施される(図5の(7))。The program 2 is shifted to the debug mode and restarted from the checkpoint acquired immediately before the occurrence of the failure, and the process proceeds while collecting the execution history, but the failure is not reproduced and the next checkpoint is acquired. If the location has been reached ((5) in FIG. 5), the execution history collected so far is discarded ((6) in FIG. 5).
Again, restart from the checkpoint acquired immediately before the occurrence of the failure is performed ((7) in FIG. 5).
【0024】この処理は障害が再現されるまで繰り返さ
れ、障害が発生した時点で(図5の(9))実行履歴の
退避等を行って終了する。これにより、従来再現の困難
であった障害のデバッグを効率良く実施することが可能
となる。This process is repeated until the failure is reproduced, and when the failure occurs ((9) in FIG. 5), the execution history is saved and the processing is terminated. As a result, it is possible to efficiently perform debugging of a failure that has conventionally been difficult to reproduce.
【0025】[0025]
【発明の効果】詳述したように、この発明によれば、い
ずれかのプログラムで障害を発生させたときに、すべて
のプロセッサで同期してプログラムをデバッグモードに
移行させてチェックポイントからリスタートさせること
により、障害の再現を自動的に試みるとともに、プログ
ラム解析のための情報をリスタート点以降の必要最少限
度のみ採取することになるため、記憶媒体の有効利用が
図られるとともに、デバッグの効率を飛躍的に向上させ
ることが可能となる。As described above in detail, according to the present invention, when a failure occurs in any program, all the processors synchronously shift the program to the debug mode and restart from the checkpoint. This automatically attempts to reproduce the failure, and collects only the minimum necessary information for program analysis after the restart point. This allows effective use of the storage medium and improves debugging efficiency. Can be dramatically improved.
【図面の簡単な説明】[Brief description of the drawings]
【図1】本発明の実施例に係るデバッグ方式の構成を示
す図。FIG. 1 is a diagram showing a configuration of a debugging system according to an embodiment of the present invention.
【図2】同実施例に係るデバッグ方式の動作を説明する
ためのフローチャート。FIG. 2 is a flowchart for explaining the operation of the debugging method according to the embodiment;
【図3】同実施例に係るデバッグ方式の動作を説明する
ためのフローチャート。FIG. 3 is an exemplary flowchart for explaining the operation of the debugging method according to the embodiment;
【図4】同実施例に係るデバッグ方式を適用したシステ
ムの流れを示す概念図。FIG. 4 is an exemplary conceptual view showing the flow of a system to which the debugging method according to the embodiment is applied.
【図5】同実施例に係るデバッグ方式を適用したシステ
ムの流れを示す概念図。FIG. 5 is an exemplary conceptual view showing the flow of a system to which the debugging method according to the embodiment is applied.
【図6】従来のデバッグ方式を適用したシステムの流れ
を示す概念図。FIG. 6 is a conceptual diagram showing a flow of a system to which a conventional debugging method is applied.
1…プロセッサ、2…プログラム、3…チェックポイン
ト、4…プログラムエラー発生検出部、5…プログラム
デバッグモードリスタート部、6…デバッグ方式、11
a,11b,11c…プロセッサ、12…チェックポイ
ント、13a,13b,13c…排他処理、14…エラ
ー発生点。DESCRIPTION OF SYMBOLS 1 ... Processor, 2 ... Program, 3 ... Checkpoint, 4 ... Program error occurrence detection part, 5 ... Program debug mode restart part, 6 ... Debug method, 11
a, 11b, 11c: Processor, 12: Checkpoint, 13a, 13b, 13c: Exclusive processing, 14: Error occurrence point.
Claims (2)
プロセッサ上で複数のプログラムを並列に実行するコン
ピュータシステムのデバッグ方式において、 プログラムの障害発生を検出する手段と、 この手段によりプログラムの障害発生が検出された際
に、すべてのプロセッサで同期してプログラムをデバッ
グモードに移行させてチェックポイントからリスタート
させる手段とを具備してなることを特徴とするデバッグ
方式。In a computer system debugging method for executing a plurality of programs in parallel on a plurality of processors while acquiring checkpoints, means for detecting a failure of the program, and detecting occurrence of a failure in the program by the means. Means for causing all the processors to synchronously shift the program to a debug mode and restarting from a checkpoint.
プロセッサ上で複数のプログラムを並列に実行するコン
ピュータシステムのデバッグ方法において、 プログラムの障害発生を検出するステップと、 プログラムの障害発生が検出された際に、すべてのプロ
セッサで同期してプログラムをデバッグモードに移行さ
せてチェックポイントからリスタートさせるステップと
を具備してなることを特徴とするデバッグ方法。2. A method for debugging a computer system in which a plurality of programs are executed in parallel on a plurality of processors while acquiring checkpoints, the method comprising: detecting a failure of the program; And a step of synchronously shifting a program to a debug mode in all processors and restarting from a checkpoint.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10016891A JPH10198578A (en) | 1998-01-29 | 1998-01-29 | System and method for debugging |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10016891A JPH10198578A (en) | 1998-01-29 | 1998-01-29 | System and method for debugging |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP6105545A Division JP2774770B2 (en) | 1994-05-19 | 1994-05-19 | Debug method |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10198578A true JPH10198578A (en) | 1998-07-31 |
Family
ID=11928794
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP10016891A Pending JPH10198578A (en) | 1998-01-29 | 1998-01-29 | System and method for debugging |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10198578A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7478273B2 (en) | 2003-12-02 | 2009-01-13 | Nec Corporation | Computer system including active system and redundant system and state acquisition method |
JP2010539577A (en) * | 2007-09-14 | 2010-12-16 | エアバス オペレーションズ (エスアーエス) | Method for processing the amount of information handled during the debug phase of airborne operations software and device for implementing the method |
-
1998
- 1998-01-29 JP JP10016891A patent/JPH10198578A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7478273B2 (en) | 2003-12-02 | 2009-01-13 | Nec Corporation | Computer system including active system and redundant system and state acquisition method |
JP2010539577A (en) * | 2007-09-14 | 2010-12-16 | エアバス オペレーションズ (エスアーエス) | Method for processing the amount of information handled during the debug phase of airborne operations software and device for implementing the method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8726225B2 (en) | Testing of a software system using instrumentation at a logging module | |
JPH09258995A (en) | Computer system | |
Liu et al. | FCatch: Automatically detecting time-of-fault bugs in cloud systems | |
JPH0820965B2 (en) | How to continue running the program | |
JPH0950424A (en) | Dump sampling device and dump sampling method | |
JP2774770B2 (en) | Debug method | |
US7114097B2 (en) | Autonomic method to resume multi-threaded preload imaging process | |
US7421618B2 (en) | Method for processing a diagnosis of a processor, information processing system and a diagnostic processing program | |
JPH02294739A (en) | Fault detecting system | |
JPH09212385A (en) | Parallel program debugging device | |
JP2006065440A (en) | Process management system | |
JPH10198578A (en) | System and method for debugging | |
US5655072A (en) | Method and apparatus for testing a sytem component with test checkpointing | |
JP2004185345A (en) | Debug method and system | |
JPH103403A (en) | Computer system and debugging method | |
CN110727577A (en) | Debugging method, system and medium for probability recurrence problem in embedded system software | |
JPS58201152A (en) | Automatic information acquition system | |
KR101997084B1 (en) | Method for determining reproduction time of interrupt request, system, and program using the same | |
JP2012256279A (en) | Information processing device, method, and program | |
JP2998793B2 (en) | Test method for information processing equipment | |
JP2979553B2 (en) | Fault diagnosis method | |
JPH11306032A (en) | Fault occurrence state processing method and operating system | |
JP2658982B2 (en) | Specific instruction execution detection method | |
JPH02207347A (en) | Method for detecting fault of software | |
JP2004021936A (en) | Fault processing method for information processor, and information processor |