JPH1145193A - ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体 - Google Patents

ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体

Info

Publication number
JPH1145193A
JPH1145193A JP9201543A JP20154397A JPH1145193A JP H1145193 A JPH1145193 A JP H1145193A JP 9201543 A JP9201543 A JP 9201543A JP 20154397 A JP20154397 A JP 20154397A JP H1145193 A JPH1145193 A JP H1145193A
Authority
JP
Japan
Prior art keywords
task
state
software
execution
break
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP9201543A
Other languages
English (en)
Inventor
Ikuya Odawara
育也 小田原
Katsuhiko Ueki
克彦 植木
Shingo Igarashi
真悟 五十嵐
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP9201543A priority Critical patent/JPH1145193A/ja
Publication of JPH1145193A publication Critical patent/JPH1145193A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】ユーザアプリケーションの実行中断(ブレー
ク)ポイントの設定および誤動作ポイントの検出が容易
に行え、デバッグ作業の負担が軽減できるソフトウエア
開発支援装置を提供する。 【解決手段】システムで実行されるソフトウエアのタス
クの状態遷移に基づく前記タスクの禁止動作の条件を入
力する入力手段と、この入力手段で入力された条件に基
づき前記ソフトウエアのタスクの状態遷移に基づく前記
タスクの禁止動作のパターンを生成する生成手段と、前
記ソフトウエアの実行の際に前記ソフトウエア実行に基
づき発生するイベントに従って遷移させたタスクの状態
と前記生成されたパターンとに基づいて、前記ソフトウ
エアのタスクの禁止動作を検出する検出手段と、この検
出手段で禁止動作が検出されたとき、前記ソフトウエア
の実行の中断を指示する指示手段とを具備する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、OSの下で実行さ
れるユーザアプリケーションのデバッグに用いるソフト
ウエア開発支援装置に関する。
【0002】
【従来の技術】OS(オペレーティングシステム)の下
で実行するユーザアプリケーションのデバッグ作業で
は、OSの管理する複数のイベントの発生パターンを考
慮したデバッグ作業を行う必要がある。さらに、マルチ
タスクOSに至っては、各タスク状態遷移も考慮したデ
バッグ作業を行わなければならない。ここでいうデバッ
グ作業とは、プログラムのコンパイル時のエラーを修正
することではなく、コンパイルエラーは発生しないが実
行時の動作が異常である場合の不具合の修正作業につい
てである。通常は、ユーザがブレークポイントを定め、
ユーザアプリケーションの実行を中断し、その時点での
OS内部状態などを参照し、プログラムを修正するとい
う作業を繰り返す。
【0003】すなわち、従来、OSの下で実行するユー
ザアプリケーションのデバッグ作業では、ユーザが、不
具合の解決に有効であると判断した実行命令に、ブレー
クポイントを予め設定しておき、デバッガがその実行命
令の格納されている実行アドレスにブレーク命令を設定
した上で、ユーザアプリケーションの実行を行う。そし
て、ブレーク命令によるユーザアプリケーションの実行
中断時に、そのときのメモリや使用変数等、OS内部状
態を参照し、ユーザアプリケーションの具体的な誤動作
の原因の検証を行っている。つまり、どのようなイベン
トがどのような順序で発生したことが不具合の原因であ
るかといったことを、ユーザ自身が分析するようになっ
ていた。
【0004】
【発明が解決しようとする課題】しかしながら、上記の
ような従来のデバッガでは、ユーザーが予め誤動作の原
因と考えられる特定の実行命令を推測した上で、ブレー
クポイントを設定し、ユーザアプリケーションの実行中
断時に、ユーザ自身が具体的な誤動作の原因を検証しな
ければならないという欠点がある。すなわち、ユーザ自
身による誤動作原因の推測と検証という試行錯誤的な作
業が必要となるため、デバッグ作業が円滑に行われず、
ユーザアプリケーション全体としての生産性が低下して
しまう恐れがある。
【0005】そこで、本発明は、上記問題点に鑑みてな
されたもので、ユーザアプリケーションの実行中断(ブ
レーク)ポイントの設定および誤動作ポイントの検出、
さらに誤動作検出時のOS内部状態の参照が容易に行
え、デバッグ作業の負担が軽減できるソフトウエア開発
支援方法およびそれを用いたソフトウエア開発支援装置
を提供することを目的とする。
【0006】
【課題を解決するための手段】本発明のソフトウエア開
発支援方法は、システムで実行されるソフトウエアのタ
スクの状態遷移に基づく前記タスクの禁止動作のパター
ンを生成し、前記ソフトウエアの実行の際に前記ソフト
ウエア実行に基づき発生するイベントに従って遷移させ
たタスクの状態と前記生成されたパターンとに基づい
て、前記ソフトウエアのタスクの禁止動作を検出したと
き、前記ソフトウエアの実行の中断を指示することによ
り、システム上で実行されるソフトウエアの実行中断
(ブレーク)ポイントの設定および誤動作ポイントの検
出が容易に行え、デバッグ作業の負担が軽減できる。
【0007】また、本発明のソフトウエア開発支援装置
は、システムで実行されるソフトウエアのタスクの状態
遷移に基づく前記タスクの禁止動作の条件を入力する入
力手段と、この入力手段で入力された条件に基づき前記
ソフトウエアのタスクの状態遷移に基づく前記タスクの
禁止動作のパターンを生成する生成手段と、前記ソフト
ウエアの実行の際に前記ソフトウエア実行に基づき発生
するイベントに従って遷移させたタスクの状態と前記生
成されたパターンとに基づいて、前記ソフトウエアのタ
スクの禁止動作を検出する検出手段と、この検出手段で
禁止動作が検出されたとき、前記ソフトウエアの実行の
中断を指示する指示手段と、を具備したことにより、シ
ステム上で実行されるソフトウエアの実行中断(ブレー
ク)ポイントの設定および誤動作ポイントの検出が容易
に行え、デバッグ作業の負担が軽減できる。
【0008】
【発明の実施の形態】以下に、本発明の実施形態につい
て図面を参照して説明する。図1は、本実施形態に係る
ソフトウエア開発支援装置の構成例と、そのソフトウエ
ア開発支援装置を用いて、OS(マルチタスクOS)上
で実行されるユーザアプリケーションのデバッグを行う
場合の全体の構成を概略的に示したものである。以下、
図1のマルチタスクOS2、ユーザアプリケーション
1、ソフトウエア開発支援装置3のそれぞれについて説
明する。 (a)マルチタスクOS 図1に示したように、マルチタスクOS2のソフトウエ
ア開発支援装置3の動作に関わる主な構成部は、タスク
実行スケジューリング部4、OS内部イベント発生部
5、タスク実行制御部6の3つの処理部と、内部記憶で
あるOS内部状態記憶部7から構成される。なお、図1
のマルチタスクOSの構成は、本実施例を説明する上で
必要な部分以外は削除し、簡略化したものである。
【0009】(a−1)タスク実行スケジューリング部 タスク実行スケジューリング部4は、ユーザアプリケー
ション1からのシステムコールや外部機器などからの割
込みなどのイベントを受けて、タスク実行優先度を考慮
したタスク実行スケジューリングを行う。スケジューリ
ングの結果、次に実行すべきタスクをタスク実行制御部
6に伝える。このスケジューリングの過程で発生するタ
スクの状態遷移やセマフォの状態変更などのOS内部状
態の変化は、OS内部状態記憶部7に逐次記憶される。
図2にOS内部状態の記憶例を示す。OS内部状態は、
マルチタスクOS2が、システムコールやタスク実行ス
ケジューリングなどのサービスを提供するために用いる
情報であり、ユーザアプリケーション1で定義された全
てのオブジェクトに関する情報がオブジェクトごとに格
納されている。図2では、タスクA、タスクB、タスク
C、セマフォPの4つのオブジェクトの状態を格納した
場合の例を示してある。これら各情報の詳細について
は、後述する。
【0010】また、タスク実行スケジューリング部4
は、システムコール発行イベント、タスク状態遷移イベ
ント、セマフォ状態変更イベントの他、外部機器からの
割込みなど、タスク実行スケジューリングに影響を及ぼ
す全てのイベントをOS内部イベントとしてOS内部イ
ベント発生部5に対して発行する。システムコール発行
イベントは、ユーザアプリケーション1からシステムコ
ールが発行された時に発生するイベントである。タスク
状態遷移イベントは、タスク実行スケジューリングの結
果、タスクの状態が変化した場合に発生するイベントで
ある。セマフォ状態変更イベントは、セマフォの状態が
変更された場合に発生するイベントである。
【0011】(a−2)タスク実行制御部 タスク実行制御部6は、タスク実行スケジューリング部
4、ソフトウエア開発支援装置3などマルチタスクOS
2外部からの要求によって、指定タスクに対して実行開
始、実行中断、実行停止などの実行制御を行う。
【0012】(a−3)OS内部イベント発生部 OS内部イベント発生部5は、タスク実行スケジューリ
ング部4から発行されたOS内部イベントを、ソフトウ
エア開発支援装置3などのマルチタスクOS2外部のア
プリケーションから読み出すためのインタフェースを提
供する。
【0013】マルチタスクOS2がユーザアプリケーシ
ョン1に対して提供するオブジェクトには、タスクや割
込みハンドラ、セマフォ、メールボックスなどがある。
このうち、本実施形態で用いるタスクとセマフォの2種
類のオブジェクトについて、その仕組やOS内部状態の
詳細について説明する。
【0014】タスクは、プログラムの実行単位であり、
マルチタスクOS2は、タスク実行スケジューリングに
より、タスクを切り替えながら、ユーザアプリケーショ
ン1を実行する。
【0015】セマフォは、同時に複数のタスクからのア
クセスが制限されるような共有資源へのアクセス権をタ
スクが獲得するための排他制御機能を提供する。OS内
部状態は、ユーザアプリケーション1の実行中に、マル
チタスクOS2によって随時更新され、タスク制御ブロ
ックやセマフォ制御テーブルといったユーザアプリケー
ションで定義された全てのオブジェクトの状態を保持し
ている。
【0016】タスク制御ブロックは、図3に示すよう
に、タスクID、タスク状態、タスク優先度などの属性
を持っている。タスクIDは、タスクを識別するための
識別子である。タスク状態は、タスクの現在の状態を示
す。タスク状態には、実行状態(RUN)、実行可能状
態(READY)、待ち状態(WAIT)などの種類が
ある。タスク優先度は、タスクの実行優先度を示してい
る。例えば、マルチタスクOS2が提供するタスク実行
スケジューリング機能において、2つ以上のタスクが同
時に実行可能状態となった場合、マルチタスクOS2
は、同時に実行可能となったタスクのタスク優先度を参
照し、優先度が最も高いタスクを実行状態とする。
【0017】セマフォ制御テーブルは、図4に示すよう
に、セマフォID、セマフォカウンタ値などの属性を持
っている。セマフォIDは、セマフォを識別するための
識別子である。セマフォカウンタ値は、現在のセマフォ
カウンタの値を示している。本実施形態では、セマフォ
の仕組を簡略化し、セマフォカウンタ値は、「0」と
「1」の2つの値のみをとるものとする。この場合、セ
マフォカウンタ値が「1」のときは、セマフォを獲得す
ることにより、どのタスクも共有資源へのアクセスが可
能であり、何れかのタスクがセマフォを取得するとセマ
フォカウンタ値が「0」となる。セマフォカウンタ値が
「0」のときは、どのタスクもセマフォを獲得できず、
現在セマフォを取得しているタスクがセマフォを開放す
るまでは、セマフォを要求したタスクはセマフォ待ちの
状態になる。そして、セマフォを獲得しているタスクが
セマフォを開放すると、セマフォ待ちのタスクがセマフ
ォを獲得し、共有資源へのアクセスが可能となる。 (b)ユーザアプリケーション ユーザアプリケーション1は、ユーザが作成したマルチ
タスク・アプリケーションである。図5は本実施形態に
おいてデバッグの対象とするユーザアプリケーションの
構成を概念的に示したものである。図6は図5のユーザ
アプリケーション実行中の単位時間ごとの各オブジェク
トの状態変化、及び発生したOS内部イベントを示した
タイミングチャートである。
【0018】図5に示すように、ユーザアプリケーショ
ン1は、タスクA、タスクB、タスクC、タスクDの4
つのタスクと、セマフォPの合わせて5つのオブジェク
トによって構成される。共有資源は、同時に2つのタス
クからアクセスできないものとし、セマフォPはこのた
めの排他制御に用いる。
【0019】なお、ここで、タスクとは、ある機能を実
現するための一単位のプログラム、あるいはモジュール
である。各タスクのタスクID、タスク優先度、タスク
状態の初期値は、図5中に示した通りである。タスク優
先度は「1」以上の整数値で、「1」が最高の実行優先
度を示すものとする。例えば、タスクAのタスクIDは
「#1」であり、タスク優先度は「1」で最高の実行優
先度であり、タスク状態は、RUN状態であることを示
している。他のタスクについても同様に示してある。
【0020】セマフォPのセマフォID、セマフォカウ
ンタ値の初期値は、図5に示した通りである。セマフォ
IDは「#99」であり、セマフォカウンタ値の初期値
は「0」である。
【0021】図6に示したタイミングチャートは、縦軸
にユーザアプリケーションで定義したオブジェクトを、
横軸に時刻000m秒〜時刻900m秒を100m秒刻
みでとり、100m秒単位で各時刻における各タスクの
タスク状態や各タスクから発行されたシステムコールの
種類、およびセマフォの状態を示している。タスク状態
は、実線がRUN状態、波線がWAIT状態、破線がR
EADY状態でそれぞれ示してある。また、システムコ
ールの発行は、発行システムコールの種類とともに、発
行元タスクの発行時刻への矢印で示している。例えば、
時刻000m秒における各タスクのタスク状態は、タス
クAがRUN状態、タスクBがWAIT状態、タスクC
がWAIT状態、タスクDがREADY状態であり、セ
マフォPのセマフォカウンタ値は「0」で、この状態か
ら時刻100m秒にタクスAがシステムコールsig
sem(#99)を発行したことにより、タスクBの状
態がWAIT状態からREADY状態に遷移したことを
読み取ることができる。この様にして、タスクA、タス
クB、タスクC、タスクDの4つのタスクは、マルチタ
スクOS2が提供するシステムコールを用いて、実行タ
スクの切り替えや、セマフォを用いた共有資源へのアク
セス行う。
【0022】次に、図6のタイミングチャートに基づ
く、ユーザアプリケーション1の振舞いについて説明す
る。 時刻000m秒:初期状態であり、タスクAがセマフォ
P取得中でRUN状態、タスクBがセマフォP取得待ち
でWAIT状態、タスクCがWAIT状態、タスクDが
READY状態である。セマフォPのセマフォカウンタ
値は、タスクAがセマフォPを取得中であるため、
「0」である。
【0023】時刻100m秒:タスクAがシステムコー
ルsig_sem(#99)を発行し、セマフォPが開
放され、セマフォP待ち状態であったタスクBがREA
DY状態となる。しかし、タスクAの方が実行優先度が
高いため、タスクの切り替えは発生しない。
【0024】時刻200m秒:タスクAがシステムコー
ルwup tsk(#3)を発行し、タスクCを起床
し、タスクCはREADY状態となる。 時刻300m秒:タスクAがシステムコールslp
sk()を発行し、タスクAがWAIT状態となり、タ
スクA以外のタスクでREADY状態であるタスクのう
ち、実行優先度が最も高いタスク、すなわちタスクBが
RUN状態となる。
【0025】時刻400m秒:タスクBがシステムコー
ルsig sem(#99)を発行し、セマフォPが開
放され、セマフォPのセマフォカウンタ値が「1」とな
る。 時刻500m秒:タスクBがシステムコールslp
sk()を発行し、タスクBがWAIT状態となり、タ
スクB以外のタスクでREADY状態であるタスクのう
ち、実行優先度が最も高いタスク、すなわちタスクCが
RUN状態となる。
【0026】時刻600m秒:タスクCがシステムコー
ルwai sem(#99)を発行し、セマフォPを取
得しようとするが、セマフォPのセマフォカウンタ値が
「1」であるため、タスクCはセマフォ待ちとはなら
ず、タスクCがセマフォPを取得する。この結果、セマ
フォPのセマフォカウンタ値は「0」となる。
【0027】時刻700m秒:タスクCがシステムコー
ルslp tsk()を発行し、タスクCがWAIT状
態となり、タスクA以外のタスクでREADY状態であ
るタスクのうち、実行優先度が最も高いタスク、すなわ
ちタスクDがRUN状態となる。
【0028】時刻800m秒:タスクDがシステムコー
ルwup tsk(#1)を発行し、タスクAが実行可
能となるが、タスクAはタスクDよりも実行優先度が高
いため、タスクDがREADY状態となり、タスクAが
RUN状態となる。
【0029】時刻900m秒:ユーザアプリケーション
の実行終了である。結果として、各オブジェクトの状態
は、タスクAがRUN状態、タスクBがWAIT状態、
タスクCがセマフォPを取得中でWAIT状態、タスク
DがREADY状態となる。セマフォPのセマフォカウ
ンタ値は「0」であり、タスクCがセマフォPを取得中
である。
【0030】次に、以上説明したようなユーザアプリケ
ーション1を、図1に示した構成のソフトウエア開発支
援装置3を用いて具体的にデバッグを行う場合の動作手
順を説明する。なお、本実施形態では、ソフトウエア開
発支援装置3に次の2つのブレークパターンを設定す
る。
【0031】・ 第1のブレークパターン(第1の制約
条件):タスクBとタスクCは、同時に実行可能となら
ない。 ・ 第2のブレークパターン(第2の制約条件):タス
クCは、セマフォPをアクセスしない。
【0032】ソフトウエア開発支援装置3は、ユーザア
プリケーション1の実行中に、これらのブレークパター
ンのうち、どちらか1つが不成立となった場合に、ユー
ザアプリケーション1の実行を中断するように振舞う。 (c)ソフトウエア開発支援装置 図1に示すように、ソフトウエア開発支援装置3は、ブ
レークパターン入力部8、ブレークパターン生成部1
2、OS制御部17、ブレーク情報出力部20、OS内
部状態読取部13、イベント読取部14、トレース情報
出力部18の7つの処理部と、ブレークパターンライブ
ラリ記憶部10、ブレークパターン情報記憶部11、ア
プリケーション情報記憶部9、イベント履歴情報記憶部
19、の4つの外部記憶と、内部記憶であるOS状態テ
ーブル記憶部19から構成される。
【0033】ソフトウエア開発支援装置3は、ユーザが
あらかじめソフトウエア開発支援装置3に設定した制約
条件(ユーザアプリケーションの禁止動作の条件)が、
ユーザアプリケーション1実行中に不成立となった場
合、すなわち、ブレーク状態を検出した場合(ユーザア
プリケーションの禁止動作を検出した場合)に、マルチ
タスクOS2を制御し、ユーザアプリケーション1の実
行を一時中断するように構成されている。
【0034】次に、ソフトウエア開発支援装置3の各部
の処理動作を図7に示す全体の処理の流れに沿って説明
する。 (c−1)ブレークパターン入力部 ブレークパターン入力部8は、記憶部9に記憶されてい
るアプリケーション情報を参照し、ユーザに、記憶部1
0に記憶されているブレークパターンライブラリ、記憶
部11に記憶されているブレークパターン情報の作成・
追加・修正・削除などの編集機能やそのためのユーザイ
ンタフェースを提供する。
【0035】記憶部10に記憶されているブレークパタ
ーンライブラリは、システムコール発行、タスク状態遷
移、セマフォ状態変更などのOS内部イベントの発生と
その発生時刻におけるOS内部状態などを入力イベント
とした状態遷移図で表されるブレークパターンの雛形の
セットである。例えば、図8や図9の形式でブレークパ
ターンの雛形が定義されている。
【0036】例えば、制約条件が「特定の2つのタスク
が同時に実行可能とならない」であるときのブレークパ
ターンの雛形は、図8のように表すことができる。図8
において「同時に実行可能とならない(タスク、タス
ク)」が制約条件の表記方法であり、これに対応するブ
レークパターンの定義がその下に示した状態遷移図であ
る。状態遷移図では、S0 は初期状態、SE は終了状
態、その他のSn はS0 からSE への遷移の途中過程の
状態である。図8のイベントとして示した表記の1つで
ある「タスク状態遷移:(%1)→実行可能」の表記
は、タスク状態遷移イベントが発生し、その内容は、第
1引数のタスク%1が実行可能となったことによるイベ
ントであることを表している。
【0037】同様に、制約条件が「特定のタスクが特定
のセマフォをアクセスしない」であるときのブレークパ
ターンの雛形は、図9のように表すことができる。図9
において、イベント表記「システムコール発行:sig
sem(%1、%2)」は、システムコール発行イベ
ントが発生し、その内容が、sig sem(%1、%
2)であることによるイベントであることを表してい
る。ここで、%1はタスクID、%2はセマフォIDを
表している。
【0038】記憶部11に記憶されているブレークパタ
ーン情報は、図10に示すように、図8や図9の制約条
件の表記の引数部分に、具体的なタスクID、セマフォ
IDなどのオブジェクトIDを設定するためのものであ
る。
【0039】例えは、図10の「同時に実行可能となら
ない(#2、#3)」という表記は、タスクBとタスク
Cが同時に実行可能とならないという第1の制約条件を
表しており、「アクセスしない(#3、#99)」とい
う表記は、タスクCがセマフォPをアクセスしないとい
う第2の制約条件を表している。
【0040】ブレークパターン入力部8のユーザインタ
フェースは、図8や図9の状態遷移図を含むブレークパ
ターンライブラリ、及び図10のブレークパターン情報
に関する、作成・追加・修正・削除などの編集機能を実
装している。
【0041】また、ブレークパターン入力部8は、ユー
ザが設定するブレークパターンの記入誤りチェックのた
めに、記憶部9に記憶されたアプリケーション情報を利
用する。
【0042】アプリケーション情報は、デバッグ対象と
するユーザアプリケーション1全体に依存した情報であ
り、マルチタスクOS2に依存した情報と、ユーザアプ
リケーション1に依存した情報を含む。マルチタスクO
S2に依存した情報は、図11に示すような、マルチタ
スクOS2が提供するシステムコールの種類、オブジェ
クトの種類、タスク制御ブロックの属性、セマフォ制御
ブロックの属性などの情報である。ユーザアプリケーシ
ョン1に依存した情報は、図12及び図13に示すよう
な、ユーザがユーザアプリケーション内で定義した全て
のオブジェクト(タスク、セマフォ)のオブジェクトI
Dとオブジェクト名の情報である。
【0043】なお、本実施形態では触れないが、アプリ
ケーション情報は、ユーザアプリケーション1のコンパ
イル時に生成されるデバッグ情報や、これらの情報を提
供できるようなインタフェースを持ったマルチタスクO
S2から収集・作成してもよい。
【0044】(c−2)ブレークパターン生成部 ブレークパターン生成部12は、記憶部10、記憶部1
1にそれぞれ記憶されているブレークパターンライブラ
リとブレークパターン情報から、ブレーク状態検出部1
5に渡すためのブレークパターンを生成する。具体的な
イメージとしては、図8、図9に示した一般的なブレー
クパターンの雛形から、図10のブレークパターン情報
を用いて、ブレーク状態検出部15がデバッグのために
直接参照できる図14、図15に示したような具体的な
ブレークパターンを得ることである。
【0045】ユーザアプリケーション1を実際に実行す
る前に、まず、上述したように、ブレークパターン入力
部8を介して所望の制約条件に基づき、ユーザは、ブレ
ークパターンの雛形、ブレークパターン情報の入力(作
成・追加・修正・削除などの編集も含む)を行う(ステ
ップS1)。そして、ブレークパターン生成部12で
は、入力された一般的なブレークパターンの雛形から、
ブレークパターン情報を用いて、ブレーク状態検出部1
5がデバッグのために直接参照できるようなブレークパ
ターンを生成する(ステップS2)。
【0046】さて、ユーザが、ソフトウエア開発支援装
置3からユーザアプリケーション1を実行状態にする際
には、まず、ユーザアプリケーション1の実行開始直後
またはユーザがあらかじめ設定したデバッグ開始ポイン
トでブレークするように従来技術によるブレークポイン
トを設定してから、ユーザアプリケーション1を実行状
態にする。この結果、ユーザアプリケーション1は実行
開始直後またはあらかじめ設定したデバッグ開始ポイン
トで実行を中断する。
【0047】(c−3) OS内部状態読取部 OS内部状態読取部13は、ユーザアプリケーション1
のブレーク状態が検出されると(ユーザアプリケーショ
ンが実行される前に)、マルチタスクOS2からOS内
部状態を読み出し、ソフトウエア開発支援装置3内の内
部記憶であるOS状態テーブル16の初期値として書き
込む(ステップS11)。OS状態テーブル16は、図
2のOS内部状態と同じ構造である。OS状態テーブル
16への書き込みが完了すると、OS制御部17を介し
てユーザアプリケーション1の実行を再開する(ステッ
プS12)。
【0048】図5に示したユーザアプリケーション1で
は、オブジェクトの初期状態、すなわちタスクA、タス
クB、タスクC、タスクD及びセマフォPの初期状態が
読み込まれることになる。
【0049】OS内部状態読取部13は、ソフトウエア
開発支援装置3内部のOS状態テーブル16へのOS内
部状態の書き込みが完了すると、OS制御部17を介し
て、ユーザアプリケーション1の実行を開始する。
【0050】(c−4)OS制御部 OS制御部17は、OS内部状態読取部13やブレーク
状態検出部15からの要求により、マルチタスクOS2
のタスク実行制御部6を介して、ユーザアプリケーショ
ン1の全て、または一部のタスクについて、実行開始・
一時停止などの実行制御を行う。
【0051】(c−5)イベント読取部 イベント読取部14は、OS制御部17によって、ユー
ザアプリケーション1の実行が再開されると、マルチタ
スクOS2内のOS内部イベント発生部5から、OS内
部イベントの取得を開始し、取得したOS内部イベント
をブレーク状態検出部15に転送するほか、イベント履
歴情報として記憶部19に格納する(ステップS1
3)。
【0052】図16は、図5のユーザアプリケーション
1を実行した場合に発生するOS内部イベントから生成
したイベント履歴情報の一例を示したものである。図1
6において、1つのOS内部イベントの履歴は、時刻、
イベント種別、イベント引数の3つのフィールドから構
成される。時刻フィールドは、当該イベントが発生した
時刻であり、イベント読取部14によって付加されたフ
ィールドである。イベント種別フィールドは、イベント
IDで表されており、各イベントIDの意味と、そのイ
ベントが持つイベント引数の内容は、図17に示すよう
なテーブルを参照することにより解釈できる。例えば、
イベントIDが「1」のOS内部イベントは、システム
コール発行イベントを意味しており、イベント引数とし
て、発行元タスクID、システムコール名、システムコ
ールの引数を持つ。なお、図17では、本実施形態のユ
ーザアプリケーションの実行に関わらないOS内部イベ
ントについては省略してある。図16のイベント引数フ
ィールドには、図17で示したイベント引数と対応した
内容で表記されている。例えば、図16において、時刻
「100」におけるシステムコール発行イベントのイベ
ント内容は、発行元タスクIDが「#1」であり、シス
テムコール名がsig semであり、システムコール
引数が「#99」である。ここで、システムコール発行
イベントの場合の引数の意味については、さらに図18
に示すようなテーブルを参照することにより解釈でき
る。例えば、システムコールsig semでは、引数
の数が「1」であり、その意味はセマフォIDであるこ
とが分かる。すなわち、前述の「#99」はセマフォI
Dである。
【0053】この他、イベント読取部14は、ブレーク
状態検出部15へのOS内部イベントの転送元を、格納
済みのイベント履歴情報記憶部19に切り替えて転送す
ることが可能であり、また、トレース情報出力部18を
介して、マルチタスクOS2内のOS内部イベント発生
部5から取得したOS内部イベントを逐次ユーザにトレ
ース情報として提供することができる。
【0054】(c−6)トレース情報出力部 トレース情報出力部18は、現在、イベント読取部14
からブレーク状態検出部15に伝えられているOS内部
イベントを、例えば、図6に示すような図形的表記、ま
たは図16に示すような文字表記にて、ユーザに逐次示
す。
【0055】(c−7)ブレーク状態検出部 ブレーク状態検出部15は、イベント読取部14から伝
えられたOS内部イベントの情報に基づいて、OS状態
テーブル16の内容を更新する(ステップS14)。こ
れによって、OS状態テーブル16には、マルチタスク
OS2内のOS内部状態と同じ情報が保持され、その記
憶形式は図2と同様である。
【0056】例えば、図6に示したタイミングチャート
において、時刻300m秒の直前では、マルチタスクO
S2内部のタスクAのタスク状態はRUN状態である。
この状態で図16の時刻303m秒の内部イベントが発
生すると、マルチタスクOS2内のタスクAのタスク状
態はWAIT状態に遷移する。ソフトウエア開発支援装
置3内でも同じように、ブレーク状態検出部15がイベ
ント読取部14から時刻303m秒のイベント履歴情報
を受けると、OS状態テーブル16に格納されているタ
スクAのタスク状態をRUN状態からWAIT状態に遷
移させる。すなわち、ブレーク状態検出部15により、
OS状態テーブル16の内容は、常に最新のマルチタス
クOSの内部状態と同じ状態が保持されることになる。
【0057】ブレーク状態検出部15は、前述のOS状
態テーブル16の内容の更新を行う際に、ユーザにより
ユーザアプリケーション実行前に設定されているブレー
クパターンの照合を行う(ステップS14〜ステップS
15)。その際、ブレーク状態検出部15は、イベント
読取部14から伝えられたイベントに基づいて、現在設
定されている全てのブレークパターンの状態を遷移させ
る。
【0058】ここで、ブレーク状態検出部15のブレー
ク状態の検出処理について説明する。第1のブレークパ
ターンは図14、第2のブレークパターンは図15に示
すような2つの状態遷移図として、例えば、ブレーク状
態検出部15に格納されている。ブレーク状態検出部1
5は、ユーザアプリケーション実行開始前に、全てのブ
レークパターンの状態を初期化する。ブレークパターン
の状態を初期化すると、ブレークパターンの状態が、図
14および図15における初期状態S0 となる。
【0059】まず、図14のブレークパターンから見て
みる。このブレークパターンは、「タスクBとタスクC
が同時に実行可能とならない」というものであった。図
6のタイミングチャートにおいて、ユーザアプリケーシ
ョンが実行されて、100m秒が経過し、タスクAがシ
ステムコールsig sem(#99)を発行すると、
図16の時刻103m秒で示したタスク状態遷移イベン
ト「タスクB→READY」が、イベント読取部14か
らブレーク状態検出部15に伝えられる。ブレーク状態
検出部15では、これを受けて図14のブレークパター
ンの状態を、初期状態S0 からS1 に遷移させる。その
後、図6に示すように、時刻200m秒で、タスクAが
システムコールwup tsk(#3)を発行すると、
図16の時刻203m秒で示したタスク状態遷移イベン
ト「タスクC→READY」が発生し、ブレーク状態検
出部15は、これを受けて図14のブレークパターンの
状態を、初期状態S1 からブレーク状態SE に遷移させ
る。このとき、タスクB(#2)とタスクC(#3)が
同時に実行可能となり、ブレークパターンの状態がブレ
ーク状態となったので、OS制御部17に対して、ユー
ザアプリケーション制御のための要求(ユーザアプリケ
ーションの実行の一時停止要求)を出す(ステップS1
6〜ステップS17)。
【0060】次に、図15のブレークパターンを見てみ
る。このブレークパターンは、「タスクCがセマフォP
をアクセスしない」というものであった。図6のタイミ
ングチャートにおいて、ユーザアプリケーションが実行
されて、600m秒が経過し、タスクCがシステムコー
ルsig sem(#99)を発行すると、図16の時
刻600m秒で示したシステムコール発行イベント「タ
スクC→sig sem(#99)」が、ブレーク状態
検出部15に伝えられ、これを受けて図15のブレーク
パターンの状態を、初期状態S0 からブレーク状態SE
に遷移させる。このとき、タスクC(#3)がセマフォ
Pをアクセスし、ブレークパターンの状態がブレーク状
態となったので、OS制御部17に対して、ユーザアプ
リケーション制御のための要求(ユーザアプリケーショ
ンの実行の一時停止要求)を出す(ステップS15〜ス
テップS17)。
【0061】なお、ブレークパターンは、複数同時に設
定することが可能で、この場合、イベントとOS状態テ
ーブル16の内容に応じて、全てのブレークパターンの
状態が遷移し、いずれか1つのブレークパターンの状態
がブレーク状態SE に遷移した時に、ブレーク状態検出
部15は、OS制御部17に対してユーザアプリケーシ
ョン制御のための要求を出す。 (c−8)ブレーク情報出力部 ブレーク情報出力部20は、ブレーク状態検出部15で
ブレーク状態が検出されたとき、図19に示すように、
ブレークのトリガーとなったブレークパターンやプログ
ラム中の発生箇所をブレーク時のOS状態テーブル16
の内容などの情報を出力する(ステップS18)。
【0062】図19は、第1のブレークパターンに基づ
くブレーク状態が検出された場合のブレーク情報出力部
20を構成するユーザインタフェイスの1つであるブレ
ーク情報出力画面の一例である。図19において、画面
最上部にトリガーとなったブレークパターンとユーザア
プリケーション内のイベント発生箇所が表示されてい
る。「同時に実行可能とならない(タスクB、タスク
C)inタスクA」という表記は、タスクA内でタスク
BとタスクCが当時に実行可能となるような、OS内部
イベントが発生したことを示している。またその下に
は、ユーザアプリケーション1のプログラムのどの処理
がOS内部イベント発生のトリガーとなったかが示され
ている。網掛け部分はブレークのトリガーとなった処理
で、この場合、前述したように、図6の時刻200m秒
におけるタスクAのシステムコールwup tsk(#
3)の発行であることが読みとれる。
【0063】このようにして、ブレーク情報の出力が終
了すると、次に、OS内部状態読取部13は、マルチタ
スクOS2からOS内部状態を読み出し、ソフトウエア
開発支援装置3内の内部記憶であるOS状態テーブル1
6の初期値として書き込み(ステップS11)、この書
き込みが終了すると、ブレーク状態検出部15からの要
求に応じて、OS制御部17はユーザアプリケーション
1の実行の再開を要求する(ステップS12)。以下、
前述同様の処理動作が続行される。
【0064】なお、ユーザアプリケーション1のプログ
ラムにおいて、デバッグ対象区間を指定することによ
り、デバッグ作業の効率化を図ることができる。 (d)他の実施形態 図20に、図7に示した本発明に係るOSの下で実行さ
れるユーザアプリケーションのデバッグに用いるソフト
ウエア開発支援方法を実現するコンピュータシステムの
構成を示す。このコンピュータシステムは、例えば、パ
ーソナルコンピュータであり、演算処理を司るCPU1
001と、キーボード、ポインティングデバイスおよび
マイクロフォンなどの入力部1002と、ディスプレイ
およびスピーカなどの出力部1003と、主記憶として
のROM1004およびRAM1005と、外部記憶装
置としてのハードディスク装置1006、フロッピーデ
ィスク装置1007および光ディスク装置1008をバ
ス1009により接続して構成されている。
【0065】ここで、ハードディスク装置1006、フ
ロッピーディスク装置1007および光ディスク装置1
008のいずれかの記録媒体に上述した実施形態で説明
した図7に示したユーザアプリケーション1のデバッグ
処理を実行するためのプログラムが格納される。このプ
ログラムに記述された処理は、図1のソフトウエア開発
支援装置3の各部で実行される処理と同様で、本発明の
ソフトウエア開発支援方法を実現するためのプログラム
であり、その詳細は、前述したとおりである。また、デ
バッグ対象のユーザアプリケーション1もハードディス
ク装置1006、フロッピーディスク装置1007およ
び光ディスク装置1008のいずれかの記録媒体に格納
される。マルチタスクOS2は、RAM1005に格納
されている。そして、CPU10011の制御のもと、
記録媒体からデバッグ処理を実行するためのプログラム
を読み取りながら、このプログラムに従って、マルチタ
スクOS2の管理下でユーザアプリケーション1のデバ
ッグを実行することになる。このようにして、通常のパ
ーソナルコンピュータを用いて本発明のソフトウエア開
発支援方法を実施することができる。 (e)効果 以上説明したように、上記実施形態によれば、ブレーク
パターン入力部8からマルチタスクOS2上で実行され
るユーザアプリケーション1のタスクの禁止動作の条件
が入力されると、それに基づき、ブレークパターン生成
部12ではタスクの状態遷移に基づくブレークパターン
を生成する。OS内部状態読取部13は、ユーザアプリ
ケーション1の実行開始時にマルチタスクOSの内部状
態(例えば、ユーザアプリケーション1のタスク制御ブ
ロック、セマフォ制御テーブルの内容)を読み出して、
OS状態テーブル16に初期値として記録し、イベント
読取部14は、ユーザアプリケーション1実行中に発生
したタスクの状態を遷移させるイベントをマルチタスク
OS2から読み出してブレーク状態検出部15に通知
し、ブレーク状態検出部15は、その通知されたイベン
トに基づきOS状態テーブル16の内容を更新するとと
もに、その通知されたイベントとブレークパターン生成
部12で生成されたブレークパターンとに基づきユーザ
アプリケーション1ののタスクのブレーク状態を検出す
る。ブレーク状態を検出すると、OS制御部17を介し
てユーザアプリケーション1の実行の中断マルチタスク
OS2に指示し、そのときのOS内部状態テーブル16
の内容を出力する。なお、ユーザアプリケーション1の
実行を再開する際には、再び、OS内部状態読取部13
がマルチタスクOSの内部状態を読み取って、OS内部
状態テーブル16の初期値として記録する。従って、ユ
ーザアプリケーションの実行中断(ブレーク)ポイント
の設定および誤動作ポイントの検出、さらに誤動作検出
時のOS内部状態の参照が容易に行え、デバッグ作業の
負担が軽減できる。
【0066】また、ブレークパターンライブラリに格納
されたブレークパターンの雛形とユーザの所望のブレー
ク条件に基づき、デバック対象のユーザアプリケーショ
ンのブレーク状態を検出するためのブレークパターンを
生成することにより、ユーザアプリケーションのバグ発
生箇所が容易に検出でき、デバッグ作業の負担が軽減で
きる。
【0067】また、OS状態テーブル16には、OS内
部状態読取部13で読み取られたマルチタスクOS2内
にあるOS内部状態を記憶し、その記憶された内容をO
Sブレーク状態検出部15で、イベント読取手段から読
み取ったイベントに基づいて更新するようになっている
ので、OS状態テーブル16には常に最新のOS内部状
態がコピーされることになり、マルチタスクOS2内の
OS内部状態の情報が必要になった時は、OS状態テー
ブル16の情報を参照すればよく、マルチタスクOS2
とのデータの授受は、マルチタスクOS2内メモリの読
み出をする必要がなくなりデバッグ処理が高速化され
る。
【0068】イベント読取部14が、マルチタスクOS
2から読み取ったOS内部イベントをイベント履歴情報
としてファイルに格納することと、イベント履歴情報か
らOS内部イベントを再生できるように構成されている
ため、実際にユーザアプリケーションを実行したときの
OS内部イベントの発生状況をデバッグ時に再現するこ
とができる。
【0069】さらに、ブレークパターンが、状態遷移図
によって表現されるように構成されているため、他の表
現方式、例えばツリー構造などによる表現法式に比べ
て、ブレーク状態検出部15の内部構造が単純化でき、
条件判定処理のオーバーヘッドを少なくできる。
【0070】
【発明の効果】以上説明したように、本発明によれば、
OS上で実行されるソフトウエアの実行中断(ブレー
ク)ポイントの設定および誤動作ポイントの検出、さら
に誤動作検出時のOS内部状態の参照が容易に行え、デ
バッグ作業の負担が軽減できる。
【図面の簡単な説明】
【図1】本発明の一実施形態に係るソフトウエア開発支
援装置の構成例と、そのソフトウエア開発支援装置を用
いて、OS(マルチタスクOS)上で実行されるユーザ
アプリケーションのデバッグを行う場合の全体の構成を
概略的に示した図。
【図2】OS内部状態の記憶例を示した図。
【図3】マルチタスクOSのタスク制御ブロックの構造
を示す図。
【図4】マルチタスクOSのセマフォ制御テーブルの構
造を示す図。
【図5】ユーザアプリケーションの構成例を示した図。
【図6】ユーザアプリケーションの動作の一例を示した
タイミングチャート。
【図7】ソフトウエア開発支援装置の動作を説明するた
めのフローチャート。
【図8】第1のブレークパターンの雛形の具体例を示し
た図。
【図9】第2のブレークパターンの雛形の具体例を示し
た図。
【図10】ブレークパターン情報の具体例を示した図。
【図11】ユーザアプリケーション全体に関するアプリ
ケーション情報の具体例を示した図。
【図12】タスクに関するアプリケーション情報の具体
例を示した図。
【図13】セマフォに関するアプリケーション情報の具
体例を示した図。
【図14】第1の制約条件(ブレークパターン情報)と
図8のブレークパターンの雛形に基づき生成されたブレ
ークパターンの具体例を示した図。
【図15】第2の制約条件(ブレークパターン情報)と
図9のブレークパターンの雛形に基づき生成されたブレ
ークパターンの具体例を示した図。
【図16】ユーザアプリケーションを実行した際に発生
するOS内部状態の履歴の一例を示した図。
【図17】イベントIDの意味とイベント引数を記憶す
るテーブルの一例を示した図。
【図18】システムコール発行イベントの引数の数と内
容を記憶するテーブルの一例を示した図。
【図19】トレース情報出力部のユーザインタフェース
の表示例を示した図。
【図20】図7に示した本発明に係るOSの下で実行さ
れるユーザアプリケーションのデバッグに用いるソフト
ウエア開発支援方法を実現するコンピュータシステムの
構成を示した図。
【符号の説明】
1…ユーザアプリケーション 2…マルチタスクOS 3…ソフトウエア開発支援装置 8…ブレークパターン入力部 9…アプリケーション情報記憶部 10…ブレークライブラリ記憶部 11…ブレークパターン記憶部 12…ブレークパターン生成部 13…OS内部状態読取部 14…イベント読取部 15…ブレーク状態検出部 16…OS状態テーブル記憶部 17…OS制御部 18…トレース情報出力部 19…イベント履歴情報記憶部 20…ブレーク情報出力部

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 システムで実行されるソフトウエアのタ
    スクの状態遷移に基づく前記タスクの禁止動作のパター
    ンを生成し、前記ソフトウエアの実行の際に前記ソフト
    ウエア実行に基づき発生するイベントに従って遷移させ
    たタスクの状態と前記生成されたパターンとに基づい
    て、前記ソフトウエアのタスクの禁止動作を検出したと
    き、前記ソフトウエアの実行の中断を指示することを特
    徴とするソフトウエア開発支援方法。
  2. 【請求項2】 システムで実行されるソフトウエアのタ
    スクの状態遷移に基づく前記タスクの禁止動作の条件を
    入力する入力手段と、 この入力手段で入力された条件に基づき前記ソフトウエ
    アのタスクの状態遷移に基づく前記タスクの禁止動作の
    パターンを生成する生成手段と、 前記ソフトウエアの実行の際に前記ソフトウエア実行に
    基づき発生するイベントに従って遷移させたタスクの状
    態と前記生成されたパターンとに基づいて、前記ソフト
    ウエアのタスクの禁止動作を検出する検出手段と、 この検出手段で禁止動作が検出されたとき、前記ソフト
    ウエアの実行の中断を指示する指示手段と、 を具備したことを特徴とするソフトウエア開発支援装
    置。
  3. 【請求項3】 システムで実行されるソフトウエアの誤
    動作を検出するためのプログラムを記録した機械読み取
    り可能な記録媒体であって、 システムで実行されるソフトウエアのタスクの状態遷移
    に基づく前記タスクの禁止動作のパターンを生成する生
    成手段と、 前記ソフトウエアの実行の際に前記ソフトウエア実行に
    基づき発生するイベントに従って遷移させたタスクの状
    態と前記生成されたブレークパターンとに基づいて、前
    記ソフトウエアのタスクの禁止動作を検出する検出手段
    と、 この検出手段で禁止動作が検出されたとき、前記ソフト
    ウエアの実行の中断を指示する指示手段と、 を実行するプログラムを記録した記録媒体。
JP9201543A 1997-07-28 1997-07-28 ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体 Pending JPH1145193A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9201543A JPH1145193A (ja) 1997-07-28 1997-07-28 ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9201543A JPH1145193A (ja) 1997-07-28 1997-07-28 ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体

Publications (1)

Publication Number Publication Date
JPH1145193A true JPH1145193A (ja) 1999-02-16

Family

ID=16442801

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9201543A Pending JPH1145193A (ja) 1997-07-28 1997-07-28 ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体

Country Status (1)

Country Link
JP (1) JPH1145193A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154872A (ja) * 1999-11-25 2001-06-08 Nec Ic Microcomput Syst Ltd ソフトウェア開発支援装置、ソフトウェア開発支援方法、および、そのプログラムを記録した記録媒体
JP2008004054A (ja) * 2006-05-26 2008-01-10 Fujitsu Ltd タスク遷移図表示方法及び表示装置
JP2008027172A (ja) * 2006-07-20 2008-02-07 Kyocera Mita Corp 画像形成装置
JP2015530679A (ja) * 2012-10-04 2015-10-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高効率アトミック演算を使用した方法および装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001154872A (ja) * 1999-11-25 2001-06-08 Nec Ic Microcomput Syst Ltd ソフトウェア開発支援装置、ソフトウェア開発支援方法、および、そのプログラムを記録した記録媒体
JP2008004054A (ja) * 2006-05-26 2008-01-10 Fujitsu Ltd タスク遷移図表示方法及び表示装置
JP2008027172A (ja) * 2006-07-20 2008-02-07 Kyocera Mita Corp 画像形成装置
JP2015530679A (ja) * 2012-10-04 2015-10-15 クゥアルコム・インコーポレイテッドQualcomm Incorporated 高効率アトミック演算を使用した方法および装置

Similar Documents

Publication Publication Date Title
US6101524A (en) Deterministic replay of multithreaded applications
US7415699B2 (en) Method and apparatus for controlling execution of a child process generated by a modified parent process
US4819234A (en) Operating system debugger
US6854108B1 (en) Method and apparatus for deterministic replay of java multithreaded programs on multiprocessors
US8327336B2 (en) Enhanced thread stepping
EP2915047B1 (en) System and method for debugging domain specific languages
US5845125A (en) Debugger using class information and dynamic instance inter-relationships
JP4731643B2 (ja) スクリプト作成システム
CN103620561B (zh) 用于n路运行时互操作调试的方法和系统
KR20040111141A (ko) 플러그 가능한 컴포넌트들에서의 브레이크 포인트 디버깅
JP2004086910A (ja) コンピュータ・プログラムをデバックするための方法、システムおよびソフトウェア・プロダクト
US20080244592A1 (en) Multitask processing device and method
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
EP2171589B1 (en) Transactional debugger for a transactional memory system
JP2000066904A (ja) マルチタスク制御方法及び記憶媒体
JPH1145193A (ja) ソフトウエア開発支援方法およびソフトウエア開発支援装置および記録媒体
JPH11175369A (ja) プログラム開発支援装置、プログラム開発支援方法及びプログラム開発支援プログラムを記録した媒体
WO2025195154A1 (zh) 一种基于Spark计算引擎的环境隔离方法、装置及设备
JP3675623B2 (ja) プログラム開発支援装置及び方法並びにプログラム開発支援用ソフトウェアを記録した記録媒体
JP3323169B2 (ja) ソフトウェア開発支援装置、ソフトウェア開発支援方法、および、そのプログラムを記録した記録媒体
Schuppan et al. JVM independent replay in Java
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JPH06332689A (ja) プログラムの表示方法およびプログラムの編集受付け方法
JP3339708B2 (ja) イベント記録方式
JP2912269B2 (ja) デバッグシステムおよびその方法