JPH10260863A - プログラム・デバッグ方法及び装置 - Google Patents

プログラム・デバッグ方法及び装置

Info

Publication number
JPH10260863A
JPH10260863A JP9061590A JP6159097A JPH10260863A JP H10260863 A JPH10260863 A JP H10260863A JP 9061590 A JP9061590 A JP 9061590A JP 6159097 A JP6159097 A JP 6159097A JP H10260863 A JPH10260863 A JP H10260863A
Authority
JP
Japan
Prior art keywords
event
state
waiting state
synchronization
program
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.)
Withdrawn
Application number
JP9061590A
Other languages
English (en)
Inventor
Eiji Saito
栄治 斉藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP9061590A priority Critical patent/JPH10260863A/ja
Publication of JPH10260863A publication Critical patent/JPH10260863A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】作成されたプログラムにデッドロックを発生さ
せてしまう間違いがあるか否かをデバッグするプログラ
ム・デバッグ方法に関し、作成されたプログラムにデッ
ドロックを発生させてしまう間違いがあるか否かを容易
にデバッグすることができるようにする。 【解決手段】イベント待ち状態に突入した同期オブジェ
クトのイベント待ち状態を解除するイベントを発行する
オブジェクトを検出し、イベント待ち状態に突入した同
期オブジェクトのイベント待ち状態を解除するイベント
を発行するオブジェクトが全てイベント待ち状態にある
か否かを判断し、全てイベント待ち状態にある場合に
は、デッドロックの発生を警告する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラムにデッ
ドロック、即ち、同期オブジェクトがイベント待ち(同
期待ち)状態になり、他のオブジェクトからイベント待
ち状態を解除するイベントの発行の可能性がなく、処理
が無限に遅滞してしまう状態を発生させてしまう間違い
があるか否かをデバッグするプログラム・デバッグ方法
及び装置に関する。
【0002】
【従来の技術】近年、コンピュータシステムのマルチシ
ステム化や分散処理化に伴って、プログラミングとして
同期オブジェクトを利用したマルチプログラミングが要
求されている。このため、プログラム作成者は、デッド
ロックを考慮して、プログラムの作成を行う必要があ
る。
【0003】
【発明が解決しようとする課題】しかし、実際にプログ
ラムを実行した場合に、プログラムの間違いによりシス
テムがデッドロック状態に陥った場合、デバッグ作業を
実行しても、デバッグ用のプログラムを実行させた場合
と通常のプログラムを実行させた場合とでは同期タイミ
ングが異なってしまうため、プログラムの間違いを容易
に発見できず、プログラムの修正を容易に行うことがで
きないといった問題点があった。
【0004】本発明は、かかる点に鑑み、プログラム作
成者により作成されたプログラムにデッドロックを発生
させてしまう間違いがあるか否かを容易にデバッグする
ことができ、プログラムの修正を容易に行うことができ
るようにしたプログラム・デバッグ方法及び装置を提供
することを目的とする。
【0005】
【発明が解決しようとする課題】本発明中、第1の発明
のプログラム・デバッグ方法(請求項1記載のプログラ
ム・デバッグ方法)は、イベント待ち状態に突入した同
期オブジェクトのイベント待ち状態を解除するイベント
を発行するオブジェクトを検出する工程と、イベント待
ち状態に突入した同期オブジェクトのイベント待ち状態
を解除するイベントを発行するオブジェクトが全てイベ
ント待ち状態にあるか否かを判断し、イベント待ち状態
に突入した同期オブジェクトのイベント待ち状態を解除
するイベントを発行するオブジェクトが全てイベント待
ち状態にある場合には、デッドロックの発生を警告する
工程とが実行されるというものである。
【0006】本発明中、第1の発明は、イベント待ち状
態に突入した同期オブジェクトのイベント待ち状態を解
除するイベントを発行するオブジェクトが全てイベント
待ち状態にある場合には、デッドロックの発生は必至で
あるとの前提に立ち、上記工程を実行するものであり、
本発明中、第1の発明によれば、プログラム作成者によ
り作成されたプログラムを実際に実行した場合に、デッ
ドロックが発生するか否かを容易にデバッグすることが
できる。
【0007】本発明中、第2の発明のプログラム・デバ
ッグ方法(請求項2記載のプログラム・デバッグ方法)
は、第1の発明において、イベント待ち状態に突入した
同期オブジェクトのイベント待ち状態を解除するイベン
トを発行するオブジェクトを検出する工程は、イベント
を発行するオブジェクトと、発行されるイベントとを関
連付けて記述した第1のテーブルを作成する工程により
作成された第1のテーブルを参照して行われるというも
のである。
【0008】本発明中、第3の発明のプログラム・デバ
ッグ方法(請求項3記載のプログラム・デバッグ方法)
は、第2の発明において、第1のテーブルを作成する工
程は、コンパイル時に行われるというものである。
【0009】本発明中、第4の発明のプログラム・デバ
ッグ方法(請求項4記載のプログラム・デバッグ方法)
は、第1の発明において、イベント待ち状態に突入した
同期オブジェクトのイベント待ち状態を解除するイベン
トを発行するオブジェクトが全てイベント待ち状態にあ
るか否かを判断する工程は、イベント待ち状態に突入し
た同期オブジェクトのイベント待ち状態を解除するイベ
ントを発行するオブジェクトの状態を記述した第2のテ
ーブルを作成する工程により作成された第2のテーブル
を参照することにより行われるというものである。
【0010】本発明中、第5の発明のプログラム・デバ
ッグ装置(請求項5記載のプログラム・デバッグ装置)
は、同期イベント検索部と、同期待ち監視部と、オブジ
ェクト状態監視部と、警告発生部とを備えているという
ものである。
【0011】同期イベント検索部は、イベントの発行ポ
イントを検索し、イベントを発行するオブジェクトと、
発行されるイベントとを関連付けて記述した第1のテー
ブルを作成するものである。
【0012】同期待ち監視部は、同期オブジェクトのイ
ベント待ち状態への突入を監視し、いずれかの同期オブ
ジェクトがイベント待ちに突入した場合には、第1のテ
ーブルを参照して、イベント待ち状態に突入した同期オ
ブジェクトのイベント待ち状態を解除するイベントを発
行するオブジェクトを検出するものである。
【0013】オブジェクト状態監視部は、オブジェクト
の状態を監視し、イベント待ち状態に突入した同期オブ
ジェクトのイベント待ち状態を解除するイベントを発行
するオブジェクトの状態を記述した第2のテーブルを作
成するものである。
【0014】警告発生部は、第2のテーブルを参照し
て、同期待ち監視部が検出したイベント待ちに突入した
同期オブジェクトが待つイベントを発行するオブジェク
トが全てイベント待ち状態にあるか否かを判断し、同期
待ち監視部が検出したイベント待ちに突入した同期オブ
ジェクトのイベント待ち状態を解除するイベントを発行
するオブジェクトが全てイベント待ち状態にある場合に
は、デッドロックの発生を予測して警告を発生するもの
である。
【0015】本発明中、第5の発明によれば、本発明
中、第1の発明を実行し、プログラム作成者により作成
されたプログラムを実際に実行した場合に、デッドロッ
クが発生するか否かを容易にデバッグすることができ
る。
【0016】
【発明の実施の形態】図1は本発明のプログラム・デバ
ッグ装置の一実施形態を示す概念図であり、図1中、1
0はデッドロック状態が発生するか否かをデバッグする
プログラムである。
【0017】また、11はプログラム10のコンパイル
時にイベントの発生ポイントを検索して、イベントを発
行するオブジェクトと、発行されるイベントとを関連付
けて記述した発行イベントテーブル12を作成する同期
イベント検索部であり、図2は発行イベントテーブル1
2の例を示している。
【0018】また、13はプログラムを実行した場合の
同期オブジェクトの状態、14は同期オブジェクトのイ
ベント待ち状態への突入を監視し、いずれかの同期オブ
ジェクトがイベント待ち状態に突入した場合、発行イベ
ントテーブル12を参照して、イベント待ち状態に突入
した同期オブジェクトのイベント待ちを解除するイベン
トを発行するオブジェクトを検出する同期待ち監視部で
ある。
【0019】また、15はオブジェクトの状態を監視
し、オブジェクトが実行中の状態にあるか、イベント待
ちの状態にあるかを示す処理状態テーブル16を作成
し、イベント待ち状態への突入あるいはイベント発行ご
とに処理状態テーブル16に記述されている状態の内容
の更新を行うオブジェクト状態監視部であり、図3は処
理状態テーブル16の例を示している。
【0020】また、17は処理状態テーブル16を参照
して、同期待ち監視部14が検出したオブジェクトが全
てイベント待ち状態にあるか否かを判断し、全てイベン
ト待ちの状態にある場合には、デッドロックの発生の警
告を発生する警告発生部である。
【0021】図4は本発明のプログラム・デバッグ装置
の一実施形態の動作(本発明のプログラム・デバッグ方
法の一実施形態)を説明するための図であり、デバッグ
対象のプログラム10にオブジェクトとして2個の同期
オブジェクト1、2のみが含まれている場合を例にして
いる。
【0022】なお、図4中、18はプログラム10を実
行した場合の同期オブジェクト1の状態、19はプログ
ラム10を実行した場合の同期オブジェクト2の状態を
示している。
【0023】この例では、同期オブジェクト1はイベン
トBを発行し、同期オブジェクト2はイベントAを発行
するものとされているから、同期イベント検索部11
は、同期オブジェクト1はイベントBを発行し、同期オ
ブジェクト2はイベントAを発行することを記述した発
行イベントテーブル12を作成することになる。
【0024】ここに、プログラム10を実行した場合に
おいて、プログラム10の流れがポイント1に達する前
においては、同期オブジェクト1、2は実行中の状態に
あるので、オブジェクト状態監視部15が作成する処理
状態テーブル16の内容は、同期オブジェクト1=「実
行中」、同期オブジェクト2=「実行中」と記述された
状態にある。
【0025】そして、同期オブジェクト2がポイント1
でイベントBの待ち状態に突入すると、同期待ち監視部
14は、発行イベントテーブル12を参照して、同期オ
ブジェクトのイベント待ちを解除するイベントBを発行
するオブジェクトを算出することになるが、この例の場
合には、同期オブジェクト2のイベント待ちを解除する
イベントBを発行するオブジェクトとして同期オブジェ
クト1を検出することになる。
【0026】また、オブジェクト状態監視部15は、同
期オブジェクト2がイベントBの待ち状態に突入した場
合には、処理状態テーブル16の内容を、同期オブジェ
クト1=「実行中」、同期オブジェクト2=「待ち」と
更新することになる。
【0027】ここに、警告発生部17は、同期待ち監視
部14が検出した同期オブジェクト1は、処理状態テー
ブル16に「実行中」と記述されていることから、同期
オブジェクト2のイベント待ち状態は解除される可能性
があるので、この段階では警告を発生することはない。
【0028】その後、この例の場合には、プログラム1
0の流れがポイント2に達すると、同期オブジェクト1
はイベントAの待ち状態に突入することになるが、この
場合には、同期待ち監視部14は、発行イベントテーブ
ル12を参照して、同期オブジェクト1のイベント待ち
状態を解除するイベントAを発行するオブジェクトを検
出することになるが、この例の場合には、同期オブジェ
クト1のイベント待ち状態を解除するイベントAを発行
するオブジェクトとして同期オブジェクト2を検出する
ことになる。
【0029】また、オブジェクト状態監視部15は、同
期オブジェクト1がイベントAの待ち状態に突入した場
合には、処理状態テーブル16の内容を、同期オブジェ
クト1=「待ち」、同期オブジェクト2=「待ち」に更
新することになる。
【0030】ここに、警告発生部17は、同期待ち監視
部14が検出した同期オブジェクト2は、処理状態テー
ブル16に「待ち」と記述されていることから、同期オ
ブジェクト1のイベント待ち状態が解除される可能性は
ないので、この段階において、デッドロック発生の警告
を発生することになる。
【0031】このように、本発明のプログラム・デバッ
グ装置の一実施形態によれば、同期イベント検索部11
と、同期待ち監視部14と、オブジェクト状態監視部1
5と、警告発生部17とを備えているので、プログラム
作成者により作成されたプログラム10を実際に実行し
た場合に、デッドロックが発生するか否かを容易にデバ
ッグし、プログラム10の修正を容易に行うことができ
る。
【0032】
【発明の効果】以上のように、本発明によれば、プログ
ラム作成者により作成されたプログラムを実際に実行し
た場合に、デッドロックが発生するか否かを容易にデバ
ッグし、プログラムの修正を容易に行うことができる。
【図面の簡単な説明】
【図1】本発明のプログラム・デバッグ装置の一実施形
態を示す概念図である。
【図2】本発明のプログラム・デバッグ装置の一実施形
態が備える同期イベント検索部が作成する発行イベント
テーブルの例を示す図である。
【図3】本発明のプログラム・デバッグ装置の一実施形
態が備えるオブジェクト状態監視部が作成する処理状態
テーブルの例を示す図である。
【図4】本発明のプログラム・デバッグ装置の一実施形
態の動作を示す図である。
【符号の説明】
10 デバッグ対象のプログラム 11 同期イベント検索部 12 発行イベントテーブル 13 オブジェクトの状態 14 同期待ち監視部 15 オブジェクト状態監視部 16 処理状態テーブル 17 警告発生部 18 同期オブジェクトの状態 19 同期オブジェクトの状態

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】イベント待ち状態に突入した同期オブジェ
    クトのイベント待ち状態を解除するイベントを発行する
    オブジェクトを検出する工程と、 前記イベント待ち状態に突入した同期オブジェクトのイ
    ベント待ち状態を解除するイベントを発行するオブジェ
    クトが全てイベント待ち状態にあるか否かを判断し、前
    記イベント待ち状態に突入した同期オブジェクトのイベ
    ント待ち状態を解除するイベントを発行するオブジェク
    トが全てイベント待ち状態にある場合には、デッドロッ
    クの発生を警告する工程とが実行されることを特徴とす
    るプログラム・デバッグ方法。
  2. 【請求項2】前記イベント待ち状態に突入した同期オブ
    ジェクトのイベント待ち状態を解除するイベントを発行
    するオブジェクトを検出する工程は、 イベントを発行するオブジェクトと、発行されるイベン
    トとを関連付けて記述した第1のテーブルを作成する工
    程により作成された前記第1のテーブルを参照して行わ
    れることを特徴とする請求項1記載のプログラム・デバ
    ッグ方法。
  3. 【請求項3】前記第1のテーブルを作成する工程は、コ
    ンパイル時に行われることを特徴とする請求項2記載の
    プログラム・デバッグ方法。
  4. 【請求項4】前記イベント待ち状態に突入した同期オブ
    ジェクトのイベント待ち状態を解除するイベントを発行
    するオブジェクトが全てイベント待ち状態にあるか否か
    を判断する工程は、 前記イベント待ち状態に突入した同期オブジェクトのイ
    ベント待ち状態を解除するイベントを発行するオブジェ
    クトの状態を記述した第2のテーブルを作成する工程に
    より作成された前記第2のテーブルを参照することによ
    り行われることを特徴とする請求項1記載のプログラム
    ・デバッグ方法。
  5. 【請求項5】イベントの発行ポイントを検索し、イベン
    トを発行するオブジェクトと、発行されるイベントとを
    関連付けて記述した第1のテーブルを作成する同期イベ
    ント検索部と、 同期オブジェクトのイベント待ち状態への突入を監視
    し、いずれかの同期オブジェクトがイベント待ちに突入
    した場合には、前記第1のテーブルを参照して、前記イ
    ベント待ち状態に突入した同期オブジェクトのイベント
    待ち状態を解除するイベントを発行するオブジェクトを
    検出する同期待ち監視部と、 オブジェクトの状態を監視し、前記イベント待ち状態に
    突入した同期オブジェクトのイベント待ち状態を解除す
    るイベントを発行するオブジェクトの状態を記述した第
    2のテーブルを作成するオブジェクト状態監視部と、 前記第2のテーブルを参照して、前記同期待ち監視部が
    検出した前記イベント待ちに突入した同期オブジェクト
    のイベント待ち状態を解除するイベントを発行するオブ
    ジェクトが全てイベント待ち状態にあるか否かを判断
    し、前記同期待ち監視部が検出した前記イベント待ちに
    突入した同期オブジェクトのイベント待ち状態を解除す
    るイベントを発行するオブジェクトが全てイベント待ち
    状態にある場合には、デッドロック発生の警告を発生す
    る警告発生部とを備えていることを特徴とするプログラ
    ム・デバッグ装置。
