JPH07210423A - 計算機システム - Google Patents

計算機システム

Info

Publication number
JPH07210423A
JPH07210423A JP6019983A JP1998394A JPH07210423A JP H07210423 A JPH07210423 A JP H07210423A JP 6019983 A JP6019983 A JP 6019983A JP 1998394 A JP1998394 A JP 1998394A JP H07210423 A JPH07210423 A JP H07210423A
Authority
JP
Japan
Prior art keywords
function
return address
stack
address
time
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.)
Withdrawn
Application number
JP6019983A
Other languages
English (en)
Inventor
Shigeru Shiotani
滋 塩谷
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.)
Fuji Facom Corp
Original Assignee
Fuji Facom 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 Fuji Facom Corp filed Critical Fuji Facom Corp
Priority to JP6019983A priority Critical patent/JPH07210423A/ja
Publication of JPH07210423A publication Critical patent/JPH07210423A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 プロセッサがダウンした場合にスタッカの戻
り番地からダウン発生箇所とそこへ至った経路の特定を
可能にする。 【構成】 スタックポインタ40の値が指定するスタッ
ク30上から戻り番地を取り出す(ステップ101)。
次に、取り出した戻り番地を参照済みとする(ステップ
102)。さらに、スタックポインタ40の値を戻り番
地の下を指すように変更し(ステップ103)、取り出
した戻り番地に基づき、呼び出し元に復帰する(ステッ
プ104)。なお、戻り番地を参照済みとするには、参
照済みにしようとする戻り番地について、その値が書き
込まれているスタック30上のビット列の全てまたは特
定のビットを0に書き換える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、計算機システムに関
し、特に戻り番地をスタックへ退避して関数へ分岐して
いる最中にプロセッサがダウンして走行が不能になった
場合であっても、ダウン発生箇所およびそこへ至ったプ
ログラムルートを特定することが可能な計算機システム
に関する。
【0002】
【従来の技術】従来、計算機システムがダウンした場
合、割り込み等によりプロセッサに異常が通知され、異
常処理により発生した時点のプログラムカウンタやスタ
ックポインタ等の情報が特定のメモリにダウン情報とし
て退避される。その後、メモリ内に残されたダウン情報
およびスタック内の情報を収集し、ダウン原因発生箇所
およびそこへ至ったプログラムのルートを解析すること
ができる。
【0003】図2は従来の解析例を示す説明図である。
すなわち、図において10は関数Aを示し、開始される
と(11)、関数Bを呼び出して(12)、終了する
(13)。また、20の関数Bは、開始されると(2
1)、関数Cを呼び出し(22)、その後処理を行い
(23)、呼び出し元へ復帰する(24)。また、この
ときのスタック30は、先ず、関数Aの開始時点(1
1)で、関数Aが作業用に使うデータ領域35が確保さ
れる。次いで、関数Bの呼び出し時点(12)で、関数
Aへの戻り番地34が書き込まれる。
【0004】次に、関数Bの開始時点(21)で、関数
Bが作業用に使うデータ領域33が確保される。さら
に、関数Cの呼び出し時点(22)で、関数Bへの戻り
番地32が書き込まれる。以後、同様にして関数の呼び
出しごとにスタック内では、その関数からの戻り番地が
書き込まれるとともに、関数の開始時点でその関数の作
業用データ領域が確保される。
【0005】また、スタックポインタ40は、スタック
内に領域が確保されたときと、戻り番地が書き込まれた
ときにその領域の上の位置を指し示すように値が変化し
ていく。つまり、関数からの復帰時には、その終了時点
で関数が確保していた領域が開放され、その下の戻り番
地の内容により呼び出し元の関数に復帰する。この場合
のスタックポインタ40は、領域が開放された時点でそ
の領域の下の位置(戻り番地の上の位置)を指すように
変更される。次にそのスタックポインタ40の指定する
位置から戻り番地が取り出され、さらにスタックポイン
タ40が戻り番地の下の位置を指すように変更される。
その後、呼び出し元へ復帰(戻り番地への分岐)をす
る。これらの復帰時の動作をフローチャートとして示し
たのが図3である。
【0006】これらの動作時に、例えば、関数B(2
0)の処理(23)の途中で計算機がダウンした場合、
プロセッサに異常が通知され、その時点のプログラムカ
ウンタ41およびスタックポインタ40の指示内容がダ
ウン情報としてメモリに退避される。このときのダウン
情報として退避されたプログラムカウンタ41の指示内
容は、関数B(20)の処理(23)内の番地を指して
いるので、ダウン発生箇所を特定することができる。同
様に、スタックポインタ40の指示内容は、関数Bのデ
ータ領域33上を指している。また、個々の関数内で確
保するデータ領域の大きさは関数ごとにプログラム内容
から算出できることにより、関数ごとの戻り番地を調べ
ることでダウン原因発生箇所に至ったプログラムのルー
トを解析することができる。
【0007】
【発明が解決しようとする課題】しかしながら、これら
従来方法では、計算機のプロセッサ自体が走行不能な状
態に陥いると、ダウン情報であるところのダウン時のプ
ログラムカウンタ41およびスタックポインタ40の指
示内容が退避されない。そのため、ダウン発生箇所の特
定とダウン原因発生箇所に至ったプログラムのルートの
解析が不可能である。例えば、上述したように関数B
(20)の処理(23)の途中で計算機のプロセッサ自
体が走行不能になると、スタック30内には関数B(2
0)への戻り番地(32)もそのまま残っているので、
ダウンが発生したのが関数A〜Cのいずれであるかを特
定することが不可能であった。
【0008】本発明は上記問題点を解決するためになさ
れたもので、その目的とするところは、戻り番地をスタ
ックへ退避して関数へ分岐している最中にプロセッサが
ダウンして走行が不能になった場合であっても、ダウン
発生箇所とそこへ至ったプログラムルートを特定するこ
とができる計算機システムを提供することにある。
【0009】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、関数を呼び出すごとに戻り番地をスタッ
クに退避し、関数の終了した時点でスタックに退避した
戻り番地を参照して呼び出し元に復帰する計算機システ
ムにおいて、呼び出し元に復帰するためスタックに退避
した戻り番地を参照した直後に、その戻り番地が書き込
まれているスタック上のビット列の少なくとも1ビット
を参照済みであることを示す特定コードに書き換える手
段と、プロセッサがダウンして走行不能になった場合
に、スタック内の戻り番地が特定コードに書き換えられ
ている位置を調べてダウン時の関数およびそこへ至るま
での経路を特定する手段とを備えたことを特徴とする。
【0010】
【作用】本発明においては、関数が終了した時点で呼び
出し元に復帰するためスタックに退避した戻り番地が参
照されると、その直後にその戻り番地が書き込まれてい
るスタック上のビット列の少なくとも1ビットが参照済
みであることを示す特定コードに書き換えられる。さら
に、プロセッサがダウンして走行が不能になった場合、
特定コードに書き換えられたスタック内の戻り番地の位
置が調べられダウン時の関数およびそこへ至るまでの経
路が特定される。
【0011】
【実施例】以下、図に沿って本発明の実施例を説明す
る。図1は本発明の実施例を示すフローチャートであ
る。このフローチャートは、計算機システムにおいて、
戻り番地をスタックへ退避して関数へ分岐した後に、関
数が終了してスタックポインタにより元に復帰する場合
の動作を示す。具体的には、図2の従来の解析例と同様
に、最初にスタックポインタ40の値が指定するスタッ
ク30上から戻り番地を取り出す(ステップ101)。
次に、取り出した戻り番地を参照済みとする(ステップ
102)。次いで、スタックポインタ40の値を戻り番
地の下を指すように変更し(ステップ103)、取り出
した戻り番地に基づき、呼び出し元に復帰する(ステッ
プ104)。
【0012】なお、ステップ102における戻り番地を
参照済みとする方法の具体例として、例えば、計算機の
メモリの0番地がプログラム領域として使用されない場
合は、参照済みにしようとする戻り番地の値が書き込ま
れているスタック30上のビット列を全て0に書き換え
る方法がある。つまり、スタック30上の戻り番地を調
べた場合に、ビット列の全てが0であれば、その戻り番
地が参照済みであることになる。
【0013】また、他の方法として、プログラムが書き
込まれるメモリ上の番地が特定範囲に限定される計算機
の場合、例えば、番地自体は32ビットにより表示され
るものの最上位の1ビットについては必ず0であるよう
な場合は、スタック30上に書き込まれた戻り番地の最
上位の1ビットを1に書き換えることで参照済みとす
る。この場合も、スタック30上の戻り番地を調べた場
合に、ビット列の全てが0であれば、その戻り番地が参
照済みであることになる。しかも、上位より2ビット以
下に戻り番地の内容が残るので、ダウン情報として活用
することが可能になる。
【0014】次に、これら図1の動作を、図2に示した
従来例の関数Bの処理に当てはめてみる。例えば、関数
Bの処理(23)の最中に、プロセッサがダウンしたも
のとして、ダウン原因発生箇所を調べるものとする。す
ると、その状態では、関数Cからの復帰時に関数B(2
0)への戻り番地(32)が「参照済み」となっている
ことになる。そのため、スタックの底から順に戻り番地
を調べると、「参照済み」でない戻り番地は関数Aへの
戻り番地(34)しかなく、その戻り番地の内容のプロ
グラムを調べれば関数Bの呼び出し(12)であり、結
果として、関数B内にダウン発生箇所があることが判明
する。また、そこへ至る経路としては関数Aから関数B
が呼び出されていたことがわかる。
【0015】このように実施例では、計算機システムが
ダウンした後に、スタック30内の戻り番地のどこまで
参照済みであったかをさかのぼって調べることが可能に
なり、ダウン時点ですでに復帰していた関数を特定する
ことにより、最初の呼び出し元の関数からダウン発生箇
所となった関数までを確実に把握することができる。そ
れにより、プロセッサがダウンした場合でも、ダウン情
報を収集してダウン原因の究明が可能になる。
【0016】
【発明の効果】以上述べたように本発明によれば、戻り
番地を参照した際に、その戻り番地を参照済みであるこ
とを示す特定コードに書き換えることにより、プロセッ
サがダウンして走行が不能になった場合であっても、特
定コードに書き換えられたスタック内の戻り番地の位置
を調べることでダウン時の関数およびそこへ至るまでの
経路を特定することが可能になる。
【図面の簡単な説明】
【図1】本発明の実施例を示すフローチャートである。
【図2】ダウン発生時の解析例を示す説明図である。
【図3】従来例を示すフローチャートである。
【符号の説明】
10 関数A 20 関数B 30 スタック 40 スタックポインタ 41 プログラムカウンタ

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 関数を呼び出すごとに戻り番地をスタッ
    クに退避し、関数の終了した時点でスタックに退避した
    戻り番地を参照して呼び出し元に復帰する計算機システ
    ムにおいて、 呼び出し元に復帰するためスタックに退避した戻り番地
    を参照した直後に、その戻り番地が書き込まれているス
    タック上のビット列の少なくとも1ビットを参照済みで
    あることを示す特定コードに書き換える手段と、 プロセッサがダウンして走行不能になった場合に、スタ
    ック内の戻り番地が特定コードに書き換えられている位
    置を調べてダウン時の関数およびそこへ至るまでの経路
    を特定する手段と、 を備えたことを特徴とする計算機システム。
