JPH0496148A - ダウンルート追跡方式 - Google Patents
ダウンルート追跡方式Info
- Publication number
- JPH0496148A JPH0496148A JP2211296A JP21129690A JPH0496148A JP H0496148 A JPH0496148 A JP H0496148A JP 2211296 A JP2211296 A JP 2211296A JP 21129690 A JP21129690 A JP 21129690A JP H0496148 A JPH0496148 A JP H0496148A
- Authority
- JP
- Japan
- Prior art keywords
- function
- address
- frame pointer
- name
- information
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 84
- 230000001174 ascending effect Effects 0.000 claims description 7
- 238000000605 extraction Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 12
- 239000000284 extract Substances 0.000 description 6
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概 要〕
システムダウンが発生するまでのシステムの動作軌跡を
追跡するダウンルート追跡方式に関し、自動的にダウン
ルートを追跡することを目的とし、 呼び出し元関数のフレームポインタをベースアドレスと
し、呼び出す関数の戻り番地と、自関数のベースアドレ
スをポイントするフレームポインタとを有する関数の情
報が順次格納されるカーネルスタックと、最後に実行さ
れた関数のフレームポインタをポイントするポインタ手
段と、最後に実行された関数のフレームポインタから、
順次呼び出し元関数のフレームポインタにさかのぼり、
各情報格納領域から戻り番地を取り出す追跡手段と、シ
ステムで使用される静的に結合された関数の関数名およ
び先頭アドレスが、先頭アドレスの昇順に格納されるネ
ームリストと、戻り番地が入力され、昇順に並べられた
先頭アドレスを探索範囲とし、二分探索法により、戻り
番地が含まれる先頭アドレス範囲を求め、その関数名を
特定する関数名特定手段とを備えて構成される。
追跡するダウンルート追跡方式に関し、自動的にダウン
ルートを追跡することを目的とし、 呼び出し元関数のフレームポインタをベースアドレスと
し、呼び出す関数の戻り番地と、自関数のベースアドレ
スをポイントするフレームポインタとを有する関数の情
報が順次格納されるカーネルスタックと、最後に実行さ
れた関数のフレームポインタをポイントするポインタ手
段と、最後に実行された関数のフレームポインタから、
順次呼び出し元関数のフレームポインタにさかのぼり、
各情報格納領域から戻り番地を取り出す追跡手段と、シ
ステムで使用される静的に結合された関数の関数名およ
び先頭アドレスが、先頭アドレスの昇順に格納されるネ
ームリストと、戻り番地が入力され、昇順に並べられた
先頭アドレスを探索範囲とし、二分探索法により、戻り
番地が含まれる先頭アドレス範囲を求め、その関数名を
特定する関数名特定手段とを備えて構成される。
本発明は、システムダウンの原因調査のために、システ
ムダウン発生時に採取されるメモリダンプを解析し、シ
ステムダウンが発生するまでのシステムの動作軌跡を追
跡するダウンルート追跡方式〔従来の技術〕 システムの重度障害であるシステムダウンが発生したと
きには、メモリダンプに基づいて、システムがダウンす
るまでのダウンルートを追跡し、システムダウンの原因
調査が行われる。
ムダウン発生時に採取されるメモリダンプを解析し、シ
ステムダウンが発生するまでのシステムの動作軌跡を追
跡するダウンルート追跡方式〔従来の技術〕 システムの重度障害であるシステムダウンが発生したと
きには、メモリダンプに基づいて、システムがダウンす
るまでのダウンルートを追跡し、システムダウンの原因
調査が行われる。
従来のシステムダウン時のダウンルート追跡では、シス
テムダウン発生時にフロッピー等に採取されるメモリダ
ンプを全て紙に出力し、人の目でシステムが実行した関
数の軌跡を追跡していた。
テムダウン発生時にフロッピー等に採取されるメモリダ
ンプを全て紙に出力し、人の目でシステムが実行した関
数の軌跡を追跡していた。
関数名は、システム内で使用される静的結合された関数
の名前および先頭アドレスをまとめたネームリストをメ
モリダンプとは別に紙に出力し、人の目で確認していた
。
の名前および先頭アドレスをまとめたネームリストをメ
モリダンプとは別に紙に出力し、人の目で確認していた
。
ところで、人の目でダウンルートを追跡する方式では、
ダウンルートの追跡に時間がかかる。また、メモリダン
プ、ネームリストを見間違えたときには、それまでのダ
ウンルートの追跡が無駄になる。
ダウンルートの追跡に時間がかかる。また、メモリダン
プ、ネームリストを見間違えたときには、それまでのダ
ウンルートの追跡が無駄になる。
すなわち、システムダウンの原因調査に非常に時間がか
かっていた。
かっていた。
本発明は、このような点を解決するためのものであり、
自動的にダウンルートを追跡することができるダウンル
ート追跡方式を提供することを目的とする。
自動的にダウンルートを追跡することができるダウンル
ート追跡方式を提供することを目的とする。
第1図は、本発明の原理ブロンク図である。
図において、カーネルスタック11は、呼び出し元関数
のフレームポインタをベースアドレスとし、呼び出す関
数の戻り番地と、自関数のベースアドレスをポイントす
るフレームポインタとを有する関数の情報が順次格納さ
れる。
のフレームポインタをベースアドレスとし、呼び出す関
数の戻り番地と、自関数のベースアドレスをポイントす
るフレームポインタとを有する関数の情報が順次格納さ
れる。
ポインタ手段13は、最後に実行された関数のフレーム
ポインタをポイントする。
ポインタをポイントする。
追跡手段15は、最後に実行された関数のフレームポイ
ンタから、順次呼び出し元関数のフレームポインタにさ
かのぼり、各情報格納領域から戻り番地を取り出す。
ンタから、順次呼び出し元関数のフレームポインタにさ
かのぼり、各情報格納領域から戻り番地を取り出す。
ネームリスト17は、システムで使用される静的に結合
された関数の関数名および先頭アドレスが、先頭アドレ
スの昇順に格納される。
された関数の関数名および先頭アドレスが、先頭アドレ
スの昇順に格納される。
関数名特定手段19は、戻り番地が入力され、昇順に並
べられた先頭アドレスを探索範囲とし、二分探索法によ
り、戻り番地が含まれる先頭アドレス範囲を求め、その
関数名を特定する。
べられた先頭アドレスを探索範囲とし、二分探索法によ
り、戻り番地が含まれる先頭アドレス範囲を求め、その
関数名を特定する。
カーネルスタック11には、関数ごとに情報が格納され
、各関数の情報の最後にそのベースアドレスをポイント
するフレームポインタが格納される。次に実行される関
数の情報は、このフレームポインタの位置をベースアド
レスとして格納される。すなわち、各関数のフレームポ
インタは、前に実行された関数のフレームポインタをポ
イントする構成になっている。したがって、フレームポ
インタを追跡することにより、前の関数の情報を参照す
ることができる。
、各関数の情報の最後にそのベースアドレスをポイント
するフレームポインタが格納される。次に実行される関
数の情報は、このフレームポインタの位置をベースアド
レスとして格納される。すなわち、各関数のフレームポ
インタは、前に実行された関数のフレームポインタをポ
イントする構成になっている。したがって、フレームポ
インタを追跡することにより、前の関数の情報を参照す
ることができる。
本発明では、追跡手段15により、フレームポインタを
追跡し、各関数情報から戻り番地の抽出を行うので、シ
ステムが実行した関数の軌跡を自動的に求めることがで
きる。
追跡し、各関数情報から戻り番地の抽出を行うので、シ
ステムが実行した関数の軌跡を自動的に求めることがで
きる。
また、関数名特定手段19により、関数の名前と先頭ア
ドレスを対応付けるネームリスト17を用い、二分探索
法により戻り番地の含まれる先頭アドレス範囲を求め、
このアドレス範囲から関数名を求めることができる。
ドレスを対応付けるネームリスト17を用い、二分探索
法により戻り番地の含まれる先頭アドレス範囲を求め、
このアドレス範囲から関数名を求めることができる。
したがって、自動的に関数の軌跡を追跡し、その関数名
を出力することが可能となる。
を出力することが可能となる。
以下、図面に基づいて本発明の実施例について詳細に説
明する。
明する。
第2図は、ダウンルートの追跡に使用する各種テーブル
を説明する図である。
を説明する図である。
図において、システムベクタテーブル(SVT)31.
33は、システムが使用する各種テーブルをポイントす
る。
33は、システムが使用する各種テーブルをポイントす
る。
カーネルスタック11には、関数ごとに、ローカルに使
用されるデータおよびレジスタ内容が格納される。また
、別の関数を呼び出したときには、戻り番地と、実行中
の関数情報のベースアドレスをポイントするフレームポ
インタが格納される。
用されるデータおよびレジスタ内容が格納される。また
、別の関数を呼び出したときには、戻り番地と、実行中
の関数情報のベースアドレスをポイントするフレームポ
インタが格納される。
このフレームポインタが格納された位置は、次の関数の
ベースアドレスとして使用される。
ベースアドレスとして使用される。
ネームリスト17は、システム内で静的に結合された関
数名と、その先頭アドレスとを対応づけるリストであり
、関数名が先頭アドレスの昇順に格納される。
数名と、その先頭アドレスとを対応づけるリストであり
、関数名が先頭アドレスの昇順に格納される。
第3図は、本発明方式によるダウンードの追跡を実現す
るプログラムの構造を説明する図である。
るプログラムの構造を説明する図である。
図において、プログラム本体20は、アドレス設定処理
部21、ダウンコード処理部23、レジスタ抽出処理部
25、アドレス抽出処理部27およびダウンルート出力
部29を起動する。
部21、ダウンコード処理部23、レジスタ抽出処理部
25、アドレス抽出処理部27およびダウンルート出力
部29を起動する。
アドレス設定処理部21は、システムへフタテーブル3
1.33から最後に実行された関数のフレームポインタ
のアドレスを抽出する。
1.33から最後に実行された関数のフレームポインタ
のアドレスを抽出する。
ダウンコード処理部23は、ダウンコードを解析し、ダ
ウンコードに応じた各種処理を行う。
ウンコードに応じた各種処理を行う。
レジスタ抽出処理部25は、システムダウンを引き起こ
したプロセスが使用していたレジスタの内容を抽出する
。
したプロセスが使用していたレジスタの内容を抽出する
。
アドレス抽出処理部27は、カーネルスタック11を参
照して、実行された関数を追跡し、その戻り番地を抽出
する。
照して、実行された関数を追跡し、その戻り番地を抽出
する。
ダウンルート出力部29は、ネームリスト17を参照し
、アドレス抽出処理部27が出力する戻り番地が含まれ
る関数の関数名を特定するとともに、これを出力する。
、アドレス抽出処理部27が出力する戻り番地が含まれ
る関数の関数名を特定するとともに、これを出力する。
ここで、第1図と第3図との対応関係を説明する。
ポインタ手段13は、アドレス設定処理部21に相当す
る。
る。
追跡手段15は、アドレス抽出処理部27に相当する。
関数名特定手段19は、ダウンルート出力部29に相当
する。
する。
第4図は、実施例の処理の流れを説明する図である。
以下、第2図ないし第4図を参照して、実施例の処理の
流れについて説明する。
流れについて説明する。
アドレス設定処理部21において、システムへフタテー
ブル31のアドレスを得るシステム関数を実行し、シス
テムへフタテーブル31を参照する。
ブル31のアドレスを得るシステム関数を実行し、シス
テムへフタテーブル31を参照する。
システムベクタテーブル31には、システムへフタテー
ブル33へのポインタが格納されている。
ブル33へのポインタが格納されている。
システムベクタテーブル33には、最後に実行された関
数の情報のフレームポインタをポイントするシステムス
タックポインタが格納されている。
数の情報のフレームポインタをポイントするシステムス
タックポインタが格納されている。
すなわち、システムベクタテーブル31のアドレスを求
めることにより、最後に実行された関数であるシステム
ダウン処理のフレームポインタ(a)のアドレス■を知
り、参照することができる。
めることにより、最後に実行された関数であるシステム
ダウン処理のフレームポインタ(a)のアドレス■を知
り、参照することができる。
フレームポインタ(a)は、システムダウン処理を呼び
出した関数、すなわちシステムダウン時に動作していた
関数のフレームポインタ(b)をポイントしている。
出した関数、すなわちシステムダウン時に動作していた
関数のフレームポインタ(b)をポイントしている。
ここで、システムダウンが発生したときのアドレス■は
、フレームポインタ(b)を基点としてダウンコードに
応した所定の位置に格納されている。
、フレームポインタ(b)を基点としてダウンコードに
応した所定の位置に格納されている。
したがって、ダウンコード処理部23において、ダウン
コードを知ることにより、フレームポインタ(′b)に
基づいてシステムダウン発生時のアドレス■を求めるこ
とができる。
コードを知ることにより、フレームポインタ(′b)に
基づいてシステムダウン発生時のアドレス■を求めるこ
とができる。
フレームポインタ(b)は、この関数の呼び出し元関数
のフレームポインタ(C)をポイントしている。
のフレームポインタ(C)をポイントしている。
したがって、フレームポインタ(C)の直後に格納され
た戻り番地■を抽出することができる。
た戻り番地■を抽出することができる。
同様にして、フレームポインタ(C)がポイントするそ
の前の関数のフレームポインタ(d)から、その直後に
格納される戻り番地■を抽出することができるとともに
、さらにその前の関数のフレームポインタのアドレスを
知ることができる。
の前の関数のフレームポインタ(d)から、その直後に
格納される戻り番地■を抽出することができるとともに
、さらにその前の関数のフレームポインタのアドレスを
知ることができる。
上述した、フレームポインタを追跡し、戻り番地を抽出
する処理をフレームポインタがカーネルスタック11の
領域外を指し示すまで繰り返すことにより、カーネルス
タックll内に保持されている関数情報の範囲で、シス
テムの実行した関数の軌跡を追跡することができる。
する処理をフレームポインタがカーネルスタック11の
領域外を指し示すまで繰り返すことにより、カーネルス
タックll内に保持されている関数情報の範囲で、シス
テムの実行した関数の軌跡を追跡することができる。
一方、ダウンルート出力部29は、アドレス抽出処理部
27の抽出するシステムダウンが発生したアドレスおよ
び各戻り番地がどの関数内であるかをネームリスト17
の先頭アドレスを探索範囲とし、二分探索法により特定
する。
27の抽出するシステムダウンが発生したアドレスおよ
び各戻り番地がどの関数内であるかをネームリスト17
の先頭アドレスを探索範囲とし、二分探索法により特定
する。
すなわち、探索範囲を中間のアドレスで二分して二つの
集合とし、中間のアドレスと、関数名を特定したいアド
レス、例えば戻り番地■との大小判定を行って戻り番地
■がいずれの集合に含まれるかを求め、戻り番値■が含
まれる集合を新たな探索範囲とする。以降、新たな探索
範囲をその中間のアドレスで二分し、上述した処理を繰
り返す。
集合とし、中間のアドレスと、関数名を特定したいアド
レス、例えば戻り番地■との大小判定を行って戻り番地
■がいずれの集合に含まれるかを求め、戻り番値■が含
まれる集合を新たな探索範囲とする。以降、新たな探索
範囲をその中間のアドレスで二分し、上述した処理を繰
り返す。
最終的には、二つの先頭アドレスの間に戻り番地■が挾
まれるので、ネームリスト17から関数名を特定するこ
とができる。
まれるので、ネームリスト17から関数名を特定するこ
とができる。
例えば、関数A、関数Bの先頭アドレスがそれぞれro
ooo」、「0100」、戻り番地■が’0050Jで
あるときには、上述した二分探索法により、戻り番地■
ro050」は、関数A、Bの先頭アドレスの間に含ま
れることが検出され、関数A内であることが特定される
。
ooo」、「0100」、戻り番地■が’0050Jで
あるときには、上述した二分探索法により、戻り番地■
ro050」は、関数A、Bの先頭アドレスの間に含ま
れることが検出され、関数A内であることが特定される
。
システムダウン発生時には、デイスプレィ、あるいは紙
等にこれらのアドレス、関数名およびその他の情報を出
力し、原因調査を行うことができる。
等にこれらのアドレス、関数名およびその他の情報を出
力し、原因調査を行うことができる。
なお、上述したダウンルート追跡の機能は、システムダ
ウンが発生したシステム内に備えられ、システムダウン
後の再立ち上げ後に起動されても良いし、別のシステム
に備えられても良い。
ウンが発生したシステム内に備えられ、システムダウン
後の再立ち上げ後に起動されても良いし、別のシステム
に備えられても良い。
上述したように、本発明によれば、フレームポインタを
追跡する追跡手段を設けることにより、自動的に、各関
数の戻り番地を抽出することができる。また、ネームリ
ストを参照し、戻り番地の関数名を特定する関数名特定
手段を設けたことにより、自動的に関数名を特定するこ
とができる。
追跡する追跡手段を設けることにより、自動的に、各関
数の戻り番地を抽出することができる。また、ネームリ
ストを参照し、戻り番地の関数名を特定する関数名特定
手段を設けたことにより、自動的に関数名を特定するこ
とができる。
したがって、自動的にシステムダウンが発生するまでの
ダウンルートが追跡されるので、メモリダンプやネーム
リストを見間違えることがなくなり、ダウンルートの追
跡時間が短縮され、システムダウン発生時に行われるシ
ステムダウンの原因調査の時間を短縮することができる
。
ダウンルートが追跡されるので、メモリダンプやネーム
リストを見間違えることがなくなり、ダウンルートの追
跡時間が短縮され、システムダウン発生時に行われるシ
ステムダウンの原因調査の時間を短縮することができる
。
第1図は本発明の原理ブロック図、
第2図はダウンルートの追跡に使用する各種テーブルを
説明する図、 第3図はプログラムの構造を説明する図、第4図は実施
例の処理の流れを説明する図である。 図において、 ■はカーネルスタック、 3はポインタ手段、 5は追跡手段、 7はネームリスト、 9は関数名特定手段、 0はプログラム本体、 1はアドレス設定処理部、 3はダウンコード処理部、 25はレジスタ抽出処理部、 27はアドレス抽出処理部、 29はダウンルート出力部、 31、 3はシステムベクタテーブル(SVT)である。 ダウンルートの追跡に使用する各種テーブルを説明する
図′W42図 本発明の原理ブロンク図 第1図 プログラムの構造を説明する図 第 図
説明する図、 第3図はプログラムの構造を説明する図、第4図は実施
例の処理の流れを説明する図である。 図において、 ■はカーネルスタック、 3はポインタ手段、 5は追跡手段、 7はネームリスト、 9は関数名特定手段、 0はプログラム本体、 1はアドレス設定処理部、 3はダウンコード処理部、 25はレジスタ抽出処理部、 27はアドレス抽出処理部、 29はダウンルート出力部、 31、 3はシステムベクタテーブル(SVT)である。 ダウンルートの追跡に使用する各種テーブルを説明する
図′W42図 本発明の原理ブロンク図 第1図 プログラムの構造を説明する図 第 図
Claims (1)
- (1)呼び出し元関数のフレームポインタをベースアド
レスとし、呼び出す関数の戻り番地と、自関数の情報領
域のベースアドレスをポイントするフレームポインタと
を有する関数の情報が順次格納されるカーネルスタック
(11)と、 最後に実行された関数のフレームポインタをポイントす
るポインタ手段(13)と、 最後に実行された関数のフレームポインタから、順次呼
び出し元関数のフレームポインタにさかのぼり、各情報
格納領域から戻り番地を取り出す追跡手段(15)と、 システムで使用される静的に結合された関数の関数名お
よび先頭アドレスが、先頭アドレスの昇順に格納される
ネームリスト(17)と、 前記戻り番地が入力され、前記昇順に並べられた先頭ア
ドレスを探索範囲とし、二分探索法により、戻り番地が
含まれる先頭アドレス範囲を求め、その関数名を特定す
る関数名特定手段(19)とを備えたことを特徴とする
ダウンルート追跡方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2211296A JPH0496148A (ja) | 1990-08-08 | 1990-08-08 | ダウンルート追跡方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2211296A JPH0496148A (ja) | 1990-08-08 | 1990-08-08 | ダウンルート追跡方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0496148A true JPH0496148A (ja) | 1992-03-27 |
Family
ID=16603591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2211296A Pending JPH0496148A (ja) | 1990-08-08 | 1990-08-08 | ダウンルート追跡方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0496148A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07141222A (ja) * | 1993-11-17 | 1995-06-02 | Nec Corp | サブルーチンの履歴をトレースするデータ処理装置 |
JP2008107908A (ja) * | 2006-10-23 | 2008-05-08 | Nec Electronics Corp | データ解析システム |
-
1990
- 1990-08-08 JP JP2211296A patent/JPH0496148A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07141222A (ja) * | 1993-11-17 | 1995-06-02 | Nec Corp | サブルーチンの履歴をトレースするデータ処理装置 |
JP2008107908A (ja) * | 2006-10-23 | 2008-05-08 | Nec Electronics Corp | データ解析システム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR910012986A (ko) | 문서독취 번역 시스템의 문서수정장치 | |
KR890702125A (ko) | 정보 처리시스템 | |
JPH0496148A (ja) | ダウンルート追跡方式 | |
JP2763453B2 (ja) | 回路図作成装置および回路図作成方法 | |
JPS6050581A (ja) | グラフィックディスプレイ装置の文字記憶方式 | |
JPS6358485A (ja) | 地図検索方式 | |
JP2624763B2 (ja) | 文字入力装置 | |
JPS6227867A (ja) | 画像デ−タ修正方式 | |
JPH0610447Y2 (ja) | 画像処理装置 | |
JPH02159689A (ja) | 候補文字選択方式 | |
JPH08110933A (ja) | 文字認識装置及び辞書登録方法 | |
JPH0355874B2 (ja) | ||
JPH07113950B2 (ja) | 画像認識方法 | |
JPH0521263B2 (ja) | ||
JPS58169629A (ja) | 情報処理システム | |
JPS59163639A (ja) | ソ−スプログラム解析方式 | |
JPH07210623A (ja) | 文書画像処理装置 | |
JPH01277921A (ja) | 書画情報入力装置 | |
JPS60114932A (ja) | 編集表示装置 | |
JPS61278985A (ja) | 図形認識方法および装置 | |
JPH0314037A (ja) | 状態遷移表作成装置 | |
JPH08137998A (ja) | 認識辞書変更方法 | |
JPH0620103A (ja) | 情報認識方法および情報認識装置 | |
JPS63298558A (ja) | 位置表示マ−ク表示方式 | |
JPS57127263A (en) | System for updating transaction data |