JPH06208486A - ソフトウェア例外条件に対する選択的データ捕獲方法 - Google Patents

ソフトウェア例外条件に対する選択的データ捕獲方法

Info

Publication number
JPH06208486A
JPH06208486A JP5202091A JP20209193A JPH06208486A JP H06208486 A JPH06208486 A JP H06208486A JP 5202091 A JP5202091 A JP 5202091A JP 20209193 A JP20209193 A JP 20209193A JP H06208486 A JPH06208486 A JP H06208486A
Authority
JP
Japan
Prior art keywords
data
task
error
family
code
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.)
Granted
Application number
JP5202091A
Other languages
English (en)
Other versions
JP2557180B2 (ja
Inventor
Jean Berthe
ジーン・バート
Herve Perrinot
ハーブ・パーリント
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH06208486A publication Critical patent/JPH06208486A/ja
Application granted granted Critical
Publication of JP2557180B2 publication Critical patent/JP2557180B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Abstract

(57)【要約】 【目的】 故障時にデータ処理プログラムの性能及び資
源に与える衝撃が最小な、誤動作に対する効果的且つ非
常に簡単なデータ選択方法を提供する。 【構成】 ソフトウェア例外条件中のデータを選択的
に捕獲する方法であって、各タスクに対し、サブセット
に分割されたデータ・テーブル200を動的に定義し、
タスク実行開始時に重誤りに関するデータ・フィールド
を各サブセット206に記述し、タスクの実行中、各サ
ブセットに重誤りに関するデータ・フィールドを記述
し、コード中の潜在的例外条件で活動化テーブル405
中のサブセットを選択し、例外条件の発生を検出して故
障タスクを識別し、誤り処理プログラム・コード411
に動作制御を移行し、該コードにより故障タスクに伴う
活動化テーブルの記述から適切なデータ・フィールドを
検索する各工程から成る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プログラムをデバッグ
する方法に関し、特にデータ処理システムの作動中にソ
フトウェア例外条件で、データを選択的に捕獲する方法
に関する。
【0002】
【従来の技術】新たなコンピュータ・ソフトウェア製品
を考える場合、顧客が求める信頼性および保守容易性又
はサービス度を確保するため、新製品を市場に出す過程
において行われる典型的な周期またはプロセスがある。
それには、通常、プログラミング周期または以下に示す
工程が含まれる。すなわち、 − アイデアの着想、 − 該アイデアを実現するためのソフトウェアの設
計、 − 該設計に基ずくプログラムのコード化、 − 開発環境における、初期テストおよびデバッグ、 − 利用者サイトにおけるテスト、 − 該ソフトウェアの市場に対する最終的リリース、 − 保守、 − 新たにリリースしたフトウェアの更新、等であ
る。
【0003】通常、ソフトウェア製品は予定表に合わせ
て発売される。コードに故障または誤り(バグとして知
られる)が現れた場合、製品の発売期限を逃してしま
う。特に、バグが複雑か、微妙または発見しにくい場合
はそうである。このような遅延は、ソフトウェア製品の
売出し失敗を引き起こす。同様に、ソフトウェア製品
の、可用度(又は使用可能性)、品質及び保守し易さ
は、販売競争における成功の重要要素である。
【0004】歴史的に見て、大半のソフトウェアは、故
障しないという仮定の基に設計されており、誤り検出能
力は、わずかしかまたは全く設計に組み込まれていなか
った。ソフトウェアに誤りまたは故障が発生すると、通
常、その誤りを検出するのはコンピュータ・オペレーテ
ィング・システムであり、コンピュータのオペレータ
は、正しい結果が得られなかった場合、ソフトウェア・
プログラムの実行を取り消していた。更に重要かつ複雑
となりつつあるプログラムの開発、テスト及び保守を容
易にするため、デバッグする方法、および全てのソフト
ウェア及びハードウェア上の誤動作を検出し、分離し、
報告し、および回復させるツールを定義することが必要
となってきた。
【0005】誤り処理および問題の判別は、以下の原理
に基ずいて行われる。すなわち、 − 全てのプログラムは故障し、または誤ったデータ
を生成する可能性がある。 − 誤り検出プログラム自体が誤りとなる可能性があ
る。 − 全ての検出された誤りまたは故障は、固定的また
は過渡的であれ、何が生じているかの理解に必要な全デ
ータを報告しなければならない。過渡的誤りとは、プロ
グラム自体によって回復されるが、情報提供する目的で
報告される、一時的故障を意味する。
【0006】− 全ての誤りは、以下の分類のいずれ
かに入る。 * ハードウェアの誤りまたは故障、 * 機能的誤り、 * プログラム内部への無効入力、 * プログラム外部への無効入力、 * タイムアウト、 * 例外条件、 ・ 除算誤り、 ・ 無効アドレス、 ・ ループ、 ・ 無効演算コード、 ・ 浮動小数点誤り、 ・ ・・・・。
【0007】例外条件とは、命令の実行中にプロセッサ
自体によって検出される誤りりを指すが、これらはデー
タ・プロセッサのそれぞれ異なる発売元の使用法に応じ
て、障害(Faults),トラップ(Traps), または打ち切り
(Aborts) として分類することができる。
【0008】ソフトウェア誤りに対する、最も一般的に
使用される方法は、プログラムに割り振られた記憶全域
を捕獲する方法であり、このプロセスは、大域または物
理的ダンプ(Global or Physical Dump)と呼ばれてい
る。
【0009】しかし、 − 誤りは、プログラムがそれを検出できる前に発生
し、誤りまたは故障の原因の判別に必要なキーデータは
喪失またはオーバーレイされることが多い。 − 誤りが複雑になる程、より多くのデータが生成さ
れる。 − システムの記憶装置内の情報の分散により複雑な
誤りをより分離しにくくする。 − 多量のデータの転送は、時間及び記憶において資
源の浪費であり、顧客の性能に悪影響を与える可能性が
ある。
【0010】頻繁に起きているように、有意な情報が多
量の重要でない抹消事項に埋もれて多くの出力が生成さ
れる。このため、プログラマーはプロセッサの記憶域内
の全データを保存検索することによって得られる利益
が、終わりのない骨の折れる分析に起因する不利益に勝
るか否かを、常に考慮しなければならない。
【0011】また別の方法で、誤りが最終的に現れる点
まで実行経路を辿るべきかは、必ずしも明らかではな
く、また、ほとんど、プログラム開発者はトレース(Tr
ace)と称するプロセスを使用して、ソフトウェア誤りを
分離する。この方法によると、各“トレース”点は故障
プログラム内にあり、その実行経路を経由してデータを
サンプルするため、問題が再現され、トレース点からの
データが収集されることになる。しかし、その“トレー
ス”は、以下に述べるようなことを含む悪い面を有して
いる。
【0012】すなわち、 − “トレース”では、トレース点に遭遇する度に、
追跡又はトレース・ルーチンに分枝を要求し、屡、問題
プログラムに対してのみでなく、同一システム上で実行
しているその他のプログラムに対しても、かなりの衝撃
を与える結果になりやすい。 − “トレース”はトレース各点から生成された多量
のデータを保持する大型のデータ・セットを必要とす
る。 − “トレース”を用いて診断データを捕獲するプロ
グラマ−は、自己が、絶えず、ほとんど誤りの原因を反
映しない多量のデータの中にいることに気付くであろ
う。 − 問題は再発生しなければならない。ソフトウェア
上の問題が、2つの問題(例えば、たがいに通信する2
つのネットワーキング・プログラム)間の、タイミング
問題に起因する場合は、トレースは、大半のタイミング
の問題を再発生できない点まで、プログラムの実行をス
ローダウンすることができる。
【0013】前述のように、応答型ダンプ及びトレース
(Sollicited Dump and Traces)は外部介入手段(コン
ソール、ホスト、オペレータ)の要求に基ずいてトリガ
されるが、これらは、ソフトウェア誤りに起因する損傷
が表面にでるまで待つという方法論に基づくものであ
る。いずれの場合も、多量のデータが収集され、何が悪
かったを判別するデータの捕獲を希望する。
【0014】
【発明が解決しようとする課題】開発中にプログラム内
に直接設けられた誤りコードによって、即座に誤りを検
出すると共に自動的に診断データを収集することができ
る。誤りまたは故障が発生すると、誤りをデバッグする
に要するデータだけを捕獲して報告するプロセスを呼び
出すプログラムによって検出されるが、このプロセス
は、通常、誤り通知(Error Notification) と呼ばれて
いる。レイアウトおよびフォーマット等のデータ記述
は、一般に事前定義されたテーブルに記憶されている
が、そのテーブルに対する入力は、プログラムの誤り検
出コードによって選択される。この従来技術の代表例
は、米国特許第5、119、377号“コンピュ−タ・
プログラムの誤り検出及び診断方法及びシステム”に記
載され、開示されている。そのプロセスの主要な利点は
以下の通りである。
【0015】すなわち、 − 報告済み情報はリアル・タイム・モードで処理
し、可視化し、および解釈することができる。 − 誤りの診断に必要なデータは、誤りが現れる最初
に捕獲される。問題は再作成されるべきではない。 − 誤りを分離できると共に、固定損傷発生前に、そ
の伝搬を停止することができる。 − 報告データは、解決するべき誤りに限定され、こ
れによってデータの報告及び問題の分離と修正が容易に
なる。 − このプロセスは、誤り検出時に条件付で呼び出さ
れるだけであり、前記のような条件が発生するまで、完
全に遊休状態である。コンピュタ資源およびプログラム
性能に与える衝撃は最小限に留まる。 − プログラム自体の要求に応じて、誤りコンテキス
トに限定された指定域ダンプ(Selective Dump) を、自
動的にトリガ及び検索することができる(任意型ダンプ
(Unsollicited Dump ))。
【0016】− 捕獲し報告されたデータに、固定ト
レース(Permanent Traces) を入れることができる。内
部トレース(Internal Traces)とも呼ばれるこれらの
“トレース”は、コードの整数部分であり、プログラム
のプロセスに従って周期的に更新することにより、疑が
かかったコードを動的に観察できるようにする。 − プロセスを事象に拡張することにより、コード進
行のある特定段階において、または事項発生の時にデー
タを報告することができる。
【0017】“誤り通知”プロセスは、コード全部分が
成すべき動作を伴い、誤りを検出し記述することによっ
て、制御を回復し、または故障要素の衝撃を最小にする
ことができることを含み、全入力(内部的なものも外部
的なものも)の組織的チェック、ハードウェア・チェッ
カの使用、およびコードのキーポイントにおける機能テ
スト及びタイマ等の実行を意味する。
【0018】この分析段階において、誤りを2つの異な
る型に分類しておくのが得策であると思われる。 − 軽誤り(Minor Errors) :プログラム自体で誤り
または故障を検出し、専用の誤りコードによって関連す
る適切情報を収集する。 − 重誤り(Mejor Errors) :プログラムは操作の制
御を失い、もはやそれ自体が誤り又は故障を検出するこ
とができない。即ち、外部システム(オペレーティング
・システム、制御プログラム、データ・プロセッサ等)
によって誤りを検出し、故障プログラムに依存せずに、
適切な情報を収集し報告する。除算誤り、無効操作コー
ド、ループ、浮遊小数点誤り等の例外条件は、重誤りの
部類に属する。
【0019】しかしながら、この従来技術において、
“重誤り”は、独立システムによる、選択的データ捕獲
の問題を提起する。すなわち、故障プログラムは、もは
や報告するべき有益データを記述できなくなり、上記で
詳細に説明した" 誤り通知"方法、はこの場合、作動不
能となる。特定のガイド・ラインがないため、外部コー
ドは大域“ダンプ”または外部“トレース”によって、
全可用又は使用可能データを認識することなく収集する
よう制限される。ダンプまたはトレース使用法に特有な
欠点に加え、この状況は以下を禁止している。 − リアル・タイムの問題調査、 − データの自動的分析、 − 特定の回復動作のトリガ。
【0020】従って、本発明の目的は、“重誤り”発生
時に、データ処理システムの性能及び資源に対する衝撃
を最小にして、収集情報の高品質及び保全性を確保す
る、効果的かつ非常に簡単なデータ選択方法を提供する
ことにある。
【0021】
【問題を解決するための手段】データ捕獲には、適切な
データを記述して、故障プログラムの制御が失われる前
に、収集する手段を含む。好ましい実施例では、プログ
ラムは、全データをリストに予防的に宣言し、重誤りの
場合はこれらを捕獲する。第2段階として、コードのキ
ーポイントによりリスト内の適切なデータ・セツトが活
動化される。誤り発生時に、予め宣言及び活動化された
データのみが、誤りを報告する役割を持つ外部コードに
よって収集される。
【0022】本発明は、大域データの捕獲方法に関し、
特に“誤り通知”及び“指定域ダンプ”処理に関するも
のである。本発明の前記目的は、効率の良い高品質のソ
フトウェアの開発及び保守に貢献するものである。
【0023】
【実施例】誤り処理の一般的プロセスは、以下の工程で
要約することができる。 − リアル・タイムの誤り処理プロセス: * 誤り検出、 * データ捕獲、 * 誤り回復、 * プロセスの再開始。 − 据置き誤り処理プロセス: * 問題の再作成、 * 誤りの分離および調査、 * 修正。
【0024】図1は、大域データ捕獲方法のコンテキス
トにおける、本発明の位置を示す図である。その方法
は、以下によって記述することができる制約の関数で考
察されていた。 − 資源消費: * 記憶域占有、 * プロセッサ時間、 * データ・スループット。 − 顧客性能: − データ可用度及びアクセス: * リアル・タイムで、 * 据置き時間で。 − 情報の品質及び保全性: − 問題の再作成能力:
【0025】これらの要件を満足する異なる方法の能力
は、2つの基準、すなわち選択性と活動性(それぞれ図
面の縦及び横軸線上に現れる)に基ずいて測定すること
ができる。選択性とは、一定時間で最も適切な情報を標
的にするツールの能力を意味する。他方、活動性とは、
所定の時間的間隔において、1つのコードの進行および
その実行経路を追跡する能力を表す。
【0026】共通的に使用されている異なるデータ捕獲
ツールの主要特徴は以下の通りである。 − 大域ダンプ(Global Dump):定義によって、全記
憶の捕獲は誤り調査のため、低選択性モード(数メガバ
イトの生成データまで)で行われる。しかし、それは制
御プログラムまたはプロセッサがシステムの完全再開始
を必要とする動作不能状態となった場合の唯一解決策を
表しうるものである。
【0027】− 軽誤り指定域ダンプ(Minnor Error
Selective Dump):データ捕獲は、誤りコ−ドに関係す
る記憶に限定される。問題の特定には、以下に示す2種
類のデータが特に有益である: * システム・データ(System Data):コード環境を
構成すると共に、システムにおける誤りの総括的理解に
寄与するデータ:システム・トレース、レジスタ、スタ
ック等・・・ * アプリケーション・データ(Application Data)
:誤り発生時に、コード自体によって定義される機能
データ。
【0028】“指定域ダンプ”中に収集されるデータ量
は、解決すべき問題の複雑さに応じて、十から数百キロ
・バイトまで変えることができる。“任意型ダンプ”
は、コード自体によってプロセッサ内から要求される
が、それに対する応答型ダンプは操作卓または任意の外
部保守システムによって活動化される。
【0029】− 内部トレース(Internal Traces):
コードに固定することができ、これによってコードの実
行を選択的かつ活動的に観察することができるが、シス
テム性能への衝撃を制限するため、内容は、極最小に限
定される。内部トレースは、故障プログラム自体によっ
て管理され、通常“誤り通知”(軽誤りまたは重誤り)
または“指定域ダンプ”機構によって報告される。
【0030】− 外部または応答型トレース(Extern
al or Sollicited Traces):これらは外部の構成要素に
よって活動化されるが、当然ながら、問題を再生できる
条件の下で、据置きモードにより、コードの進行を総括
的に調査可能にするという“内部トレース”を完結す
る。
【0031】− 軽誤り通知(Minor Error Notifica
tion) :ソフトウェアまたはハードウェア上の誤り、固
定または一時誤り等の誤りを検出する各コードは、こと
の推移の理解に必要な第1可用データにより、状況を識
別することを機能とする誤り記録を作成かつ報告する責
任がある。その記録は、一般に下記で構成される。すな
わち、 * 日時、誤りの型等のある種の一般的情報を有す
る、故障要素(あるとすると、ソフトウェアまたはハー
ドウェア)の識別、 * プログラム自体に捕獲された誤りデータ。これら
は、誤ったアプリケーションの文脈に特有であり、通
常、第1誤りデータ捕獲(First Error Data Capture)
を表すFECDという総称語で述べられる。性能面の制
約から、誤り記録の大きさは一般に数百バイトに限定さ
れ、情報を完結させるには、たいてい“指定域ダンプ”
が必要である。
【0032】− 重誤り通知(Major Error Notifica
tion) :故障プログラムは、もはや操作の制御権を持た
ないため、誤りは、拡張権限が与えられた外部コードに
よって検出される。このコードは、作動不能となる前
に、プログラムによって予め宣言されたデータによる誤
り記録を報告する。この重誤り記録(Mejor Error Reco
rd) は、“軽誤り”の場合に報告されたものと類似する
が、故障プログラムの代わりに誤りデータが捕獲される
ため、その誤りデータは、正確性および選択性が低いと
いう点で相違している。大抵の場合、問題の識別及び分
離には、1キロバイト以上のデータが必要である。本発
明の目的は、“重誤り”発生前に、データを記述し、故
障発生の場合、外部の誤りコードによってそれを選択的
に捕獲する方法を提供するものである。
【0033】− 重誤り指定域ダンプ(Major Error
Selective Dump) :この処理は、誤りの識別だけでな
く、自動警告または即時回復のトリガにも使用され、
“重誤り通知”処理によって収集済みの情報を完結させ
ると共に、操作卓または任意の問題管理システムから、
据置き時間において問題を広範に調査する権限が与えら
れる。データの宣言及び活動化の原理は、“重誤り通
知”処理又はプロセスで実行されたものに類似してい
る。データ報告方法自体は、従来技術であるため、その
詳細は説明しない。
【0034】図2は、本発明による“重誤り通知”処理
で使用されるタスク・データ・テーブル(Task Data Ta
ble)を示している。
【0035】一般に、システム資源をアプリケションの
特殊ニーズの機能において最適化するため、コードはタ
スク(Tasks)とよばれる論理サブセットに分割される。
“タスク”とは、全アプリケーションの実行を管理する
制御プログラム(ControlProgram)によってそのような
ものと認識された独立構成要素である。各“タスク”
は、特定アプリケーションを表すものと想定され、シス
テム内のある種の特定資源に帰属される。“重誤り通
知”は任意のタスクに専用の処理であり、“誤り処理プ
ログラム”と称する全システムに共通な外部コードが、
“タスク”自体で予め作成した情報により、故障“タス
ク”に代わって誤り記録を構築できるようにする。
【0036】この記録は、“重及び軽誤り”に共通する
チャネルによって報告される。常時動作状態にするた
め、この方法は、コードのキーポイントにおいて発生し
た問題がある場合、その理解に要するデータを記述する
パラメータの更新を必要とする。各タスクは、重誤りタ
スク・データ・テーブル(MajorError Task Table ) (MJ
EN TDT)と称するテーブル内の自己データに責任がす
る。異なる “タスク・データ・テーブル”(MJEN TD
T)は、“誤り処理プログラム”を共用しており、各タス
クに対して固有であると共に、捕獲するデータ・フィー
ルドの記述を含む、重誤りファミリー(Major Error Fa
milies) (MJEN FAMILY) と称するいくつかの副区域に
分割される。
【0037】性能上の理由7ら、 − 潜在的重誤りに付随する全データは、初期期間中
に" タスク・データ・テー ブル"(MJEN TDT)に記
述される。 − タスクによるテーブル内の適切なデータの選択
は、コードのキーポイントにより、活動化テーブル(Act
ivation Table) (MJEN AT) と称する“誤り処理プログ
ラム" で共用領域を更新することにより容易に実現され
る。このテーブルは活動化時に直接アクセスを可能にす
る“タスク”環境におかれている。
【0038】記憶容量を制限するため、 − “タスク・データ・テーブル" (MJEN TDT)は、
タスクの正確な要件に従って動的に定義される。 − アドレス、寸法、名前などのデータの記述だけが
“タスク・データ・テーブル" (MJEN TDT)に投入され
る。 − 一時記憶空間に記憶されたデータは、割振り継続
期間に限り宣言され、その後削除される。
【0039】データ記述の保全性を保証するため、 − “タスク・データ・テーブル" (MJEN TDT)は、
誤り処理プログラム環境に置かれ、サービス手順に従
い、“タスク" により間接的にアドレス指定される。
【0040】データ処理システムにおいて、それぞれ特
定のデータ宣言モードを必要とする、一般に、2種類の
記憶域が“タスク" によって使用される。 − 静的記憶域(Static Memory)は、各タスクの作成
の時にシステムによって割振られる。静的記憶域のデー
タは、コード進行の最初で、全“タスク・データ・テー
ブル”(MJEN TDT)に一度だけ宣言される。 − 動的記憶域は(Dynamic Memory) コード実行中に
“タスク”自体で要求され、割振り時間中に、タスク・
データ・テーブルの動的データが一時的に宣言される。
【0041】“重誤り通知" 処理は、全体的に、仮説問
題に対するタスクの潜在的能力に基づいて行われる。タ
スク以外には、未発生の誤りに対し活動化するべき情報
の型及び量に関する最良の選択を実現できるものはな
い。
【0042】図2に示すように、“タスク・データ・テ
ーブル"(MJEN TDT)( 200)は、論理的に以下のよう
に構成される。 − (201)システムの記憶制約に従って、テーブ
ルを管理するのに要する全データを含むタスク・データ
・テーブル・ヘッダ(Task Data Table Header) : * (202)タスク・データ・テーブル識別(Task
Data Table Identification) 、 * (203)ファミリーの数、
【0043】* (204)テーブル内におけるデー
タ・フィールド記述(Data Field Descriptions)の総
数、 * (205)コードのバージョン、長さ、最終更新
などの内部データ、・・・。 − (206)零からNまでの番号で識別された“フ
ァミリー"(MJEN FAMILY)で、それぞれ、以下に示すも
のによって構成される: * (207)内部データを備えるファミリー・ヘッ
ダ(Family Header)、 * (208)誤り処理プログラムが正しいデータの
捕獲に要する全ての属性を備えるデータ・フィールド記
述(MJEN DFD)。
【0044】“活動化(Activation) ”と呼ばれるもの
は、誤りの場合に取り扱うべき、正しい“ファミリー"
(MJEN FAMILY)の識別を用いて、“誤り処理プログラ
ム”が共用するテーブルを更新する“タスク”のための
事実である。“タスク”によって、“重誤り活動化テー
ブル(Major Error Activation Table)" (MJEN AT) と
呼ばれるこのテーブルに直接アクセスすることにより、
コード性能に与える活動化処理の衝撃を最小にすること
ができる。その代わり、本テーブルが“たすく”環境に
置かれているという事実では、誤り発生後の情報の総体
的保全性は保証されず、ここに示された解決策は性能と
保護との妥協案に過ぎないので、実施の特定条件に従っ
て修正することができる。
【0045】2つの型の“ファミリー”が使用される。
すなわち、 − 共通重誤りファミリー(Common Major Error Fam
ily) (MJEN FAMILY 00)またファミリー(Family)
零:常に活動状態であり、“タスク”に記述されている
全“重誤り”に共通するデータの記述に対して予約され
ているものであり、同一情報に対する“タスク・データ
・テーブル”( MJEN TDT)への入力の無駄を防止する。 − 特定重誤りファミリー(Specific Major Error F
amilies) (MJEN FAMILY XX) 。各“重誤り”に対して、
特定“ファミリー”が1つだけ付随されている: 同時
に1つだけを活動状態に置くことができ、新しい活動化
“ファミリー”が以前の物と入れ替わる。
【0046】最小で、1つだけの“ファミリー”、“共
通ファミリー"(MJEN FAMILY 00) が活動化し、最大で
2つの“ファミリー”即ち“共通ファミリー”(MJEN
FAMILY 00)と活動化された“特定ファミリー”(MJEN
FAMILY XX) が使用される。
【0047】図3は、本発明による“タスク・データ・
テーブル”に内蔵された“データ・フィールドの記述”
を説明した図である。
【0048】予め定義された各“ファミリー”(MJEN
FAMILY) は、以下の様に組織される。 − (301)内部データを備えるファミリー・ヘッ
ダ。 − (302)ファミリ−識別(Family Identificat
ion)。 − (303)データ・フィールドの記述、各々は下
記のものからなる: * (304)内部データを備えるデータ・フィール
ド記述ヘッダ(DataField Description Header )、 * (305)データ・フィールド記述識別(Data F
ield Description Identification)
【0049】* (306)誤り記録(Error Recor
d) 数: これに基づき、データ・フィールドが“誤り
処理プログラム”によって報告されなければならない。
各活動“ファミリー”に対して、5個までの誤り記録を
付随させることができ、“タスク”は、各入力(付録
MJEN ADDITION Pを参照)に対して、報告しなければ
ならない“データ・フィールド”の記録の数を指定す
る、 * (307)データ・フィールド識別(Data Field
Identification):“タスク”の記憶空間からのデータ
を検索するのに要する全パラメータを備えている。すな
わち、 ・ “タスク”の記憶空間の“データ・フィールド”
のアドレス、 ・ フィールドの長さ、 ・ 名前 ・・・。
【0050】図4および5は、本発明による“重誤り通
知”処理に関係する一般的機構および基本的動作を説明
する図である。
【0051】− ステップ501:予備段階では、各
“タスク”(400)は、2つのサービス手順(詳細に
ついては付録参照)によって、自己の“タスク・データ
・テーブル”(MJEN TDT)を定義し構成する: * (401)MJEN INITIATION P :“タスク・デ
ータ・テーブル”の初期設定、 * (402)MJEN ADDITION P :予め定義された
“タスク・データ・テーブル”への“データ・フィール
ド記述”の入力。
【0052】静的記憶域へのデータ記述は、コード実行
の最初に一回だけ投入され、記憶上の理由から、“共通
ファミリー”( MJEN FAMILY 00) が、他にさきがけて
定義される。
【0053】− ステップ502:安定状態では、
“特定ファミリー”は、コードのキーポイント(KP X)
において、前後して活動化(403)される。各キーポ
イントにおいて、“ファミリー”は“活動化テーブル”
(MJEN AT)(405)の“タスク”によって選択(40
4)され、この状況は“重誤り識別子”(Major Error
Identificator)(406)と称する特定パラメータで記
述される。
【0054】“タスク”は、そのコードの実行中に、所
定期間の間、追加記憶域を要求することができる。この
動的記憶域に記憶されたデータについては、割振りの継
続期間中、宣言(407)することができる。その後、
以下の手順に従って、テーブル内の入力を削除する: * (408)MJEN DELETE P :“タスク・データ
・テーブル”内の“データ・フィールド記述”の除去。
【0055】− ステップ503:“重誤り”が発生
すると(409)、“タスク”は動作制御を失う。“制
御プログラム”(Control Program)(410)は誤りを
検出して、“誤り処理プログラム”(411)を呼び出
し、適切なデータを捕獲して報告する。“誤り処理プロ
グラム”は、システム内の全“タスク”で共用される特
定コードであり、“網羅的リストではない”ような以下
の拡張特権が与えられる: * データ捕獲中の割り込みを許さない高優先レベ
ル、 * “タスク”の記憶空間に読み込むための拡張メモ
リ。
【0056】− ステップ504:“誤り処理プログ
ラム”は、故障“タスク”を識別し、最終キーポイント
で活動化された“共通ファミリー”(MEJN FAMILY 0
0) (412)および“特定 ファミリー”(MJEN FAM
ILY XX) (404)の識別を“活動化テーブル”(MJE
N AT) に読み込む。“データ・フィールド記述”(MJE
N DFD)(413)に内蔵されている記述、長さ、アド
レス、名前等から、正しいデータ(414)が、“タス
ク”の記憶空間から検索される。
【0057】− ステップ505:“誤り処理プログ
ラム”は“重誤り”が検出されると、即座に、自体の情
報“第1誤りデータ捕獲”(First Error Data Captur
e)(FEDC)と以下に示すような(網羅的リストではな
い)最大の“システム・データ”を有する“軽誤り記
録”を作成して、これを報告する。 * 現行“タスク”の特徴、 * “タスク”環境を記述する情報、・・・。
【0058】第2段階において、該プログラムは、“活
動化テーブル”( MJEN AT) から検索された“重誤り識
別子”(406)と、先に選択された“ファミリー”に
よって捕獲されたデータにより、“重誤り記録”を構築
する。この記録は、“軽誤り”と同じ経路を介して報告
される。しかし、“重誤り”にとっては、報告すべきデ
ータ量(多くの場合、数百バイト対十キロバイト)がよ
り重要であることから、“重誤り記録”の大きさを、従
来の報告機構によって与えられる容量に適応させる必要
がある。
【0059】転送時間および記憶容量等の性能上の理由
から、“重誤り記録”は、“軽誤り記録”を越えない、
数個の別個の記録に分割される。データ分割および誤り
記録構築要領は、各“タスク”の責任下にあり、“タス
ク”は各“データ・フィールド記述”の入力でデータを
報告(付録 MJEN ADDITIONAL P 参照)しなければな
らない記録番号を指定する。これは、各活動状態の“特
定ファミリー”に対して、“故障処理プログラム" (Fa
ult Handler)が1及至5個の連鎖誤り記録を伴うことを
意味している。これらの全記録は周知の処理によって、
特定相関標識と相関される。
【0060】“指定域ダンプ”処理に関する目標は以下
の考察に要約することができる。 − “重誤り通知”処理で収集された問題の拡張調査
に対する情報を据置きモードで完結する。捕獲されたデ
ータは、厳密には、誤りデータに限定されず、問題とそ
の文脈を理解し易くするための機能データを含むもので
ある。 − “指定域ダンプ”の寸法を制限して、時間および
記憶面で、操作卓または保守サブシステムに対し転送し
易くする。 − コード性能に与える衝撃が最小で済むダンプする
べきデータを容易に宣言する方法を提供する。これは、
実用的コードにサービス機能を与え、ダンプするべき区
域を動的に定義すれば可能である。
【0061】− 保証ダンプ(Guarantee Dump) 保全
性:十分な優先レベルで作業することによって、“ダン
プ”処理の開始時に、アプリケーションがこれに割り込
まないようにする。
【0062】これらの制約によると、“指定域ダンプ”
処理は、“重誤り通知”処理に酷似する要領で組織され
る。これは以下を意味する。即ち、 − アプリケーション・コード自体、捕獲及びダンプ
するべきデータを、論理的かつ動的に記述する: * 第1段階で、アプリケーションは“タスク・デー
タ・テーブル”(MJSD TDT)と称するデータ空間を構成
し、ダンプするべきデータ・フィールドを宣言する、 * 第2段階で、アプリケーションの予想能力の機能
で、“タスク・データ・テーブル”(MJSD TDT)内の適
切なデータ・セットをコードのキー・ポイントにおいて
選択する。 − “誤り処理プログラム”は、宣言済みデータの効
果的な捕獲及び報告を開始しこれを管理する。
【0063】“指定域ダンプ”は、以下の要素によって
構成される。すなわち、 − システム・データ(System Data): “タスク”環
境を構成すると共に、問題の総括的理解に有益な、スタ
ック、レジスタ、システム“トレース”バッファ等のデ
ータであり、“誤り処理プログラム”によって、直接収
集される。 − アプリケーション・データ(Application Data)
:適宜の“ダンプ”手順を用いる、実用的コードによ
って、直接定義されたデータであり、以下の3つの型に
分けられる。
【0064】* パブリック・データ(Public Dat
a):システム内のトリガされた全“ダンプ”に含まれる
データであり、全アプリケーションの一般的関心事を表
すが、システムの全“タスク”で共用される“パブリッ
ク又は共用データ・テーブル(Public Data Table)”
(MJEN PDT)に記述される。このテーブルは、“タスク
・データ・テーブル”(MJEN TDT)と同一の構成を有して
いるが、 固定的に活動化された固有の“ファミリー”の
周りに組織される。
【0065】* 共通データ(Common Data):同一
“タスク”内の全“ダンプ”に共通するデータであり、
“タスク”に関連する“タスク・データ・テーブル”内
の“共通ファミリー”(MJSD FAMILY 00) に記述され
る。この“共通ファミり−”は、“タスク”が動作する
度に活動化される。 * 特定データ(Specific Data):宣言“タスク”の
“ダンプ”だけで収集されたデータであるが、最も貴重
なデバッグ情報を構成しており、コードのキー・ポイン
トにおいて活動化された“特定ファミリー”(MJSD FA
MIILY XX)と称するものに記述されている。
【0066】“重誤り通知”処理と比較して、“指定域
ダンプ”は、データ捕獲区域を以下の説明のところまで
延ばしている。 − “パブリック・データ”:全“タスク”に共通す
る専用の“タスク・データ・テーブル”を定義すること
によって得られ、この手段によって、“タスク”は、自
己の環境内でデータを選択し、システム内の全“ダン
プ”の一般的関心事として宣言することができる。 − “機能データ”(Functional Data):宣言済みの
“誤りデータ”に付加されるものであり、“タスク”の
機能性およびいずれの誤り状態にも依存しないオペレー
ションの一般的実行に関連している。
【0067】“指定域ダンプ”と“誤り通知タスク・デ
ータ・テーブル”との全体的構成は同一であり、前記の
図2に示される。“データ・フィールド記述”の内容
は、図3に示すものと比較して、以下の2点で相違して
いる。 − データは連鎖記録によって保守サブシステムに対
して報告されず、ファイル内でのみ報告されるため、
“誤り記録”数パラメータが使用されない。 − 大半の場合、捕獲された“パブリック・データ”
が、故障“タスク”ではなく、同一システム内のその他
の“タスク”によって宣言されたことから、データを宣
言した“タスク”の識別が述べられる。
【0068】各“ファミリー”(MJSD FAMILY) は、以
下のように組織される。 − 内部データを備える“ファミリー・ヘッダ。 − “ファミリー識別。 − “データ・フィールド記述(Data Field Descript
ions)”:それぞれ以下によって構成される: * 宣言用“タスク識別(Task Identification)”、 * 内部データを備える“データ・フィールド記述ヘ
ッダ(Data Field Description Header )”、 * “データ・フィールド記述識別”(Data Field D
escription Identification)、 * “データ・フィールド識別(Data Field Identif
ication)”。
【0069】図7および5は、本発明による“指定域ダ
ンプ”処理に関係する、一般的機構及び基本動作を示
す。
【0070】− ステップ501:予備段階におい
て、各“タスク”(700)は、自己の“誤り通知およ
び指定域ダンプ・タスク・データ・テーブル”を定義
し、構成する。“指定域ダンプ・タスク・データ・テー
ブル”(MJSD TDT)を2つの手順によって作成する(詳
細は、付録参照)。
【0071】* (701)MJSD INITIATION P:
“誤り処理プログラム”環境内の“タスク・データ・テ
ーブル”(MJSD TDT)の初期設定。“パブリック・デー
タ・テーブル”(MJSD PDT)は、“誤り処理プログラ
ム”の直接制御の下にあり、アプリケーションによって
定義されないのもとする。 * (702)MJSD ADDITION P :定義された“タ
スク・データ・テーブル”(MJSD TDT)、または“パブ
リック・データ・テーブル”(MJSD PDT)内の、新規な
“データ・フィールド記述”(MJSD DFD)に追加され
る。
【0072】静的記憶域へのデータ記述は、コード実行
の最初に、1回に限り入力される。記憶上の理由から、
“共通ファミリー”(MJSD FAMILY 00) は、他に先駆
けて定義される。
【0073】− ステップ502:安定状態で、“特
定ファミリー”はコードのキーポイント(KP X) におい
て前後して活動化(703)される。“タスク”は、
“指定域ダンプ活動化テーブル”(705)(MJSD A
T) 内の“ファミリー”識別パラメータ(704)を更
新することによって、正しい“ダンプ・ファミリー”を
選択する。このテーブルは、“タスク”環境内におかれ
ており、そのアクセスは、“誤り処理プログラム”(7
11)と共用される。
【0074】− “タスク”は、そのコードの実行
中、所定期間にわたって、追加の記憶域を要求する。こ
の動的記憶域に記憶されたデータについては、割振り継
続期間中、宣言(707)することができる。その後テ
ーブル内の入力を、以下の手順によって削除する: * (708)MJSD DELETE P :“タスク・データ
・テーブル”(MJSD TDT 内の、“データ・フィールド記
述”(MJSD DFD)を除去する。
【0075】− ステップ503:“重誤り”が発生
すると(709)、“タスク”は、動作制御を失なう。
“制御プログラム”(710)は、誤りを検出して“誤
り処理プログラム”(711)を呼び出し、適切なデー
タの捕獲と報告とを管理する。
【0076】− ステップ504:“誤り処理プログ
ラム”(711)は、故障“タスク”を識別して、最後
のキーポイントで活動化された“共通ファミリー” (MJ
SD FAMILY 00) (712)と“特定ファミリー”(MJ
SD FAMILY XX)(704)との識別を、“活動化テー
ブル”(MJSD AT) (705)に読み込む。“データ・
フィールド記述”(MJSD DFD)(713)に内蔵された
記述から、正しい“共通及び特定データ”(714)
を、“タスク”記憶空間から検索する。固定的に活動化
された“ファミリ−”を有する、“パブリック・データ
・テーブル”(MJSD PDT)に内蔵された記述から、“パ
ブリック・データ”を検索する。“パブリック・デー
タ”の大半は、“タスク”によって宣言されたものでは
なく、これらの捕獲は“タスク”の限定された空間をオ
ーバーランする。それらの選択及び捕獲は“誤り処理プ
ログラム”の全責任下で行われるので、“システム・デ
ータ”は“タスク・データ・テーブル”(MJSD TDT)に
記述されない。検索された全データは、“誤り処理プロ
グラム”環境の専用区域に転送して、“ダンプ”処理中
に“制御プログラム”によって凍結されたアプリケーシ
ョン資源を可能な限り早くリリースする。
【0077】− ステップ505:“誤り処理プログ
ラム”は、“重誤り”が検出されると即座に、予め記述
された“誤り通知”処理に従って、“軽誤り”と“重誤
り”とを作成して報告する。
【0078】第2段階において、検索された全データを
“ダンプ”ファイルでフォーマット化して、本発明の目
的ではない古典的な方法で報告する。本願の場合、以前
に報告された“軽誤り”記録は、保守サブシステムに対
し報告するべき待機中の“指定域ダンプ・ファイル”の
存在を通知する。誤り“通知”記録と“指定域ダンプ”
とは特定標識によって相関され、保守サブシステム・レ
ベルにおける問題を判別し易くする。
【0079】“重誤り通知”と“指定域ダンプ”とは、
多重タスク操作及び多重処理環境にとりわけ適合してい
る。図6に示すと共に、以下に説明するシステムは、本
発明を実行できる型のコンテキストに典型的なものであ
る。このデータ処理システムは、以下の要素によって構
成される。 − 外部操作卓と保守システム(601):構成、変
更管理及び問題分析等を行う。
【0080】− サブシステム(603):それぞれ
以下の特徴を有する: * 32ビットのマイクロプロセッサ INTEL8
0486、 * リアル・タイム動作モード、 * 多重タスク操作システム(100以上の“タス
ク”を並列処理する)、 * 頁付仮想記憶、 * 記憶域の動的割振り、 * 12メガバイトの記憶容量。 − データ・バス(602):10セット以上までの
サブシステムを接続する。
【0081】システム全体では、約2分の百万本のコー
ド線を表す。プログラム例外は、プロセッサ80486
に特有であり、INTELプログラマ参照マニュアル
(INTEL Probrammer's Reference Manual)に詳細が記載
されている。これらは、プロセッサ80486が命令実
行中に検出した“重誤り”状態を処理する。サブシステ
ムが捕獲した全データを操作卓に対し分析のため報告す
る。
【0082】以下の数値は、本発明環境の特徴である。 − “軽誤り通知”: * 誤りコードの最大データ・サイズ:2キロバイト
/記録。 − “重誤り通知”: * “タスク”当りの最大“ファミリー”数:64、 * “タスク”当りの最大“データ・フィールド記
述”数:145、 * 最大データ・サイズ:10キロバイト(5個の2
キロバイト誤り記録)。 − “指定域ダンプ”: * アプリケーションに許された目標ダンプ・サイ
ズ:300キロバイト以下(“共通データ”および“特
定データ”)、 * “タスク”当りの最大ダンプ“ファミリー”数:
16、 * “ファミリー”当りの最大“データ・フィールド
記述”数:1024。
【0083】観察所見:“重誤り”処理は、全オペレー
ティング・システムに適している。“重誤り通知”およ
び“指定域ダンプ”に対して予め定義されたような、
“タスク”内のコードの区画は、特に多重タスク操作モ
ードに適している。独立アプリケーションにおけるこの
セグメント化は、80486のような多重タスク操作プ
ロセッサの組織に収束する。アプリケーションのアーキ
テクチャに与える“重誤り”処理の衝撃は、非常に限ら
れており、再使用または多原始コードを適合し易くす
る。本発明に対して必要なコードの開発は、好ましく
は、複雑かつ大量でソフトウェア集約的システムの作成
の適した、ADA,C/C++等のような高度に構造化
又は階層化(structured) され、強固に類型化(typed)
された言語の使用が求められる。
【0084】[付録]“重誤り通知”および“指定域ダ
ンプ”処理に関連する特定手順の詳細を以下に説明す
る。:重誤り通知 〔MJEN INITIATION P 〕 − 機能(FUNCTION) :
【0085】この手順は、“タスク”によって呼び出さ
れ、“重誤り”の場合に収集されるデータの宣言に使用
される論理空間を構成する。“重誤りタスク・データ・
テーブル”(MJEN TDT)と称するこの論理空間は: * 各“タスク”に対して固有であり、 * “誤り処理プログラム”環境に置かれ、 * 捕獲するべきデータ・フィールドの記述を内蔵す
る、“重誤りファミリー”(MJEN FAMILY) と称するい
くつかの副区域に分割される。
【0086】各タスクの特定ニーズに記憶資源を適合さ
せるため、動作状態にする前に、“ファミリー”(MJEN
FAMILY) および“データ・フィールド記述”(MJEN
DFD)の数が、実用的コードによって宣言されなければな
らない。 − 入力パラメータ(INPUT PARAMETERS) :コード
は、一連の入力パラメータにより、MJEN INITIATION
P 手順を呼び出す: * MJEN TDT :加入“タスク”に関連する“重誤り
タスク・データ・テーブル”の識別、 * MJEN FAMILY NUMBER: “タスク”によって加入
された“重誤りファミリー”(MJEN FAMILY)の数、 * MJEN DATA FIELD DESCRIPTION NUMBER:
“タスク”によって加入された“データ・フィールド記
述”(MJEN DFD)の総数。
【0087】− 同期出力パラメータ(SYNCHRONOUS
OUTPUT PARAMETERS): * MJEN FAMILIES NUMBER ACK :実際にタスクに
帰属する“重誤りファミリー”(MJEN FAMILY)の数。
これらの“ファミリー”の識別は、零から始まる一連の
連続値として定義される、 * MJEN DFD NUMBER ACK :実際にタスクに帰属
する“データ・フィールド記述”(MJEN DFD)の数。こ
れは、所望時間に使用できる記憶域によって決まる、 * MJEN RETURN CODE:起動手順の結果による戻り
コードOKまたはKO。 − 非同期出力パラメータ(ASYNCHRONOUS OUTPUT PA
RAMETERS) :* なし。
【0088】〔MJEN ADDITION P 〕 − 機能:本手順は、“タスク・データ・テーブル”
(MJEN TDT)の構成後に呼び出され、“重誤り”の場
合、“タスク”が捕獲したいデータの記述を“ファミリ
ー”(MJEN FAMILY) に記憶する。 − 入力パラメータ(INPUT PARAMETERS) :コードは
一連の入力パラメータにより、MJEN ADDITION P 手順
を呼び出す: * MJEN TDT :加入“タスク”に関連する“重誤り
タスク・データ・テーブル”の識別、
【0089】* MJEN ERROR RECORD NUMBER:宣
言されたデータ・フィールドを含み得る“重誤り記録”
の数、 * MJEN FAMILY:以下に定義されたデータ・フィー
ルドの記述を受ける様に選択された“重誤りファミリ
ー”(MJEN FAMILY) 、 * MJEN DFD DESCRIPTION :予め定義された“重
誤りファミリー”(MJEN FAMILY) に入力される“デー
タ・フィールド記述”: ・ アドレス、 ・ 名前、 ・ 大きさ。
【0090】− 同期出力パラメータ(SYNCHRONOUS
OUTPUT PARAMETERS): * MJEN DFD IDENTIFICATION:手順によって戻さ
れた、新規加入“データ・フィールド記述”(MJEN DF
D)の識別、 * MJEN RETURN CODE :動作結果による戻りコー
ドOKまたはKO。 − 非同期出力パラメータ(ASYNCHRONOUS OUTPUT PA
RAMETERS) :* なし。
【0091】〔MJEN DELETE P 〕 − 機能:この手順を呼び出して、“ファミリー”か
ら“データ・フィールド”を除去する。 − 入力パラメータ(INPUT PARAMETERS) :コード
は、一連の入力パラメータでMJEN DELETE P を呼び出
す: * MJEN TDT :データ・フィールドの除去を求める
“タスク”に関連する“タスク・データ・テーブル”の
識別、 * MJEN FAMILY:“データ・フィールド”を除去す
べき“誤り通知”ファミリー。特定値は、全“ファミリ
ー”の完全消去要求をしめす、 * MJEN DFD IDENTIFICATION:“ファミリー”か
ら除去する“データ・フィールド記述”の識別。特定値
で、同一“ファミリー”の全入力を削除することができ
る。
【0092】− 同期出力パラメータ(SYNCHRONOUS
OUTPUT PARAMETERS): * MJEN RETURN CODE:動作結果による戻りコード
OKまたはKO。 − 非同期出力パラメータ(ASYNCHRONOUS OUTPUT PA
RAMETERS) : * なし。
【0093】重誤り指定域ダンプ 〔MJSD INITIATION P ] − 機能:本手順は、“タスク”によって呼び出さ
れ、“重誤り”の場合に収集するデータの宣言に使用さ
れる論理空間を構成する。“重誤りタスク・データ・テ
ーブル”(MJSD TDT)と称するこの論理空間は: * 各“タスク”に対し固有であり、 * “誤り処理プログラム”環境に置かれ、 * 捕獲するべきデータ・フィールドの記述を内蔵す
る、“重誤りファミリー”(MJSD FAMILY) と称する、
ある数の副区域に分割される。
【0094】記憶資源を各タスクの特定ニーズに適合さ
せるため、動作状態にする前に、“ファミリー”(MJSD
FAMILY) の数および“データ・フィールド記述”(MJ
SD TDT)の数を実用型コードにより宣言しなければならな
い。 − 入力パラメータ(INPUT PARAMETERS) :コードは
一連の入力パラメータにより、MJSD INITIATION P 手
順を呼び出す: * MJSD TDT):加入“タスク”に関連する“重誤り
タスク・データ・テーブル”の識別、 * MJSD FAMILIES NUMBER:“タスク”によって加
入された“重誤りファミリー”(MJSD FAMILY) の数、 * MJSD DFD NUMBER :“タスク”によって加入さ
れた、“データ・フィールド記述”(MJSD DFD)の総
数。
【0095】− 同期出力パラメータ(SYNCHRONOUS
OUTPUT PARAMETERS): * MJSD FAMILIES NUMBER ACK :実際にタスクに
帰属する“重誤りファミリー”(MJSD FAMILY)の数。
これらファミリーの識別は、零から始まる一連の連続値
として定義される、 * MJSD DFD NUMBER ACK :実際にタスクに帰属
する“データ・フィールド記述”(MJSD DFD)の数。こ
の数は、所望時間に使用できる記憶域によって決まる、 * MJSD RETURN CODE:起動手順の結果による戻り
コードOKまたはKO。 − 非同期出力パラメータ(ASYNCHRONOUS OUTPUT PA
RAMETERS) : * なし
【0096】〔MJSD ADDITION P 〕 − 機能:この手順を呼び出して、“ファミリー”に
“データ・フィールド”を追加する。 − 入力パラメータ(INPUT PARAMETERS) :コード
は、一連の入力パラメータにより、MJSD ADDITION P
を呼び出す: * MSDN TDT :サービスを要求する“タスク”に関
連する“タスク・データ・テーブル”の識別、
【0097】* MJSD TYPE:宣言された“データ・
フィールド”については、“共通”、“特定”または
“パブリック”のいずれにもすることができる。“パブ
リック”とは、“データ・フィールド”が実行された全
てのダンプに含まれるべきことを意味する。その記述
は、“誤り処理プログラム”によって管理された“パブ
リック・データ・テーブル”に入力される。“特定デー
タ・フィールド”及び“共通データ・フィールド”は、
宣言用の“タスク”の“タスク・データテーブル”(MJ
SD TDT )に入力される、 * MJSD FAMILY:“データ・フィールド”が指定さ
れたダンプ“ファミリー”。同時に、1つの“ファミリ
ー”がダンプされる。 * MJSD DFD:予め宣言されたファミリーに指定さ
れた“データ・フィールド記述”(MJSD DFD): ・ 記憶域の“データ・フィールド”のアドレス、 ・ フィールドの大きさ。
【0098】− 同期出力パラメータ(SYNCHRONOUS
OUTPUT PARAMETERS): * MJSD DFD IDENTIFICATION:手順によって戻さ
れた、新規加入“データ・フィールド記述”(MJSD DF
D)の識別、 * MJSD AVAILABLE SIZE:認定された最大長さと
比較したダンプ“ファミリー”の、利用できる残余の大
きさ、 * KJSD RETURN CODE:動作の結果による戻りコー
ドOKまたはKO。 − 非同期出力パラメータ(ASYNCHRONOUS OUTPUT PA
RAMETERS) : * なし。
【0099】〔MJSD DELETE P 〕 機能:この手順を呼び出して、“ファミリー”から“デ
ータ・フィールド”を除去する。 − 入力パラメータ(INPUT PARAMETERS) :コード
は、一連の入力パラメータでMJSD DELETE P 手順を呼
び出す: * MJSD TDT:データ・フィールドの除去を要求す
る“タスク”に関連する“タスク・データ・テ−ブル”
の識別、 * MJSD FAMILY:“データ・フィールド”を除去す
べき“ダンプ”ファミリー。特定値は、全“ファミリ
ー”の完全消去の要求を示す、 * MJSD DFD IDENTIFICATION:“ファミリー”か
ら除去すべき“データ・フィールド記述”の識別。特定
値により、同一“ファミリー”の全入力を削除すること
ができる。
【0100】− 同期出力パラメータ(SYNCHRONOUS
OUTPUT PARAMETERS): * MJSD RETURN CODE:動作結果による戻りコード
OKまたはKO。 − 非同期出力パラメータ(ASYNCHRONOUS OUTPUT PA
RAMETERS) : * なし。
【0101】
【発明の効果】本発明は以上説明したように構成して、
効果的且つ非常に簡単なデータ選択方法を提供して、重
誤り発生時に、データ処理システムの性能及び資源に対
する衝撃を最小に維持しつつ、ソフトウェアに誤動作を
検出除去させるようにしたことにより、その可用度、品
質及び保守性を高める事ができ、その結果、より重要か
つ複雑なプログラムの開発、テスト及び保守を容易にす
ることができた。
【図面の簡単な説明】
【図1】一般に使用されている異なる型のデバッグ・ツ
ールの主要特徴、および大域データ捕獲方式のコンテキ
ストにおける本発明の位置を示す図
【図2】本発明による、“重誤り通知”処理で用いる
“タスク・データ・テーブル”の説明用構成図
【図3】本発明による、“タスク・データ・テーブル”
に内蔵された“データ・フィールド記述”の説明用構成
【図4】本発明による、“重誤り通知”の全体的機構の
説明用構成図
【図5】本発明による、データ宣言及び捕獲処理の基本
的動作の説明用構成図
【図6】特に本発明の実行に適した、データ処理システ
ムの構成図
【図7】本発明による、“重誤り指定域ダンプ”の全体
的機構の説明用構成図
【符号の説明】
200 “タスク・データ・テーブル” 206 “ファミリー” 208 “記述” 403、703 “活動化特定ファミリー” 405、705 “活動化テーブル” 409、709 “重誤り” 411、711 “誤り処理プログラム”
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ハーブ・パーリント フランス国、06800、キャグネス−サー− マー、ドメイン・デュ・ループ、1’アー チュバイ−エイ、レジデンス、(番地な し)

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 専用の記憶空間が付与され、制御プログ
    ラムの命令で実行する少なくとも1つのタスクで作動す
    るデータ処理システムの作動中、ソフトウェア例外条件
    (重誤り) のデータを選択的に捕獲する方法であって、 各タスクに対し、一定数のサブセット(ファミリー)に
    分割されたデータ・テーブル(タスク・データ・テーブ
    ル)を動的に定義し、 タスク実行開始時に、タスク記憶域に固定定義され、タ
    スクが予期した重誤りに関連するデータ・フィールドを
    各サブセットに一回記述し、 前記タスクの実行に、一時記憶域の割振りによって動的
    に定義され、タスクによって予期された例外条件(重誤
    り)に関連するデータ・フィールドを各サブセットに記
    述し、 コード中の各潜在的例外条件において、各タスクに対し
    て固有の活動化テーブル中の適切なサブセットを選択
    し、 例外条件を、その発生時に検出し、故障タスクを識別
    し、 タスクのレベルより高い優先レベルが付与され、かつタ
    スク記憶域に対するアクセスが認められた誤り処理プロ
    グラム・コードに対し操作の制御を移行し、および、 故障タスクに関連する活動化テーブルにおいて、選択さ
    れた最後のサブセットに含まれた記述から、前記誤り処
    理プログラム・コードによって適切なデータ・フィール
    ドを検索する、各工程から成ることを特徴とする選択的
    データ捕獲方法。
  2. 【請求項2】 前記タスクに割振られた一時記憶域の解
    放後、動的に定義されたデータ・フィールドのタスク・
    テーブルに対する記述を削除することを特徴とする請求
    項1記載の選択的データ捕獲方法。
  3. 【請求項3】 各タスクに対して1つ宛有するタスク・
    データ・テーブルに記述されたデータ・フィールドは、
    潜在的プログラム例外と、対応する故障要素とを識別す
    る全情報を含むと共に、プログラム例外発生時に、保持
    サブシステムに対し誤りを通知するオブジェクトである
    ことを特徴とする請求項1又は2記載の選択的データ捕
    獲方法。
  4. 【請求項4】 各タスクに対して1つ宛有するデータ・
    テーブルに記述されたデータ・フィールドは、操作の一
    般的コンテキスト内にある潜在的プログラム例外を理解
    するに必要な全情報を含むと共に、重誤り発生時に、保
    守サブシステムに対しファイルの転送を実行するオブジ
    ェクトであることを特徴とする請求項1、2、又は3記
    載の選択的データ捕獲方法。
  5. 【請求項5】 各データ・テーブル(タスク・データ・
    テーブル)は、一方の側に、前記タスクで識別された潜
    在的プログラム例外全てに共通なデータ・フィールドの
    記述を有する固定選択された共通サブセット(ファミリ
    ー)を含み、他方の側に、各潜在的例外条件に特有のデ
    ータ・フィールドを有し、同時に1つだけ選択される特
    定サブセットを含むようにしたことを特徴とする請求項
    1、2、3、又は4記載の選択的データ捕獲方法。
  6. 【請求項6】 システムにおける全タスクおよび全プロ
    グラム例外に対する共通インタレストのデータ・フィー
    ルドは全タスクで共用され、固定選択された固有のサブ
    セットを含む共用テーブルに記述されることを特徴とす
    る請求項1、2、3、4、又は5記載の選択的データ捕
    獲方法。
  7. 【請求項7】 前記データ・テーブルと前記共用テーブ
    ルとは、誤り処理プログラム・コードの記憶域空間に位
    置付けされ、各活動化テーブルはその関連タスクの記憶
    域空間にあることを特徴とする請求項1、2、3、4、
    5、又は6記載の選択的データ捕獲方法。
  8. 【請求項8】 前記データ・テーブルの定義付け及びデ
    ータ・フィールドの記述の入力及び削除を、全タスクに
    共通のサービス手順によるタスクによって同期的に実現
    することを特徴とする請求項1、2、3、4、5、6、
    又は7記載の選択的データ捕獲方法。
