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

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

Info

Publication number
JP2557180B2
JP2557180B2 JP5202091A JP20209193A JP2557180B2 JP 2557180 B2 JP2557180 B2 JP 2557180B2 JP 5202091 A JP5202091 A JP 5202091A JP 20209193 A JP20209193 A JP 20209193A JP 2557180 B2 JP2557180 B2 JP 2557180B2
Authority
JP
Japan
Prior art keywords
data
task
error
family
execution
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.)
Expired - Lifetime
Application number
JP5202091A
Other languages
English (en)
Other versions
JPH06208486A (ja
Inventor
ジーン・バート
ハーブ・パーリント
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

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 Notifica
tion) と呼ばれている。レイアウトおよびフォーマット
等のデータ記述は、一般に事前定義されたテーブルに記
憶されているが、そのテーブルの記入事項は、プログラ
ムの誤り検出コードによって選択される。この従来技術
の代表例は、米国特許第5、119、377号“コンピ
ュータ・プログラムの誤り検出及び診断方法及びシステ
ム”に記載され、開示されている。そのプロセスの主要
な利点は以下の通りである。
【0015】すなわち、 − 報告済み情報はリアル・タイム・モードで処理
し、可視化し、および解釈することができる。 − 誤りの診断に必要なデータは、誤りが現れる最初
に捕獲される。問題は再現されるべきではない。 − 誤りを分離できると共に、恒久的損傷発生前に、
その伝搬を停止することができる。 − 報告データは、解決するべき誤りに限定され、こ
れによってデータの報告及び問題の分離と修正が容易に
なる。 − このプロセスは、誤り検出時に条件付で呼び出さ
れるだけであり、前記のような条件が発生するまで、完
全に遊休状態である。コンピュータ資源およびプログラ
ム性能に与える影響は最小限に留まる。 − プログラム自体の要求に応じて、誤りコンテキス
トに限定された指定域ダンプ(Selective Dump) を、自
動的にトリガ及び検索することができる(任意型ダンプ
(Unsollicited Dump))。
【0016】− 捕獲し報告されたデータに、固定ト
レース(Permanent Traces) を入れることができる。内
部トレース(Internal Traces)とも呼ばれるこれらの
“トレース”は、コードの一体的部分であり、プログラ
ムのプロセスに従って周期的に更新することにより、疑
いがかかったコードを動的に観察できるようにする。 − コード進行のある特定段階において、または事象
発生の時にデータを報告するためにプロセスは事象にま
で及ぼすことができる。
【0017】“誤り通知”プロセスは、コードの全ての
部分が、制御を回復し、または故障要素による影響を最
小にするためにとられる処置に関係する誤りを検出し記
述することができることを意味している。これは全入力
(内部的なものも外部的なものも)の組織的チェック、
ハードウェア・チェッカの使用、およびコードのキーポ
イントにおける機能テスト及びタイマ等の組み込みを意
味する。
【0018】この分析段階において、誤りを2つの異な
る型に分類しておくのが得策であると思われる。 − 軽誤り(Minor Errors) :プログラム自体で誤り
または故障を検出し、専用の誤りコードによって関連す
る適切情報を収集する。 − 重誤り(Major Errors) :プログラムは操作の制
御を失い、もはやそれ自体が誤り又は故障を検出するこ
とができない。即ち、外部システム(オペレーティング
・システム、制御プログラム、データ・プロセッサ等)
によって誤りを検出し、故障プログラムに依存せずに、
適切な情報を収集し報告する。除算誤り、無効操作コー
ド、ループ、浮動小数点誤り等の例外条件は、重誤りの
部類に属する。
【0019】しかしながら、この従来技術において、
“重誤り”は、独立したシステムによる、選択的データ
捕獲の問題を提起する。すなわち、故障プログラムは、
もはや報告するべき有用なデータを記述できなくなり、
上記で詳細に説明した" 誤り通知" 方法、はこの場合、
作動不能となる。特定のガイド・ラインがないため、外
部コードは大域“ダンプ”または外部“トレース”によ
って、入手可能な全てのデータを区別することなく収集
するよう制限される。ダンプまたはトレース使用法に特
有な欠点に加え、この状況は以下を禁止している。 − リアル・タイムの問題調査、 − データの自動的分析、 − 特定の回復動作のトリガ。
【0020】従って、本発明の目的は、“重誤り”発生
時に、データ処理システムの性能及び資源に対する影響
を最小にして、収集情報の高品質及び保全性を確保す
る、効果的かつ非常に簡単なデータ選択方法を提供する
ことにある。
【0021】
【問題を解決するための手段】データ捕獲には、関係の
あるデータを記述して、故障プログラムの制御が失われ
る前に、収集する手段を含む。好ましい実施例では、プ
ログラムは、全データをリストに予防的に宣言し、重誤
りの場合はこれらを捕獲する。第2段階として、コード
のキーポイントにおいてリスト内の関係のあるデータ・
セツトが選択される。誤り発生時に、予め宣言及び選択
されたデータのみが、誤りを報告する役割を持つ外部コ
ードによって収集される。
【0022】本発明は、大域データの捕獲方法に関し、
特に“誤り通知”及び“指定域ダンプ”処理に関するも
のである。本発明の前記目的は、効率の良い高品質のソ
フトウェアの開発及び保守に貢献するものである。
【0023】
【実施例】誤り処理の一般的プロセスは、以下の工程で
要約することができる。 − リアル・タイムの誤り処理プロセス: * 誤り検出、 * データ捕獲、 * 誤り回復、 * プロセスの再開始 − 繰延べ誤り処理プロセス: * 問題の再現、 * 誤りの分離および調査、 * 修正。
【0024】図1は、大域データ捕獲方法の観点から本
発明の位置を示す図である。その方法は、以下の事項に
よって記述することができる制約の関数で成り立ってい
る− 資源消費: * 記憶域占有、 * プロセッサ時間、 * データ・スループット − 顧客性能: − データ入手可能度及びアクセス: * リアル・タイムで、 * 繰延べ時間で − 情報の品質及び保全性: − 問題の再現能力:
【0025】これらの要件を満足するいろいろな方法の
能力は、2つの基準、すなわち選択性と活動性(それぞ
れ図面の縦及び横軸線上に現れる)に基づいて測定する
ことができる。選択性とは、一定時間で最も関係のある
情報を標的にするツールの能力を意味する。他方、活動
性とは、所定の時間的間隔において、1つのコードの進
行およびその実行経路を追跡する能力を表す。
【0026】共通的に使用されている異なるデータ捕獲
ツールの主要特徴は以下の通りである。 − 大域ダンプ(Global Dump):定義によって、全記
憶の捕獲は誤り調査のため、低選択性モード(数メガバ
イトの生成データまで)で行われる。しかし、それは制
御プログラムまたはプロセッサが動作不能状態になって
システムの全面的な再開始を必要とするようになった場
合の唯一解決策を表しうるものである。
【0027】− 軽誤り指定域ダンプ:データ捕獲
は、誤りコードに関係する記憶に限定される。問題の特
定には、以下に示す2種類のデータが特に有益である: * システム・データ:コード環境を構成すると共
に、システムにおける誤りの総括的理解に寄与するデー
タ:システム・トレース、レジスタ、スタック等・・・ * アプリケーション・データ:誤り発生時に、コー
ド自体によって定義される機能データ。
【0028】“指定域ダンプ”中に収集されるデータ量
は、解決すべき問題の複雑さに応じて、十から数百キロ
・バイトまで変えることができる。“任意型ダンプ”
は、コード自体によってプロセッサ内から要求される
が、それに対する応答型ダンプは操作卓または任意の外
部保守システムによって選択される。
【0029】− 内部トレース:コードに常駐するこ
とができ、これによってコードの実行を選択的かつ活動
的に観察することができるが、システム性能への影響を
制限するため、内容は、極最小に限定される。内部トレ
ースは、故障プログラム自体によって管理され、通常
“誤り通知”(軽誤りまたは重誤り)または“指定域ダ
ンプ”機構によって報告される。
【0030】− 外部または応答型トレース:これら
は外部の構成要素によって選択されるが、当然ながら、
問題を再現できる条件の下で、繰延べモードにより、コ
ードの進行を総括的に調査可能にするという意味におい
て“内部トレース”を完結する。
【0031】− 軽誤り通知:ソフトウェアまたはハ
ードウェア上の誤り、恒久的または一時的誤り等の誤り
を検出する各コードは、ことの推移の理解に必要な第1
の入手可能データにより、状況を識別することを機能と
する誤り記録を作成かつ報告する責任がある。その記録
は、一般に下記で構成される。すなわち、 * 日時、誤りの型等のある種の一般的情報を有す
る、故障要素(あるとすると、ソフトウェアまたはハー
ドウェア)の識別、 * プログラム自体に捕獲された誤りデータ。これら
は、誤ったアプリケーションの文脈に特有であり、通
常、第1誤りデータ捕獲(First Error Data Capture)
を表すFECDという総称語で述べられる。性能面の制
約から、誤り記録の大きさは一般に数百バイトに限定さ
れ、情報を完結させるには、たいてい“指定域ダンプ”
が必要である。
【0032】− 重誤り通知:故障プログラムは、も
はや操作の制御権を持たないため、誤りは、拡張権限が
与えられた外部コードによって検出される。このコード
は、作動不能となる前に、プログラムによって予め宣言
されたデータによる誤り記録を報告する。この重誤り記
録は、“軽誤り”の場合に報告されたものと類似する
が、故障プログラムの代わりに誤りデータが捕獲される
ため、その誤りデータは、正確性および選択性が低いと
いう点で相違している。大抵の場合、問題の識別及び分
離には、1キロバイト以上のデータが必要である。本発
明の目的は、“重誤り”発生前に、データを記述し、故
障発生の場合、外部の誤りコードによってそれを選択的
に捕獲する方法を提供するものである。
【0033】− 重誤り指定域ダンプ:この処理は、
誤りの識別だけでなく、自動警告または即時回復のトリ
ガにも使用され、“重誤り通知”処理によって収集済み
の情報を完結させると共に、操作卓または任意の問題管
理システムから、繰延べ時間において問題を広範に調査
する権限が与えられる。データの宣言及び選択の原理
は、“重誤り通知”処理又はプロセスで実行されたもの
に類似している。データ報告方法自体は、従来技術であ
るため、その詳細は説明しない。
【0034】図2は、本発明による“重誤り通知”処理
で使用されるタスク・データ・テーブルを示している。
【0035】一般に、システム資源をアプリケションの
特殊ニーズの機能において最適化するため、コードはタ
スクとよばれる論理サブセットに分割される。“タス
ク”とは、全アプリケーションの実行を管理する制御プ
ログラムによってそのようなものと認識された独立構成
要素である。各“タスク”は、特定アプリケーションを
表すものと想定され、システム内のある種の特定資源に
帰属される。“重誤り通知”は任意のタスクに専用の処
理であり、“誤り処理プログラム”と称する全システム
に共通な外部コードが、“タスク”自体で予め作成した
情報により、故障“タスク”に代わって誤り記録を構築
できるようにする。
【0036】この記録は、“重及び軽誤り”に共通する
チャネルによって報告される。常時動作状態にするた
め、この方法は、問題が発生した場合に、その理解に要
するデータを記述するパラメータをコードのキーポイン
トにおいて更新することを必要とする。各タスクは、重
誤りタスク・データ・テーブル(MJEN TDT)と称するテ
ーブル内の自己データに責任を持つ。それぞれの“タス
ク・データ・テーブル”(MJEN TDT)は、“誤り処理プ
ログラム”を共用しており、各タスクに対して固有であ
ると共に、捕獲するデータ・フィールドの記述を含む、
重誤りファミリー(MJEN FAMILY) と称するいくつかの
副区域に分割される。
【0037】性能上の理由から、 − 潜在的重誤りに付随する全データは、初期期間中
に" タスク・データ・テーブル"(MJEN TDT)に記述され
る。 − タスクによるテーブル内の関係のあるデータの選
択は、コードのキーポイントにおいて、選択テーブル(A
ctivation Table) (MJEN AT) と称する“誤り処理プロ
グラム" と共用される領域を正しいファミリ(MJEN FAMI
LY)で更新することにより容易に実現される。このテー
ブルは選択時に直接アクセスを可能にする“タスク”環
境におかれている。
【0038】記憶容量を制限するため、 − “タスク・データ・テーブル" (MJEN TDT)は、
タスクの正確な要件に従って動的に定義される。 − アドレス、寸法、名前などのデータの記述だけが
“タスク・データ・テーブル" (MJEN TDT)に投入され
る。 − 一時記憶空間に記憶されたデータは、割振り期間
の間に限り宣言され、その後削除される。
【0039】データ記述の保全性を保証するため、 − “タスク・データ・テーブル" (MJEN TDT)は、
誤り処理プログラム環境に置かれ、サービス手順に従
い、“タスク" により間接的にアドレス指定される。
【0040】データ処理システムにおいて、それぞれ特
定のデータ宣言モードを必要とする、一般に、2種類の
記憶域が“タスク" によって使用される。 − 静的記憶域は、各タスクの作成の時にシステムに
よって割振られる。静的記憶域のデータは、コード進行
の最初で、全“タスク・データ・テーブル”(MJEN TD
T)に一度だけ宣言される。 − 動的記憶域は コード実行中に“タスク”自体で
要求され、割振り時間中に、タスク・データ・テーブル
の動的データが一時的に宣言される。
【0041】“重誤り通知" 処理は、全体的に、仮説上
の問題に対するタスクの予測能力に基づいて行われる。
タスク以外には、未発生の誤りに対し選択するべき情報
の型及び量に関する最良の選択を実現できるものはな
い。
【0042】図2に示すように、“タスク・データ・テ
ーブル"(MJEN TDT)( 200)は、論理的に以下のよう
に構成される。 − (201)システムの記憶制約に従って、テーブ
ルを管理するのに要する全データを含むタスク・データ
・テーブル・ヘッダ : * (202)タスク・データ・テーブル識別 、 * (203)ファミリーの数、
【0043】* (204)テーブル内におけるデー
タ・フィールド記述の総数、 * (205)コードのバージョン、長さ、最終更新
などの内部データ、・・・。 − (206)零からNまでの番号で識別された“フ
ァミリー"(MJEN FAMILY)で、それぞれ、以下に示すも
のによって構成される: * (207)内部データを備えるファミリー・ヘッ
ダ、 * (208)誤り処理プログラムが正しいデータを
捕獲するのに要する全ての属性を備えるデータ・フィー
ルド記述(MJEN DFD)。
【0044】“選択(Activation) ”と呼ばれるもの
は、誤りが発生した場合に処理するために、正しい“フ
ァミリー" (MJEN FAMILY)の識別を用いて、“タス
ク”が“誤り処理プログラム”と共用するテーブルを更
新することである。“タスク”によって、“重誤り選択
テーブル" (MJEN AT) と呼ばれるこのテーブルに直接
アクセスすることにより、コード性能に与える選択処理
の影響を最小にすることができる。その代わり、本テー
ブルが“タスク”環境に置かれているという事実では、
誤り発生後の情報の総体的保全性は保証されず、ここに
示された解決策は性能と保護との妥協案に過ぎないの
で、実施の特定条件に従って修正することができる。
【0045】2つの型の“ファミリー”が使用される。
すなわち、 − 共通重誤りファミリー(MJEN FAMILY 00)また
はファミリー 零:常に活動状態であり、“タスク”に
記述されている全“重誤り”に共通するデータの記述に
対して予約されているものであり、同一情報に対する
“タスク・データ・テーブル”( MJEN TDT)への入力の
無駄を防止する。 − 特定重誤りファミリー(MJEN FAMILY XX) 。各
“重誤り”に対して、特定“ファミリー”が1つだけ付
随されている: 同時に1つだけを活動状態に置くこと
ができ、新しい選択“ファミリー”が以前の物と入れ替
わる。
【0046】最小で、1つだけの“ファミリー”、“共
通ファミリー"(MJEN FAMILY 00)が選択され、最大で
2つの“ファミリー”即ち“共通ファミリー”(MJEN
FAMILY 00)と選択された“特定ファミリー”(MJEN
FAMILY XX) が使用される。
【0047】図3は、本発明による“タスク・データ・
テーブル”に内蔵された“データ・フィールドの記述”
を説明した図である。
【0048】予め定義された各“ファミリー”(MJEN
FAMILY) は、以下の様に組織される。 − (301)内部データを備えるファミリー・ヘッ
ダ。 − (302)ファミリー識別。 − (303)データ・フィールドの記述、各々は下
記のものからなる: * (304)内部データを備えるデータ・フィール
ド記述ヘッダ、 * (305)データ・フィールド記述識別
【0049】* (306)誤り記録番号: これに
基づき、データ・フィールドが“誤り処理プログラム”
によって報告されなければならない。各活動“ファミリ
ー”に対して、5個までの誤り記録を付随させることが
でき、“タスク”は、各記入事項(付録 MJEN ADDIT
ION Pを参照)に対して、“データ・フィールド”を報
告するときに必要とされる記録の番号を指定する、 * (307)データ・フィールド識別:“タスク”
の記憶空間からのデータを検索するのに要する全パラメ
ータを備えている。すなわち、 ・ “タスク”の記憶空間の“データ・フィールド”
のアドレス、 ・ フィールドの長さ、 ・ 名前 ・・・。
【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)(40
5)を“ファミリー”で更新する(404)。エラーが
発生したときに生じる問題は“重誤り識別子”(40
6)と称する特定パラメータで記述される。
【0054】“タスク”は、そのコードの実行中に、所
定期間の間、追加記憶域を要求することができる。この
動的記憶域に記憶されたデータについては、割振りの期
間の間中、宣言(407)することができる。その後、
以下の手順に従って、テーブル内の入力を削除する: * (408)MJEN DELETE P :“タスク・データ
・テーブル”内の“データ・フィールド記述”の除去。
【0055】− ステップ503:“重誤り”が発生
すると(409)、“タスク”は動作制御を失う。“制
御プログラム”(410)は誤りを検出して、“誤り処
理プログラム”(411)を呼び出し、関係のあるデー
タを捕獲して報告する。“誤り処理プログラム”は、シ
ステム内の全“タスク”で共用される特定コードであ
り、以下の拡張特権が与えられる: * データ捕獲中の割り込みを許さない高優先レベ
ル、 * “タスク”の記憶空間に読み取るための拡張メモ
リ。
【0056】− ステップ504:“誤り処理プログ
ラム”は、故障“タスク”を識別し、故障が生じる前の
最後のキーポイントで選択された“共通ファミリー”
(MEJN FAMILY 00) (412)および“特定 ファミ
リー”(MJEN FAMILY XX)(404)の識別を“選択
テーブル”(MJEN AT) から読み取る。“データ・フィ
ールド記述”(MJEN DFD)(413)に内蔵されている
記述、長さ、アドレス、名前等から、正しいデータ(4
14)が、“タスク”の記憶空間から検索される。
【0057】− ステップ505:“誤り処理プログ
ラム”は“重誤り”が検出されると、即座に、自体の情
報“第1誤りデータ捕獲”(FEDC)と以下に示すような
最大の“システム・データ”を有する“軽誤り記録”を
作成して、これを報告する。 * 現行“タスク”の特徴、 * “タスク”環境を記述する情報、・・・。
【0058】第2段階において、該プログラムは、“選
択テーブル”( MJEN AT) から検索された“重誤り識別
子”(406)と、先に選択された“ファミリー”によ
って捕獲されたデータにより、“重誤り記録”を構築す
る。この記録は、“軽誤り”と同じ経路を介して報告さ
れる。しかし、“重誤り”にとっては、報告すべきデー
タ量(多くの場合、数百バイト対十キロバイト)がより
重要であることから、“重誤り記録”の大きさを、従来
の報告機構によって与えられる容量に適応させる必要が
ある。
【0059】転送時間および記憶容量等の性能上の理由
から、“重誤り記録”は、“軽誤り記録”の大きさを越
えない、数個の別個の記録に分割される。データ分割お
よび誤り記録構築要領は、各“タスク”の責任下にあ
り、“タスク”は各“データ・フィールド記述”の記入
事項でデータを報告するときに付さなければならない記
録番号を指定する(付録 MJEN ADDITIONAL P参
照)。これは、各活動状態の“特定ファミリー”に対し
て、“故障処理プログラム"(Fault Handler)が1乃至
5個の連鎖誤り記録を伴うことを意味している。これら
の全記録は周知の処理によって、特定相関標識と相関さ
れる。
【0060】“指定域ダンプ”処理に関する目標は以下
の考察に要約することができる。 − 繰延べモードで問題を詳細に調べるために“重誤
り通知”処理で既に収集された情報を完結する。捕獲さ
れたデータは、厳密には、誤りデータに限定されず、問
題とその文脈を理解し易くするための機能データを含む
ものである。 − “指定域ダンプ”の寸法を制限して、時間および
記憶面で、操作卓または保守サブシステムに対し転送し
易くする。 − コード性能に与える影響が最小で済むダンプする
べきデータを容易に宣言する方法を提供する。これは、
実用的コードにサービス機能を与え、ダンプするべき区
域を動的に定義すれば可能である。
【0061】− ダンプ保全性(Dump Integrity)の
保証:十分な優先レベルで作業することによって、“ダ
ンプ”処理の開始時に、アプリケーションがこれに割り
込まないようにする。
【0062】これらの制約によると、“指定域ダンプ”
処理は、“重誤り通知”処理に酷似する要領で組織され
る。これは以下を意味する。即ち、 − 捕獲及びダンプするべきデータを、アプリケーシ
ョン・コード自体が論理的かつ動的に記述する: * 第1段階で、アプリケーションは“タスク・デー
タ・テーブル”(MJSD TDT)と称するデータ空間を構成
し、ダンプするべきデータ・フィールドを宣言する、 * 第2段階で、アプリケーションの予想能力の機能
で、“タスク・データ・テーブル”(MJSD TDT)内の関
係のあるデータ・セットをコードのキー・ポイントにお
いて選択する。 − “誤り処理プログラム”は、宣言済みデータの効
果的な捕獲及び報告を開始しこれを管理する。
【0063】“指定域ダンプ”は、以下の要素によって
構成される。すなわち、 − システム・データ: “タスク”環境を構成すると
共に、問題の総括的理解に有益な、スタック、レジス
タ、システム“トレース”バッファ等のデータであり、
“誤り処理プログラム”によって、直接収集される。 − アプリケーション・データ:適宜の“ダンプ”手
順を用いる、実用的コードによって、直接定義されたデ
ータであり、以下の3つの型に分けられる。
【0064】* パブリック・データ:システム内の
トリガされた 全“ダンプ”に含まれるデータであり、
全アプリケーションの一般的関心事を表すが、システム
の全“タスク”で共用される“パブリック又は共用デー
タ・テーブル”(MJEN PDT)に記述される。このテーブ
ルは、“タスク・データ・テーブル”(MJEN TDT)と同
一の構成を有しているが、 固定的に選択された固有の
“ファミリー”の周りに組織される。
【0065】* 共通データ:同一“タスク”内の全
“ダンプ”に共通するデータであり、“タスク”に関連
する“タスク・データ・テーブル”内の“共通ファミリ
ー”(MJSD FAMILY 00) に記述される。この“共通フ
ァミリー”は、“タスク”が動作する度に選択される。 * 特定データ:宣言“タスク”の“ダンプ”だけで
収集されたデータであるが、最も貴重なデバッグ情報を
構成しており、コードのキー・ポイントにおいて選択さ
れた“特定ファミリー”(MJSD FAMIILY XX)と称する
ものに記述されている。
【0066】“重誤り通知”処理と比較して、“指定域
ダンプ”は、データ捕獲区域を以下の説明のところまで
延ばしている。 − “パブリック・データ”:全“タスク”に共通す
る専用の“タスク・データ・テーブル”を定義すること
によって得られ、この手段によって、“タスク”は、自
己の環境内でデータを選択し、システム内の全“ダン
プ”の一般的関心事として宣言することができる。 − “機能データ”:宣言済みの“誤りデータ”に付
加されるものであり、“タスク”の機能性およびいずれ
の誤り状態にも依存しないオペレーションの一般的実行
に関連している。
【0067】“指定域ダンプ”と“誤り通知タスク・デ
ータ・テーブル”との全体的構成は同一であり、前記の
図2に示される。“データ・フィールド記述”の内容
は、図3に示すものと比較して、以下の2点で相違して
いる。 − データは連鎖記録によって保守サブシステムに対
して報告されず、ファイル内でのみ報告されるため、
“誤り記録”番号パラメータが使用されない。 − 大半の場合、捕獲された“パブリック・データ”
が、故障“タスク”ではなく、同一システム内のその他
の“タスク”によって宣言されたことから、データを宣
言した“タスク”の識別が述べられる。
【0068】各“ファミリー”(MJSD FAMILY) は、以
下のように組織される。 − 内部データを備える“ファミリー・ヘッダ。 − “ファミリー識別。 − “データ・フィールド記述”:それぞれ以下によ
って構成される: * 宣言用“タスク識別”、 * 内部データを備える“データ・フィールド記述ヘ
ッダ”、 * “データ・フィールド記述識別”、 * “データ・フィールド識別”。
【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 AT) 内の“ファ
ミリー”識別パラメータ(704)を更新することによ
って、正しい“ダンプ・ファミリー”を選択する。この
テーブルは、“タスク”環境内におかれており、そのア
クセスは、“誤り処理プログラム”(711)と共用さ
れる。
【0074】− “タスク”は、そのコードの実行
中、所定期間にわたって、追加の記憶域を要求する。こ
の動的記憶域に記憶されたデータについては、割振り期
間の間中、宣言(707)することができる。その後テ
ーブル内の入力を、以下の手順によって削除する: * (708)MJSD DELETE P :“タスク・データ
・テーブル”(MJSDTDT 内の、“データ・フィールド記
述”(MJSD DFD)を除去する。
【0075】− ステップ503:“重誤り”が発生
すると(709)、“タスク”は、動作制御を失なう。
“制御プログラム”(710)は、誤りを検出して“誤
り処理プログラム”(711)を呼び出し、関係のある
データの捕獲と報告とを管理する。
【0076】− ステップ504:“誤り処理プログ
ラム”(711)は、故障“タスク”を識別して、エラ
ーが発生する前の最後のキーポイントで選択された“共
通ファミリー” (MJSD FAMILY 00) (712)と“特
定ファミリー”(MJSD FAMILY XX)(704)との識
別を、“選択テーブル”(MJSDAT)(705)から読み
取る。“データ・フィールド記述”(MJSD DFD)(71
3)に内蔵された記述から、正しい“共通及び特定デー
タ”(714)を、“タスク”記憶空間から検索する。
固定的に選択された“ファミリ−”を有する、“パブリ
ック・データ・テーブル”(MJSD PDT)に内蔵された記
述から、“パブリック・データ”を検索する。“パブリ
ック・データ”の大半は、“タスク”によって宣言され
たものではなく、これらの捕獲は“タスク”の限定され
た空間をオーバーランする。それらの選択及び捕獲は
“誤り処理プログラム”の全責任下で行われるので、
“システム・データ”は“タスク・データ・テーブル”
(MJSD TDT)に記述されない。検索された全データは、
“誤り処理プログラム”環境の専用区域に転送して、
“ダンプ”処理中に“制御プログラム”によって凍結さ
れたアプリケーション資源を可能な限り早くリリースす
る。
【0077】− ステップ505:“誤り処理プログ
ラム”は、“重誤り”が検出されると即座に、予め記述
された“誤り通知”処理に従って、“軽誤り”と“重誤
り”とを作成して報告する。
【0078】第2段階において、検索された全データを
“ダンプ”ファイルでフォーマット化して、本発明の目
的ではない古典的な方法で報告する。本願の場合、以前
に報告された“軽誤り”記録は、保守サブシステムに対
し報告するべき待機中の“指定域ダンプ・ファイル”の
存在を通知する。誤り“通知”記録と“指定域ダンプ”
とは特定標識によって相関され、保守サブシステム・レ
ベルにおける問題を判別し易くする。
【0079】“重誤り通知”と“指定域ダンプ”とは、
多重タスク操作及び多重処理環境にとりわけ適合してい
る。図6に示すと共に、以下に説明するシステムは、本
発明を実行できる型のコンテキストに典型的なものであ
る。このデータ処理システムは、以下の要素によって構
成される。 − 外部操作卓と保守システム(601):構成、変
更管理及び問題分析等を行う。
【0080】− サブシステム(603):それぞれ
以下の特徴を有する: * 32ビットのマイクロプロセッサ INTEL8
0486、 * リアル・タイム動作モード、 * 多重タスク操作システム(100以上の“タス
ク”を並列処理する)、 * 頁付仮想記憶、 * 記憶域の動的割振り、 * 12メガバイトの記憶容量 − データ・バス(602):10セット以上までの
サブシステムを接続する。
【0081】システム全体では、約50万行のコード行
を表す。プログラム例外は、プロセッサ80486に特
有であり、INTELプログラマ参照マニュアル(INTE
L Probrammer's Reference Manual)に詳細が記載されて
いる。これらは、プロセッサ80486が命令実行中に
検出した“重誤り”状態を処理する。サブシステムが捕
獲した全データを操作卓に対し分析のため報告する。
【0082】以下の数値は、本発明環境の特徴である。 − “軽誤り通知”: * 誤りコードの最大データ・サイズ:2キロバイト
/記録。 − “重誤り通知”: * “タスク”当りの最大“ファミリー”数:64、 * “タスク”当りの最大“データ・フィールド記
述”数:145、 * 最大データ・サイズ:10キロバイト(5個の2
キロバイト誤り記録)。 − “指定域ダンプ”: * アプリケーションに許された目標ダンプ・サイ
ズ:300キロバイト以下(“共通データ”および“特
定データ”)、 * “タスク”当りの最大ダンプ“ファミリー”数:
16、 * “ファミリー”当りの最大“データ・フィールド
記述”数:1024。
【0083】観察所見: “重誤り”処理は、全オペレーティング・システムに適
している。“重誤り通知”および“指定域ダンプ”に対
して予め定義されたような、“タスク”内のコードの区
画は、特に多重タスク操作モードに適している。独立ア
プリケーションにおけるこのセグメント化は、8048
6のような多重タスク操作プロセッサの組織に収束す
る。アプリケーションのアーキテクチャに与える“重誤
り”処理の影響は、非常に限られており、再使用または
複数のソースコードと適合し易くする。本発明に対して
必要なコードの開発は、好ましくは、複雑かつ大量でソ
フトウェア集約的システムの作成に適した、ADA,C
/C++等のような高度に構造化又は階層化され、強固
に類型化された言語の使用が求められる。
【0084】[付録] “重誤り通知”および“指定域ダンプ”処理に関連する
特定手順の詳細を以下に説明する。: 重誤り通知 〔MJEN INITIATION P 〕 − 機能(FUNCTION) :
【0085】この手順は、“タスク”によって呼び出さ
れ、“重誤り”の場合に収集されるデータの宣言に使用
される論理空間を構成する。“重誤りタスク・データ・
テーブル”(MJEN TDT)と称するこの論理空間は: * 各“タスク”に対して固有であり、 * “誤り処理プログラム”環境に置かれ、 * 捕獲するべきデータ・フィールドの記述を内蔵す
る、“重誤りファミリー”(MJEN FAMILY) と称するい
くつかの副区域に分割される。
【0086】各タスクの特定ニーズに記憶資源を適合さ
せるため、動作状態にする前に、“ファミリー”(MJEN
FAMILY) および“データ・フィールド記述”(MJEN
DFD)の数が、実用的コードによって宣言されなければな
らない。 − 入力パラメータ(INPUT PARAMETERS) : コードは、一連の入力パラメータにより、MJEN INITIA
TION P 手順を呼び出す: * MJEN TDT :加入“タスク”に関連する“重誤り
タスク・データ・テーブル”の識別、 * MJEN FAMILY NUMBER: “タスク”によって加入
された“重誤りファミリー”(MJEN FAMILY)の数、 * MJEN DATA FIELD DESCRIPTION NUMBER:
“タスク”によって加入された“データ・フィールド記
述”(MJEN DFD)の総数。
【0087】− 同期出力パラメータ: * 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 FA
MILY) に記憶する。 − 入力パラメータ(INPUT PARAMETERS) : コードは一連の入力パラメータにより、MJEN ADDITION
P 手順を呼び出す: * MJEN TDT :加入“タスク”に関連する“重誤り
タスク・データ・テーブル”の識別、
【0089】* MJEN ERROR RECORD NUMBER:宣
言されたデータ・フィールドを含み得る“重誤り記録”
の数、 * MJEN FAMILY:以下に定義されたデータ・フィー
ルドの記述を受ける様に選択された“重誤りファミリ
ー”(MJEN FAMILY) 、 * MJEN DFD DESCRIPTION :予め定義された“重
誤りファミリー”(MJEN FAMILY) に入力される“デー
タ・フィールド記述”: ・ アドレス、 ・ 名前、 ・ 大きさ。
【0090】− 同期出力パラメータ: * MJEN DFD IDENTIFICATION:手順によって戻さ
れた、新規加入“データ・フィールド記述”(MJEN DF
D)の識別、 * MJEN RETURN CODE :動作結果による戻りコー
ドOKまたはKO。− 非同期出力パラメータ : * なし。
【0091】〔MJEN DELETE P 〕 − 機能: この手順を呼び出して、“ファミリー”から“データ・
フィールド”を除去する。 − 入力パラメータ: コードは、一連の入力パラメータでMJEN DELETE P を
呼び出す: * MJEN TDT :データ・フィールドの除去を求める
“タスク”に関連する“タスク・データ・テーブル”の
識別、 * MJEN FAMILY:“データ・フィールド”を除去す
べき“誤り通知”ファミリー。特定値は、全“ファミリ
ー”の完全消去要求をしめす、 * MJEN DFD IDENTIFICATION:“ファミリー”か
ら除去する“データ・フィールド記述”の識別。特定値
で、同一“ファミリー”の全入力を削除することができ
る。
【0092】− 同期出力パラメータ: * MJEN RETURN CODE:動作結果による戻りコード
OKまたはKO − 非同期出力パラメータ: * なし。
【0093】重誤り指定域ダンプ 〔MJSD INITIATION P ] − 機能: 本手順は、“タスク”によって呼び出され、“重誤り”
の場合に収集するデータの宣言に使用される論理空間を
構成する。“重誤りタスク・データ・テーブル”(MJSD
TDT)と称するこの論理空間は: * 各“タスク”に対し固有であり、 * “誤り処理プログラム”環境に置かれ、 * 捕獲するべきデータ・フィールドの記述を内蔵す
る、“重誤りファミリー”(MJSD FAMILY) と称する、
ある数の副区域に分割される。
【0094】記憶資源を各タスクの特定ニーズに適合さ
せるため、動作状態にする前に、“ファミリー”(MJSD
FAMILY) の数および“データ・フィールド記述”(MJ
SDTDT)の数を実用型コードにより宣言しなければならな
い。 − 入力パラメータ: コードは一連の入力パラメータにより、MJSD INITIATI
ON P 手順を呼び出す: * MJSD TDT):加入“タスク”に関連する“重誤り
タスク・データ・テーブル”の識別、 * MJSD FAMILIES NUMBER:“タスク”によって加
入された“重誤りファミリー”(MJSD FAMILY) の数、 * MJSD DFD NUMBER :“タスク”によって加入さ
れた、“データ・フィールド記述”(MJSD DFD)の総
数。
【0095】− 同期出力パラメータ: * MJSD FAMILIES NUMBER ACK :実際にタスクに
帰属する“重誤りファミリー”(MJSD FAMILY)の数。
これらファミリーの識別は、零から始まる一連の連続値
として定義される、 * MJSD DFD NUMBER ACK :実際にタスクに帰属
する“データ・フィールド記述”(MJSD DFD)の数。こ
の数は、所望時間に使用できる記憶域によって決まる、 * MJSD RETURN CODE:起動手順の結果による戻り
コードOKまたはKO − 非同期出力パラメータ : * なし。
【0096】〔MJSD ADDITION P 〕 − 機能: この手順を呼び出して、“ファミリー”に“データ・フ
ィールド”を追加する。 − 入力パラメータ: コードは、一連の入力パラメータにより、MJSD ADDITI
ON P を呼び出す: * MSDN TDT :サービスを要求する“タスク”に関
連する“タスク・データ・テーブル”の識別、
【0097】* MJSD TYPE:宣言された“データ・
フィールド”については、“共通”、“特定”または
“パブリック”のいずれにもすることができる。“パブ
リック”とは、“データ・フィールド”が実行された全
てのダンプに含まれるべきことを意味する。その記述
は、“誤り処理プログラム”によって管理された“パブ
リック・データ・テーブル”に入力される。“特定デー
タ・フィールド”及び“共通データ・フィールド”は、
宣言用の“タスク”の“タスク・データテーブル”(MJ
SD TDT )に入力される、 * MJSD FAMILY:“データ・フィールド”が指定さ
れたダンプ“ファミリー”。同時に、1つの“ファミリ
ー”がダンプされる。 * MJSD DFD:予め宣言されたファミリーに指定さ
れた“データ・フィールド記述”(MJSD DFD): ・ 記憶域の“データ・フィールド”のアドレス、 ・ フィールドの大きさ。
【0098】− 同期出力パラメータ: * MJSD DFD IDENTIFICATION:手順によって戻さ
れた、新規加入“データ・フィールド記述”(MJSD DF
D)の識別、 * MJSD AVAILABLE SIZE:認定された最大長さと
比較したダンプ“ファミリー”の、利用できる残余の大
きさ、 * KJSD RETURN CODE:動作の結果による戻りコー
ドOKまたはKO− 非同期出力パラメータ: * なし。
【0099】〔MJSD DELETE P 〕 機能: この手順を呼び出して、“ファミリー”から“データ・
フィールド”を除去する。 − 入力パラメータ: コードは、一連の入力パラメータでMJSD DELETE P 手
順を呼び出す: * MJSD TDT:データ・フィールドの除去を要求す
る“タスク”に関連する“タスク・データ・テーブル”
の識別、 * MJSD FAMILY:“データ・フィールド”を除去す
べき“ダンプ”ファミリー。特定値は、全“ファミリ
ー”の完全消去の要求を示す、 * MJSD DFD IDENTIFICATION:“ファミリー”か
ら除去すべき“データ・フィールド記述”の識別。特定
値により、同一“ファミリー”の全入力を削除すること
ができる。
【0100】− 同期出力パラメータ: * MJSD RETURN CODE:動作結果による戻りコード
OKまたはKO − 非同期出力パラメータ: * なし。
【0101】
【発明の効果】本発明は以上説明したように構成して、
効果的且つ非常に簡単なデータ選択方法を提供して、重
誤り発生時に、データ処理システムの性能及び資源に対
する影響を最小に維持しつつ、ソフトウェアに誤動作を
検出除去させるようにしたことにより、その可用度、品
質及び保守性を高める事ができ、その結果、より重要か
つ複雑なプログラムの開発、テスト及び保守を容易にす
ることができた。
【図面の簡単な説明】
【図1】一般に使用されている異なる型のデバッグ・ツ
ールの主要特徴、および大域データ捕獲方式のコンテキ
ストにおける本発明の位置を示す図。
【図2】本発明による、“重誤り通知”処理で用いる
“タスク・データ・テーブル”の説明用構成図。
【図3】本発明による、“タスク・データ・テーブル”
に内蔵された“データ・フィールド記述”の説明用構成
図。
【図4】本発明による、“重誤り通知”の全体的機構の
説明用構成図。
【図5】本発明による、データ宣言及び捕獲処理の基本
的動作の説明用構成図。
【図6】特に本発明の実行に適した、データ処理システ
ムの構成図。
【図7】本発明による、“重誤り指定域ダンプ”の全体
的機構の説明用構成図。
【符号の説明】
200 “タスク・データ・テーブル” 206 “ファミリー” 208 “記述” 403、703 “選択特定ファミリー” 405、705 “選択テーブル” 409、709 “重誤り” 411、711 “誤り処理プログラム”
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ハーブ・パーリント フランス国、06800、キャグネス−サー −マー、ドメイン・デュ・ループ、1’ アーチュバイ−エイ、レジデンス、(番 地なし) (56)参考文献 特開 平4−134535(JP,A) J.H.クロフォード著、岩谷 宏訳 「80386プログラミング」、(昭63−7 −25)、株式会社工学社、P.400−406 高澤 嘉光著「OSシリーズ(第7 巻)OS−9/68000」(昭64−1− 30)、共立出版株式会社 P.48、P. 122−124

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】データ処理システムにおいてタスクの実行
    中に発生する誤り条件に関係のあるデータを選択的に捕
    獲する方法であって、 各タスクに対し、複数のサブセット(ファミリー)に分
    割されたデータ・テーブル(タスク・データ・テーブ
    ル)を動的に定義し、 タスクの実行に関与するデータ・フィールドの内、タス
    クの実行のために固定的に割り振られ、かつタスクの実
    行中複数の予定の点(キー・ポイント)において予想さ
    れる誤り条件に関係するデータ・フィールドの識別を、
    タスク実行開始時に前記サブセット中前記予定の点に対
    応するサブセットにそれぞれ記述し、 タスクの実行に関与するデータ・フィールドの内、タス
    クの実行中一時的に割り振られ、かつタスクの実行にお
    いて予想される誤り条件に関係するデータ・フィールド
    の識別をタスク実行中にサブセットに記述し、 タスクの実行中前記予定の点のそれぞれにおいて、対応
    するサブセットに記述された識別を選択テーブルに読み
    込み、 誤り条件が発生した時に、タスクのレベルより高い優先
    レベルが付与され、かつタスクが使用するデータ・フィ
    ールドに対するアクセスが認められる誤り処理プログラ
    ムに操作の制御を移行し、および、 前記予定の点の内誤り条件が発生する前の最後の点にお
    いて前記選択テーブルに読み込まれたサブセットに記述
    された識別から、前記誤り処理プログラムによって適切
    なデータ・フィールドを検索する、各工程から成ること
    を特徴とする選択的データ捕獲方法。
  2. 【請求項2】前記タスクの実行中一時的に割振られたデ
    ータ・フィールドが前記タスクにより解放された後、前
    記タスク・テーブルにおけるそのデータ・フィールドの
    記述を削除することを特徴とする請求項1記載の選択的
    データ捕獲方法。
  3. 【請求項3】各データ・テーブル(タスク・データ・テ
    ーブル)は、前記タスクの実行において予想される誤り
    条件全てに共通なデータ・フィールドの記述を有する固
    定的に選択された共通サブセット(ファミリー)、及
    び、各誤り条件に特有のデータ・フィールドを有し、一
    時に1つだけ選択される特定サブセットを含むようにし
    たことを特徴とする請求項1又は2に記載の選択的デー
    タ捕獲方法。
  4. 【請求項4】システムにおける全タスクおよび全誤り条
    件に共通に関係するデータ・フィールドは全タスクによ
    り共用され、かつ前記共通サブセットに記述されること
    を特徴とする請求項3に記載の選択的データ捕獲方法。
JP5202091A 1992-09-11 1993-07-23 ソフトウェア例外条件に対する選択的データ捕獲方法 Expired - Lifetime JP2557180B2 (ja)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
JPH06208486A JPH06208486A (ja) 1994-07-26
JP2557180B2 true 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
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
US6631480B2 (en) 1999-11-10 2003-10-07 Symantec Corporation Methods and systems for protecting data from potential corruption by a crashed computer program
US6630946B2 (en) 1999-11-10 2003-10-07 Symantec Corporation Methods for automatically locating data-containing windows in frozen applications program and saving contents
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
US10929270B2 (en) * 2018-01-01 2021-02-23 Rookout Ltd. System and method for controlled data extraction 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

Family Cites Families (6)

* 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
JPH04134535A (ja) * 1990-09-26 1992-05-08 Nec Corp マルチタスクプログラムの例外情報採取機構

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
J.H.クロフォード著、岩谷 宏訳「80386プログラミング」、(昭63−7−25)、株式会社工学社、P.400−406
高澤 嘉光著「OSシリーズ(第7巻)OS−9/68000」(昭64−1−30)、共立出版株式会社 P.48、P.122−124

Also Published As

Publication number Publication date
JPH06208486A (ja) 1994-07-26
EP0586767A1 (en) 1994-03-16
US6182243B1 (en) 2001-01-30

Similar Documents

Publication Publication Date Title
JP2557180B2 (ja) ソフトウェア例外条件に対する選択的データ捕獲方法
US5948112A (en) Method and apparatus for recovering from software faults
US20070250820A1 (en) Instruction level execution analysis for debugging software
US6502208B1 (en) Method and system for check stop error handling
US6845470B2 (en) Method and system to identify a memory corruption source within a multiprocessor system
US20030145255A1 (en) Hierarchical multi-component trace facility using multiple buffers per component
JPH0683676A (ja) タイム・ゼロ・バックアップ・コピー・プロセスにおいて終了及び再開始を自動化する方法及びシステム
CN1115443A (zh) 微处理机故障记录
US7765526B2 (en) Management of watchpoints in debuggers
JP2014067369A (ja) 情報処理装置,プログラム,情報処理方法
CN110955598B (zh) 一种内核态程序的断点处理方法及装置
US4355389A (en) Microprogrammed information processing system having self-checking function
US6182244B1 (en) System and method for automatically initiating a tracing facility and dynamically changing the levels of tracing currently active
JP2001034509A (ja) 情報処理装置の障害回復方法
US7114097B2 (en) Autonomic method to resume multi-threaded preload imaging process
JPH02294739A (ja) 障害検出方式
US6141635A (en) Method of diagnosing faults in an emulated computer system via a heterogeneous diagnostic program
JP2868114B2 (ja) 監視診断機能付計算機
CN115114117B (zh) 数据记录方法和数据记录装置
JP2006039763A (ja) ゲストosデバッグ支援方法及び仮想計算機マネージャ
JPH04307641A (ja) マルチタスク・システムの障害診断装置
US10140476B2 (en) Tracing processing activity
JP3459898B2 (ja) 組み込みシステムの障害情報トレーサ装置
CN112286804B (zh) 系统的调试方法、装置、设备和介质
JP6069719B2 (ja) ソフトウェアデバッグ方法、情報処理装置およびプログラム

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