JP6019983A 1994-01-20 1994-01-20 計算機システム Withdrawn JPH07210423A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6019983A JPH07210423A (ja) 1994-01-20 1994-01-20 計算機システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6019983A JPH07210423A (ja) 1994-01-20 1994-01-20 計算機システム

Publications (1)

Publication Number Publication Date
JPH07210423A true JPH07210423A (ja) 1995-08-11

Family

ID=12014424

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6019983A Withdrawn JPH07210423A (ja) 1994-01-20 1994-01-20 計算機システム

Country Status (1)

Country Link
JP (1) JPH07210423A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1295598C (zh) * 2004-03-09 2007-01-17 中国人民解放军国防科学技术大学 双栈返回地址预测器中返回地址栈的恢复方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1295598C (zh) * 2004-03-09 2007-01-17 中国人民解放军国防科学技术大学 双栈返回地址预测器中返回地址栈的恢复方法

Similar Documents

Publication Publication Date Title
US5819024A (en) Fault analysis system
JPH10214203A (ja) 情報処理装置
JP2010102454A (ja) 情報処理装置、情報処理プログラム
JPH07210423A (ja) 計算機システム
CN110851332B (zh) 一种日志文件的处理方法、装置、设备和介质
JPH0731617B2 (ja) プログラム暴走検知方法
GB2539657A (en) Tracing Processing Activity
JPH0922369A (ja) マルチタスキング方式のカーネルにおける不正動作検出方法
JP3399741B2 (ja) ダンプデータの表示方法及び障害解析システム
JP2716310B2 (ja) 関数コール・リターン検出方式
JPS61141047A (ja) 障害情報の退避方式
JPH08286950A (ja) 情報処理装置及びトレース情報格納方法
US5951699A (en) Method and apparatus for verifying integrity of predefined data structures in a computer system
JPH0239251A (ja) トラブル情報収集表示方式
JP2642788B2 (ja) 実行監視点削減方式
JP2001202272A (ja) デバッグの方法とこの方法を用いたデバッグ装置及びデバッグの方法を記録した記録媒体
JP3012618B1 (ja) 被検査プログラムのデバグ方法とそのデバグ方式
JPS6111855A (ja) デ−タ処理装置の機能診断方式
JPH05334118A (ja) プログラム割込み原因となるプログラムステップの事前検出方式
JPH11184728A (ja) デバッグ処理方法ならびに装置及び同方法がプログラムされ記録される記録媒体
JPH08314766A (ja) 情報処理装置
JPS63103339A (ja) プログラムの動作履歴情報記録方式
JPH1021137A (ja) メモリハント・フリー方式
JP2000305808A (ja) マイクロコンピュータ組み込みシステムにおけるイベント検出方法ならびに装置
JPH0434627A (ja) ログアウト情報取得制御方式

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20010403