JP5202091A 1992-09-11 1993-07-23 ソフトウェア例外条件に対する選択的データ捕獲方法 Expired - Lifetime JP2557180B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR92480129.3 1992-09-11
EP92480129A EP0586767A1 (en) 1992-09-11 1992-09-11 Selective data capture for software exception conditions

Publications (2)

Publication Number Publication Date
JPH06208486A true JPH06208486A (ja) 1994-07-26
JP2557180B2 JP2557180B2 (ja) 1996-11-27

Family

ID=8211800

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5202091A Expired - Lifetime JP2557180B2 (ja) 1992-09-11 1993-07-23 ソフトウェア例外条件に対する選択的データ捕獲方法

Country Status (3)

Country Link
US (1) US6182243B1 (ja)
EP (1) EP0586767A1 (ja)
JP (1) JP2557180B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732005A (en) * 1995-02-10 1998-03-24 International Business Machines Corporation Single-precision, floating-point register array for floating-point units performing double-precision operations by emulation
IT1275710B1 (it) * 1995-03-31 1997-10-17 Alcatel Italia Metodo e sistema per la gestione dinamica in tempo reale della memorizzazione di errori di cui non si conoscano a priori quantita'
US5724516A (en) * 1995-09-06 1998-03-03 International Business Machines Corporation System for dynamically creating and retrieving formatted dump data by setting value in dump object indicating that the dump agent is to generate formatted dump data
US6425093B1 (en) * 1998-01-05 2002-07-23 Sophisticated Circuits, Inc. Methods and apparatuses for controlling the execution of software on a digital processing system
JP3658514B2 (ja) * 1999-01-28 2005-06-08 富士通株式会社 帳票プログラム作成装置
US6543010B1 (en) * 1999-02-24 2003-04-01 Hewlett-Packard Development Company, L.P. Method and apparatus for accelerating a memory dump
GB2348304B (en) * 1999-03-24 2003-07-09 Ibm Optimising Device Driver Debug Tracing
US6782530B1 (en) * 1999-04-05 2004-08-24 Microsoft Corporation Method of ranking messages generated in a computer system
US6427232B1 (en) * 1999-06-10 2002-07-30 International Business Machines Corporation Functional debugger for debugging software programs
US6630946B2 (en) 1999-11-10 2003-10-07 Symantec Corporation Methods for automatically locating data-containing windows in frozen applications program and saving contents
US6631480B2 (en) 1999-11-10 2003-10-07 Symantec Corporation Methods and systems for protecting data from potential corruption by a crashed computer program
US6662310B2 (en) * 1999-11-10 2003-12-09 Symantec Corporation Methods for automatically locating url-containing or other data-containing windows in frozen browser or other application program, saving contents, and relaunching application program with link to saved data
US6988141B1 (en) * 2000-05-17 2006-01-17 Ricoh Company, Ltd. Method and system of remote diagnostic, control and information collection using a dynamic linked library of multiple formats and multiple protocols with restriction on protocol
EP1381952A2 (en) * 2000-09-08 2004-01-21 Supachill Technologies Pty Ltd Panic message analyzer
US6832342B2 (en) * 2001-03-01 2004-12-14 International Business Machines Corporation Method and apparatus for reducing hardware scan dump data
US6880113B2 (en) * 2001-05-03 2005-04-12 International Business Machines Corporation Conditional hardware scan dump data capture
US6779132B2 (en) * 2001-08-31 2004-08-17 Bull Hn Information Systems Inc. Preserving dump capability after a fault-on-fault or related type failure in a fault tolerant computer system
US7426719B2 (en) * 2001-11-29 2008-09-16 Microsoft Corporation Method and system for rewriting unwind data in the presence of exceptions
US6981264B1 (en) 2002-01-17 2005-12-27 Unisys Corporation Method for handling multiple program exceptions across heterogeneous systems
US7149962B1 (en) * 2002-03-01 2006-12-12 General Electric Railcar Services Corporation System and method for providing a gauge table
US6961874B2 (en) * 2002-05-20 2005-11-01 Sun Microsystems, Inc. Software hardening utilizing recoverable, correctable, and unrecoverable fault protocols
CA2393196C (en) * 2002-07-11 2005-10-04 Corel Corporation System and method for preflighting documents
US7062681B2 (en) * 2002-12-03 2006-06-13 Microsoft Corporation Method and system for generically reporting events occurring within a computer system
JP2004264970A (ja) * 2003-02-28 2004-09-24 Hitachi Ltd プログラム、情報処理装置、及び情報処理装置におけるログデータの出力方法
US7008935B2 (en) * 2003-03-03 2006-03-07 L'oreal Amine, amide, sulphonamide and carbamate derivatives of benzalmalonic salts and photoprotective cosmetic compositions comprised thereof
US7308609B2 (en) * 2004-04-08 2007-12-11 International Business Machines Corporation Method, data processing system, and computer program product for collecting first failure data capture information
US20060048012A1 (en) * 2004-08-30 2006-03-02 International Business Machines Corporation Context sensitive debug streams with output throttling controls
US20060179349A1 (en) * 2005-02-09 2006-08-10 Preemptive Solutions, Llc System and method for tracking exceptional states
US8230396B2 (en) * 2006-01-06 2012-07-24 International Business Machines Corporation Apparatus and method to debug a software program
US7698597B2 (en) * 2006-02-28 2010-04-13 International Business Machines Corporation Method of isolating erroneous software program components
US20080126828A1 (en) * 2006-06-07 2008-05-29 Janice Marie Girouard Dynamic enablement and customization of tracing information in a data processing system
US7836344B2 (en) * 2007-02-26 2010-11-16 International Business Machines Corporation Method for automatic dump assurance
US7725770B2 (en) 2007-04-01 2010-05-25 International Business Machines Corporation Enhanced failure data collection system apparatus and method
US8316448B2 (en) * 2007-10-26 2012-11-20 Microsoft Corporation Automatic filter generation and generalization
US8122436B2 (en) * 2007-11-16 2012-02-21 Microsoft Corporation Privacy enhanced error reports
US7493598B1 (en) 2008-01-26 2009-02-17 International Business Machines Corporation Method and system for variable trace entry decay
US8473919B2 (en) * 2008-01-31 2013-06-25 Ca, Inc. System and method for repeating program flow for debugging and testing
US8166464B2 (en) * 2008-06-27 2012-04-24 Microsoft Corporation Analysis and detection of soft hang responsiveness program errors
US7962803B2 (en) * 2008-09-30 2011-06-14 International Business Machines Corporation Apparatus, system, and method for multi-address space tracing
JP5440073B2 (ja) * 2009-09-30 2014-03-12 富士通株式会社 情報処理装置,情報処理装置の制御方法および制御プログラム
KR101684405B1 (ko) * 2010-04-22 2016-12-08 삼성전자주식회사 휴대용 단말기에서 에러 발생을 분석하기 위한 장치 및 방법
US8510523B2 (en) 2011-09-12 2013-08-13 Microsoft Corporation Memory dump with expanded data and user privacy protection
US8645763B2 (en) 2011-09-12 2014-02-04 Microsoft Corporation Memory dump with expanded data and user privacy protection
US8984336B1 (en) * 2012-02-20 2015-03-17 Symantec Corporation Systems and methods for performing first failure data captures
US20140188829A1 (en) * 2012-12-27 2014-07-03 Narayan Ranganathan Technologies for providing deferred error records to an error handler
US9176804B2 (en) * 2013-06-27 2015-11-03 International Business Machines Corporation Memory dump optimization in a system
US9317356B2 (en) * 2013-10-15 2016-04-19 Globalfoundries Inc. Device state capture during operating system dump
US9946592B2 (en) 2016-02-12 2018-04-17 International Business Machines Corporation Dump data collection management for a storage area network
IL264050B (en) 2018-01-01 2021-12-01 Rookout Ltd System and method for controlled extraction of information in computer networks
US10891181B2 (en) 2018-10-25 2021-01-12 International Business Machines Corporation Smart system dump
US11169904B2 (en) 2018-11-30 2021-11-09 International Business Machines Corporation Automatically initiating tracing of program code based on statistical analysis

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04134535A (ja) * 1990-09-26 1992-05-08 Nec Corp マルチタスクプログラムの例外情報採取機構

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4670835A (en) * 1984-10-19 1987-06-02 Honeywell Information Systems Inc. Distributed control store word architecture
US5241635A (en) * 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US5119377A (en) * 1989-06-16 1992-06-02 International Business Machines Corporation System and method for software error early detection and data capture
US5128885A (en) * 1990-02-23 1992-07-07 International Business Machines Corporation Method for automatic generation of document history log exception reports in a data processing system
DE69031538T2 (de) * 1990-02-26 1998-05-07 Digital Equipment Corp System und Verfahren zur Sammlung von Softwareanwendungsereignissen

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04134535A (ja) * 1990-09-26 1992-05-08 Nec Corp マルチタスクプログラムの例外情報採取機構

