JPH06103107A - プログラムトレース方法 - Google Patents

プログラムトレース方法

Info

Publication number
JPH06103107A
JPH06103107A JP4249979A JP24997992A JPH06103107A JP H06103107 A JPH06103107 A JP H06103107A JP 4249979 A JP4249979 A JP 4249979A JP 24997992 A JP24997992 A JP 24997992A JP H06103107 A JPH06103107 A JP H06103107A
Authority
JP
Japan
Prior art keywords
trace
program
instruction
layer
supplied
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
JP4249979A
Other languages
English (en)
Inventor
Shigetsugu Ikeda
滋亜 池田
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.)
Daikin Industries Ltd
Original Assignee
Daikin Industries 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 Daikin Industries Ltd filed Critical Daikin Industries Ltd
Priority to JP4249979A priority Critical patent/JPH06103107A/ja
Publication of JPH06103107A publication Critical patent/JPH06103107A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【目的】 プログラムのトレースを任意のタイミングで
開始できるようにするとともに、トレース結果を把握し
やすくする。 【構成】 トレース対象プログラム起動後の任意のタイ
ミングで、トレース指示プログラムからトレース対象プ
ログラムに対してトレース指示データを供給し、トレー
ス指示データが供給されたことに応答してトレース対象
プログラム中のトレース出力マクロプログラムにトレー
ス出力フラグをセットしてトレース対象プログラムを続
行する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明はプログラムトレース方
法に関し、さらに詳細にいえば、マルチタスク可能なオ
ペレーティングシステム上で動作するプログラムのトレ
ースを行なう方法に関する。
【0002】
【従来の技術】近年のコンピュータの性能向上に伴なっ
てコンピュータソフトウェアに対する要求が大きくな
り、プログラムの容量も膨大なものになる傾向である。
このような環境下におけるソフトウェアの開発に当って
は、当初のコーディングのみならず、コーディング完了
後のデバッグに多大の作業が必要になる。特に、大規模
なプログラムを作成するに当っては、複数のプログラマ
が対象となるプログラムの各部分を作成することになる
ので、一般的に各プログラマは自己が担当した部分を熟
知しているだけであり、他の部分に関しては余り細かい
知識を有していない。したがって、大規模なプログラム
のデバッグが著しく困難になってしまうのである。
【0003】このような点を考慮して、従来は、トレー
スをしようとするプログラムを起動する前にトレースを
行なうか否かを設定し、トレースを行なうべきことが設
定された場合は、トレースすべき関数をトレースして出
力する命令を追加し、この状態で該当するプログラムを
起動する方法が提案されている。この方法を採用すれ
ば、トレースを行なうべきことを設定し、しかも必要な
命令を追加しておくことにより、プログラムの所望の関
数をトレースでき、デバックに要する作業量を低減でき
る。
【0004】
【発明が解決しようとする課題】上記のプログラムトレ
ース方法を採用した場合には、該当するプログラムを起
動する前にトレースを行なうべきことを設定しなければ
ならず、起動後にトレースを行なうべきことを設定する
ことができない。したがって、プログラムを実行してい
る途中において不都合が存在することが分っても、その
時点で直ちに該当するプログラムをトレースさせること
が不可能である。この結果、トレースを行なうべきこと
を設定してから該当するプログラムを再起動しなければ
ならず、しかも、再起動した場合には、前の実行状態が
再現できる保証がない(各種パラメータを前の実行時と
同一に設定することが殆ど不可能である)ので、プログ
ラムトレースの実効が余り期待できなくなってしまう。
【0005】また、従来のプログラムトレース方法で
は、全ての関数への出入りおよびその内容が出力される
だけであるから、トレース量が膨大になり、また、同じ
関数が異なる箇所で実行されているような場合には、ト
レース結果のみを見てもどの部分で誤りが起っているか
分らず、この結果、十分なトレースの実行が達成できな
いので、プログラムトレースの実効が余り期待できなく
なってしまう。
【0006】
【発明の目的】この発明は上記の問題点に鑑みてなされ
たものであり、任意のタイミングでトレースの要否を設
定でき、しかもプログラム単位ではなく、プログラムに
含まれるレイヤ単位でトレースの要否を設定できるプロ
グラムトレース方法を提供することを目的としている。
【0007】
【課題を解決するための手段】上記の目的を達成するた
めの、請求項1のプログラムトレース方法は、トレース
対象となり得るプログラムをレイヤ分けした状態で作成
しておくとともに、トレースすべきことが指定されたレ
イヤに対応させてトレース内容を出力するプログラムを
組み込んでおき、該当するプログラムが起動した後の任
意のタイミングで、トレースの指示を行なうトレース指
示プログラムから該当するプログラムに対して、プロセ
ス間通信方法によりトレース指示を供給し、トレース指
示が供給された時点以後、該当するプログラムが少なく
ともレイヤ名、関数名を含むトレース結果を出力する方
法である。
【0008】請求項2のプログラムトレース方法は、ト
レース対象となり得るプログラムをレイヤ分けした状態
で作成しておくとともに、トレースすべきことが指定さ
れたレイヤに対応させてトレース内容を出力するプログ
ラムを組み込んでおき、該当するプログラムが起動した
後の任意のタイミングで、トレースの指示を行なうトレ
ース指示プログラムによりトレース対象レイヤを含むト
レース対象範囲指定データを作成して、該当するプログ
ラムに対して、プロセス間通信方法によりトレース対象
範囲指定データと共にトレース指示を供給し、トレース
指示が供給された時点以後、該当するプログラムがトレ
ース対象範囲内において少なくともレイヤ名、関数名を
含むトレース結果を出力する方法である。
【0009】
【作用】請求項1のプログラムトレース方法であれば、
マルチタスク可能なオペレーティングシステム上で動作
するプログラムのトレースを行なうに当って、トレース
対象となり得るプログラムをレイヤ分けした状態で作成
しておくとともに、トレースすべきことが指定されたレ
イヤに対応させてトレース内容を出力するプログラムを
組み込んでおき、該当するプログラムが起動した後の任
意のタイミングで、トレースの指示を行なうトレース指
示プログラムから該当するプログラムに対して、プロセ
ス間通信方法によりトレース指示を供給し、トレース指
示が供給された時点以後、該当するプログラムが少なく
ともレイヤ名、関数名を含むトレース結果を出力するの
であるから、プログラムを再起動することなく任意のタ
イミングでトレースを開始させることができ、プログラ
ムに不都合が生じていることが明らかになった時点で直
ちにプログラムトレースを開始することに起因して、再
起動に伴なう各種パラメータの再現等の作業を必要とせ
ず、プログラムのデバッグ作業等を効率化できる。ま
た、トレース結果としてレイヤ名、関数名を含むトレー
ス結果を出力するのであるから、どのレイヤにおける関
数であるかを簡単に認識でき、該当する関数に影響を与
える可能性がある他の関数等の特定作業を著しく簡素化
できる。もちろん、ネットワークを経由してトレース開
始を指示することもできる。
【0010】請求項2のプログラムトレース方法であれ
ば、マルチタスク可能なオペレーティングシステム上で
動作するプログラムのトレースを行なうに当って、トレ
ース対象となり得るプログラムをレイヤ分けした状態で
作成しておくとともに、トレースすべきことが指定され
たレイヤに対応させてトレース内容を出力するプログラ
ムを組み込んでおき、該当するプログラムが起動した後
の任意のタイミングで、トレースの指示を行なうトレー
ス指示プログラムによりトレース対象レイヤを含むトレ
ース対象範囲指定データを作成して、該当するプログラ
ムに対して、プロセス間通信方法によりトレース対象範
囲指定データと共にトレース指示を供給し、トレース指
示が供給された時点以後、該当するプログラムがトレー
ス対象範囲内において少なくともレイヤ名、関数名を含
むトレース結果を出力するのであるから、プログラムを
再起動することなく任意のタイミングでトレースを開始
させることができ、プログラムに不都合が生じているこ
とが明らかになった時点で直ちにプログラムトレースを
開始することに起因して、再起動に伴なう各種パラメー
タの再現等の作業を必要とせず、プログラムのデバッグ
作業等を効率化できる。また、トレース対象範囲指定デ
ータに基づく範囲のみについてトレースを行なうのであ
るから、必要であると考えられる範囲のトレースのみを
行なわせることにより出力されるトレース結果の量を低
減でき、デバッグを効率化できる。さらに、トレース結
果としてレイヤ名、関数名を含むトレース結果を出力す
るのであるから、どのレイヤにおける関数であるかを簡
単に認識でき、該当する関数に影響を与える可能性があ
る他の関数等の特定作業を著しく簡素化できる。もちろ
ん、ネットワークを経由してトレース開始を指示するこ
ともできる。
【0011】
【実施例】以下、実施例を示す添付図面によって詳細に
説明する。図2はトレース対象となり得るプログラムを
概略的に示す図であり、関数A1,A2を含むレイヤA
と関数B1,B2を含むレイヤBを含んでいるととも
に、両レイヤA,B間のインターフェイスaを含んでい
る。また、上記プログラム中のレイヤBに属する関数B
2は、例えば、図3に示すように、レイヤ名、関数名、
関数の内容としての、関数B2本来の機能を達成するプ
ログラムおよびレイヤB、インターフェイスa用のトレ
ース出力マクロプログラム(ErrorFaB参照)か
ら構成されている。このトレース出力マクロプログラム
ErrorFaBは、レイヤB、インターフェイスa用
のトレース出力マクロプログラムであり、トレース指示
があったことに応答してトレース指示フラグがセットさ
れ、ソースコード上で定義したレイヤ名、関数名および
該当する場合には指定されたメッセージを含む情報を出
力する。
【0012】また、上記プログラムには、トレース指示
を受け取ったことに応答してトレース出力マクロプログ
ラムにトレース指示フラグをセットするためのフラグセ
ット用プログラムが含まれている。このフラグセット用
プログラムは、トレース指示受信プログラムおよびトレ
ース出力マクロプログラムの定義{ErrorFa
B()の定義等}から構成されている。
【0013】図1はこの発明のプログラムトレース方法
の一実施例を説明するフローチャートであり、プログラ
ムトレースを行ないたいと考えた場合に、ステップSP
1においてトレース指示のためのトレース指示プログラ
ムを起動し、ステップSP2においてトレース指示プロ
グラムからトレース対象プログラムに対して、プロセス
間送信機能を用いてトレース指示データを供給する。ト
レース指示データが供給されたプログラムにおいては、
ステップSP3においてフラグセット用プログラムを動
作させることにより全てのトレース出力マクロプログラ
ムにトレース指示フラグをセットし、ステップSP4に
おいてトレース対象プログラムを続行する。この場合に
おいて、トレース対象プログラムの実行中にトレース出
力マクロプログラムが実行されれば、ソースコード上で
定義したレイヤ名、関数名および該当する場合には指定
されたメッセージを含む情報をトレース出力として出力
する。そして、トレース対象プログラムの実行が完了す
れば、そのまま一連の処理を終了する。もちろん、トレ
ース対象プログラムの実行途中においてトレース指示プ
ログラムからトレース対象プログラムに対してトレース
終了指示データを供給すれば、該当する時点でトレース
対象プログラムのトレースを終了させることができる。
【0014】また、トレース指示プログラムからトレー
ス対象プログラムへのトレース指示データ、トレース終
了指示データの供給を通信回線を通して行なうととも
に、トレース出力を通信回線を通してトレース指示プロ
グラムが起動されている端末装置等に出力することも可
能であり、この場合には、デバッグのためにプログラマ
等がトレース対象プログラムが動作している端末装置等
が設置されている場所まで移動しなくてもよくなる。し
たがって、移動に要する時間に起因してトレース対象プ
ログラムの各パラメータを復元しながら再動作させる必
要がなく、デバッグの精度を高めることができる。
【0015】
【実施例2】図5はトレース指示プログラムとトレース
対象プログラムとの関係を概略的に示す図であり、トレ
ース指示プログラムにおいて、全てのレイヤ、インター
フェイスを画一にトレース対象とするのではなく、レイ
ヤ、インターフェイス毎にトレースの要否を設定したト
レース指示ファイルを作成し、このトレース指示ファイ
ルと共にトレースを行なうべきことを指示するデータを
トレース対象プログラムに供給するようにしている。ト
レース対象プログラムに含まれるフラグセット用プログ
ラム(図2をも参照)は、上記トレース指示ファイルの
内容に基づいて該当するトレース出力マクロプログラム
のみにトレース指示フラグをセットするようにしてい
る。具体的には、トレース指示受信プログラムがトレー
ス指示ファイルの内容を読み込み、該当するトレース出
力マクロプログラムの定義中に該当するフラグをセット
する。尚、図5において“1”がトレースを行なうべき
ことを指示するフラグであり、“0”がトレースを行な
うべきでないことを指示するフラグである。
【0016】図4はこの発明のプログラムトレース方法
の他の実施例を説明するフローチャートであり、プログ
ラムトレースを行ないたいと考えた場合に、ステップS
P1においてトレース指示のためのトレース指示プログ
ラムを起動し、ステップSP2においてレイヤ、インタ
ーフェイス毎にトレースの要否を規定したトレース指示
ファイルを作成し、ステップSP3においてトレース指
示プログラムからトレース対象プログラムに対して、プ
ロセス間送信機能を用いてトレース指示ファイルと共に
トレース指示データを供給する。トレース指示ファイル
およびトレース指示データが供給されたプログラムにお
いては、ステップSP4においてフラグセット用プログ
ラムを動作させることにより、トレース指示ファイル中
でトレースが指示されているトレース出力マクロプログ
ラムにトレース指示フラグをセットし、ステップSP5
においてトレース対象プログラムを続行する。この場合
において、トレース対象プログラムの実行中にトレース
出力マクロプログラムが実行されれば、ソースコード上
で定義したレイヤ名、関数名および該当する場合には指
定されたメッセージを含む情報をトレース出力として出
力する。そして、トレース対象プログラムの実行が完了
すれば、そのまま一連の処理を終了する。もちろん、ト
レース対象プログラムの実行途中においてトレース指示
プログラムからトレース対象プログラムに対してトレー
ス終了指示データを供給すれば、該当する時点でトレー
ス対象プログラムのトレースを終了させることができ
る。
【0017】また、トレース指示プログラムからトレー
ス対象プログラムへのトレース指示ファイル、トレース
指示データ、トレース終了指示データの供給を通信回線
を通して行なうとともに、トレース出力を通信回線を通
してトレース指示プログラムが起動されている端末装置
等に出力することも可能であり、この場合には、デバッ
グのためにプログラマ等がトレース対象プログラムが動
作している端末装置等が設置されている場所まで移動し
なくてもよくなる。したがって、移動に要する時間に起
因してトレース対象プログラムの各パラメータを復元し
ながら再動作させる必要がなく、デバッグの精度を高め
ることができる。
【0018】
【発明の効果】以上のように請求項1の発明は、プログ
ラムを再起動することなく任意のタイミングでトレース
を開始させることにより、プログラムに不都合が生じて
いることが明らかになった時点で直ちにプログラムトレ
ースを開始することに起因して、再起動に伴なう各種パ
ラメータの再現等の作業を必要とせず、プログラムのデ
バッグ作業等を効率化でき、また、トレース結果として
レイヤ名、関数名を含むトレース結果を出力するのであ
るから、どのレイヤにおける関数であるかを簡単に認識
して、該当する関数に影響を与える可能性がある他の関
数等の特定作業を著しく簡素化でき、さらに、ネットワ
ークを経由してトレース開始を指示することにより不都
合発生時の対応、原因究明、解決を効率化できるという
特有の効果を奏する。
【0019】請求項2の発明は、プログラムを再起動す
ることなく任意のタイミングでトレースを開始させるこ
とにより、プログラムに不都合が生じていることが明ら
かになった時点で直ちにプログラムトレースを開始する
ことに起因して、再起動に伴なう各種パラメータの再現
等の作業を必要とせず、プログラムのデバッグ作業等を
効率化でき、また、トレース対象範囲指定データに基づ
く範囲のみについてトレースを行なわせることにより出
力されるトレース結果の量を低減でき、デバッグを効率
化でき、さらに、トレース結果としてレイヤ名、関数名
を含むトレース結果を出力するのであるから、どのレイ
ヤにおける関数であるかを簡単に認識して、該当する関
数に影響を与える可能性がある他の関数等の特定作業を
著しく簡素化でき、さらにまた、ネットワークを経由し
てトレース開始を指示することにより不都合発生時の対
応、原因究明、解決を効率化できるという特有の効果を
奏する。
【図面の簡単な説明】
【図1】この発明のプログラムトレース方法の一実施例
を説明するフローチャートである。
【図2】トレース対象となり得るプログラムを概略的に
示す図である。
【図3】図2のプログラム中のレイヤBに属する関数B
2の構成を概略的に示す図である。
【図4】この発明のプログラムトレース方法の他の実施
例を説明するフローチャートである。
【図5】トレース指示プログラムとトレース対象プログ
ラムとの関係を概略的に示す図である。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 マルチタスク可能なオペレーティングシ
    ステム上で動作するプログラムのトレースを行なう方法
    であって、トレース対象となり得るプログラムをレイヤ
    分けした状態で作成しておくとともに、トレースすべき
    ことが指定されたレイヤに対応させてトレース内容を出
    力するプログラムを組み込んでおき、該当するプログラ
    ムが起動した後の任意のタイミングで、トレースの指示
    を行なうトレース指示プログラムから該当するプログラ
    ムに対して、プロセス間通信方法によりトレース指示を
    供給し、トレース指示が供給された時点以後、該当する
    プログラムが少なくともレイヤ名、関数名を含むトレー
    ス結果を出力することを特徴とするプログラムトレース
    方法。
  2. 【請求項2】 マルチタスク可能なオペレーティングシ
    ステム上で動作するプログラムのトレースを行なう方法
    であって、トレース対象となり得るプログラムをレイヤ
    分けした状態で作成しておくとともに、トレースすべき
    ことが指定されたレイヤに対応させてトレース内容を出
    力するプログラムを組み込んでおき、該当するプログラ
    ムが起動した後の任意のタイミングで、トレースの指示
    を行なうトレース指示プログラムによりトレース対象レ
    イヤを含むトレース対象範囲指定データを作成して、該
    当するプログラムに対して、プロセス間通信方法により
    トレース対象範囲指定データと共にトレース指示を供給
    し、トレース指示が供給された時点以後、該当するプロ
    グラムがトレース対象範囲内において少なくともレイヤ
    名、関数名を含むトレース結果を出力することを特徴と
    するプログラムトレース方法。
JP4249979A 1992-09-18 1992-09-18 プログラムトレース方法 Pending JPH06103107A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4249979A JPH06103107A (ja) 1992-09-18 1992-09-18 プログラムトレース方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4249979A JPH06103107A (ja) 1992-09-18 1992-09-18 プログラムトレース方法

Publications (1)

Publication Number Publication Date
JPH06103107A true JPH06103107A (ja) 1994-04-15

Family

ID=17201035

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4249979A Pending JPH06103107A (ja) 1992-09-18 1992-09-18 プログラムトレース方法

Country Status (1)

Country Link
JP (1) JPH06103107A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094475A (ja) * 2005-09-27 2007-04-12 Seiko Epson Corp 半導体集積回路、並びに、デバッグ方法及びデバッグシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007094475A (ja) * 2005-09-27 2007-04-12 Seiko Epson Corp 半導体集積回路、並びに、デバッグ方法及びデバッグシステム

Similar Documents

Publication Publication Date Title
US5307504A (en) System and method for preserving instruction granularity when translating program code from a computer having a first architecture to a computer having a second reduced architecture during the occurrence of interrupts due to asynchronous events
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
JPH0734178B2 (ja) 変換コードを実行するための効果的エラー報告
JP2002505768A (ja) 計算の状態を再構成する方法ならびにシステム
JP2000132424A (ja) ソフトウェアインスツルメンテ―ション方法
US7353498B2 (en) Multi-process debugger
US20040168157A1 (en) System and method for creating a process invocation tree
US11113182B2 (en) Reversible debugging in a runtime environment
US7865883B1 (en) Parallel and asynchronous debugger and debugging method for multi-threaded programs
US11074153B2 (en) Collecting application state in a runtime environment for reversible debugging
JPH06103107A (ja) プログラムトレース方法
JPH0588933A (ja) デバツグ機能を有する並列処理システム
JPH0250228A (ja) デバッグ処理装置
JP2807026B2 (ja) 並列プログラムの実行再現方法
KR20040076915A (ko) 디지털 시그널 프로세서의 실시간 디버깅 방법
JP2788353B2 (ja) タスクトレース方法
JPH05108404A (ja) デバツガシステム
JPH0561717A (ja) プログラムデバツグ装置
JPS6214240A (ja) プログラム検査方式
JP3114686B2 (ja) プログラム・ディバグ方法
JPS5835648A (ja) プログラム実行制御方式
CN117707919A (zh) 一种面向申威平台的协程调试方法
JPH08320813A (ja) プログラムシミュレータ装置及びプログラムデバッグ方法
JPH04324525A (ja) プログラム移植支援装置
JPH11110250A (ja) ソフトウェア実行モード切替方法