JP9061590A 1997-03-17 1997-03-17 プログラム・デバッグ方法及び装置 Withdrawn JPH10260863A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9061590A JPH10260863A (ja) 1997-03-17 1997-03-17 プログラム・デバッグ方法及び装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9061590A JPH10260863A (ja) 1997-03-17 1997-03-17 プログラム・デバッグ方法及び装置

Publications (1)

Publication Number Publication Date
JPH10260863A true JPH10260863A (ja) 1998-09-29

Family

ID=13175528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9061590A Withdrawn JPH10260863A (ja) 1997-03-17 1997-03-17 プログラム・デバッグ方法及び装置

Country Status (1)

Country Link
JP (1) JPH10260863A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694446B1 (en) * 1998-02-12 2004-02-17 Inside Technologies System for synchronizing a microprocessor with an asynchronous event by detecting an awaited event occurs and immediately applying load signal to a counter thereafter

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6694446B1 (en) * 1998-02-12 2004-02-17 Inside Technologies System for synchronizing a microprocessor with an asynchronous event by detecting an awaited event occurs and immediately applying load signal to a counter thereafter

Similar Documents

Publication Publication Date Title
US20090164976A1 (en) Multi-threaded debugger support
KR20070091047A (ko) 디버그 지원 장치 및 디버그 처리 방법을 컴퓨터에 실행시키기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
JP2004199330A (ja) 情報処理装置、トレース処理方法、プログラム及び記録媒体
CN113127248B (zh) 面向机器人ros程序的自动崩溃恢复方法和系统
JP5212357B2 (ja) マルチcpu異常検出復旧システム、方法及びプログラム
JPH10260863A (ja) プログラム・デバッグ方法及び装置
JPH02294739A (ja) 障害検出方式
CN115237728A (zh) 一种实时操作系统运行状态的可视化监视方法
JP2009098907A (ja) デバッグ装置及びデバッグ方法
JPH025136A (ja) 言語処理プログラムのエラー処理方式
JPH1145193A (ja) ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体
JPS6272038A (ja) プログラム暴走検出装置の試験方法
JPS6155748A (ja) 電子計算機システム
JPH0149975B2 (ja)
JPH0231240A (ja) コプロセッサ故障時の処理方式
JPH05143388A (ja) 並列処理プログラムのサスペンド方式
JPS62113238A (ja) 電子計算機システムにおけるプログラム修正装置
JPS60171544A (ja) 計算機システム異常自己診断装置
JPS632922Y2 (ja)
JPH06168144A (ja) リアルタイムタスクのデッドライン検出・処理方法
JPH0642207B2 (ja) マルチレベルプログラミング方式
JPH0764819A (ja) デバッグ装置
JPH11242661A (ja) ファイル共有システムの排他制御装置及び構成制御方法
Cabral et al. Cooperative Exceptions for Concurrent Objects
JPH0750445B2 (ja) プログラムのデバツグ方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20040601