Also Published As

Publication number Publication date
US6182243B1 (en) 2001-01-30
JP2557180B2 (ja) 1996-11-27
EP0586767A1 (en) 1994-03-16

Similar Documents

Publication Publication Date Title
JP2557180B2 (ja) ソフトウェア例外条件に対する選択的データ捕獲方法
US8423718B2 (en) Low-overhead run-time memory leak detection and recovery
US20070250820A1 (en) Instruction level execution analysis for debugging software
US7877642B2 (en) Automatic software fault diagnosis by exploiting application signatures
US6959262B2 (en) Diagnostic monitor for use with an operating system and methods therefor
US20030145255A1 (en) Hierarchical multi-component trace facility using multiple buffers per component
US20130254748A1 (en) Partial Recording of a Computer Program Execution for Replay
JPH0432417B2 (ja)
US20040172219A1 (en) Diagnostic exerciser and methods therefor
TWI544410B (zh) 利用執行單步驟以進行編碼診斷
CN1115443A (zh) 微处理机故障记录
CN110955598B (zh) 一种内核态程序的断点处理方法及装置
US20070083792A1 (en) System and method for error detection and reporting
CN113268427B (zh) 一种针对二进制程序的崩溃分析方法及系统
US20100088546A1 (en) Statistical debugging using paths and adaptive profiling
JPH09503084A (ja) 実行中のリアルタイムシステムにおけるエラー分析用トレーサシステム
US7114097B2 (en) Autonomic method to resume multi-threaded preload imaging process
US6182244B1 (en) System and method for automatically initiating a tracing facility and dynamically changing the levels of tracing currently active
JPH02294739A (ja) 障害検出方式
CN113986622A (zh) Sdk异常的自检方法、装置、介质和计算设备
CN115114117B (zh) 数据记录方法和数据记录装置
Tsai et al. Low-overhead run-time memory leak detection and recovery
JP3459898B2 (ja) 組み込みシステムの障害情報トレーサ装置
JP2868114B2 (ja) 監視診断機能付計算機
CN112286804B (zh) 系统的调试方法、装置、设备和介质

Legal Events

Date Code Title Description
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees