JP2000099372A - Computer system - Google Patents

Computer system

Info

Publication number
JP2000099372A
JP2000099372A JP10270324A JP27032498A JP2000099372A JP 2000099372 A JP2000099372 A JP 2000099372A JP 10270324 A JP10270324 A JP 10270324A JP 27032498 A JP27032498 A JP 27032498A JP 2000099372 A JP2000099372 A JP 2000099372A
Authority
JP
Japan
Prior art keywords
core dump
program
request
contents
computer system
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
JP10270324A
Other languages
Japanese (ja)
Other versions
JP4269362B2 (en
Inventor
Toshiya Iida
敏也 飯田
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.)
Yamaha Corp
Original Assignee
Yamaha 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 Yamaha Corp filed Critical Yamaha Corp
Priority to JP27032498A priority Critical patent/JP4269362B2/en
Publication of JP2000099372A publication Critical patent/JP2000099372A/en
Application granted granted Critical
Publication of JP4269362B2 publication Critical patent/JP4269362B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To obtains a computer system which surely performs core dump even if such a situation where even an OS performs runaway occurs. SOLUTION: When an application program 22 detects abnormality and accesses a system-down function, a system program 21 sets a flag 41 and activates a boot program 31. When a user recognizes the abnormality and instructs reset from a front panel 51, a PUI 50 issues an interrupt signal, a system program 21 sets value to a general purpose register 61, and the boot program 31 is activated by subsequent reset by the PUI 50. The boot program 31 detects jump to a zero address from a stack 11, also detects continuous reset from a debug board 70 to set the flag 41, also examines the flag 41 and the register 61, activates a core dump program 32 if a core dump request exists to write contents of a RAM 40 in an HDD 20 and also compresses them to store them in the HDD 20.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明はコンピュータシステ
ムに関し、特に、システム内でハングアップや異常が発
生した場合に、主記憶装置の内容をハードディスク(以
下、HDDという)等の大容量記憶装置へ書き出すコア
ダンプ処理に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer system and, more particularly, to write the contents of a main storage device to a large-capacity storage device such as a hard disk (hereinafter referred to as HDD) when a hang-up or abnormality occurs in the system. It relates to core dump processing.

【0002】[0002]

【従来の技術】ワークステーション等のコンピュータシ
ステムでは、システムがハングアップしたことを検出し
た場合や何らかの原因でアプリケーションが異常終了し
たような場合に、異常発生時点で主記憶装置に格納され
ているデータをHDDといったより大容量の外部記憶装
置へ転送することが行われている。こうした処理は一般
にコアダンプ処理などと呼ばれている。こうしたコアダ
ンプ処理はシステムを異常な状態から救済する目的で為
されるほか、救済措置が奏功しなかったような場合は、
原因究明のために行われる事後的な解析においてコアダ
ンプされたデータが利用されることになる。
2. Description of the Related Art In a computer system such as a workstation, when a system hang-up is detected or an application terminates abnormally for some reason, data stored in a main storage device at the time of occurrence of the abnormality is detected. Is transferred to a larger capacity external storage device such as an HDD. Such processing is generally called core dump processing. These core dumps are used to rescue the system from an unusual condition, and if the remedies fail,
The core dumped data will be used in the subsequent analysis performed to determine the cause.

【0003】[0003]

【発明が解決しようとする課題】ところで、従来のコン
ピュータシステムでは異常が発生した時点ですぐにコア
ダンプ処理を行っている。すなわち、OS(オペレーテ
ィングシステム)が監視タイマ等でハングアップを検出
するなど自ら異常を検出するか、あるいは、アプリケー
ションやハードウェアから異常の報告を受けると、OS
は異常処理の一環としてコアダンプ処理を行う。その
後、OSはコアダンプ処理を含む異常処理がすべて完了
した時点でシステムをリブート(再起動)させている。
By the way, in a conventional computer system, a core dump process is performed immediately when an abnormality occurs. That is, when the OS (operating system) detects an abnormality by itself, such as detecting a hang-up with a monitoring timer, or receives a report of an abnormality from an application or hardware, the OS
Performs core dump processing as part of the abnormal processing. After that, the OS reboots (restarts) the system when all the abnormal processes including the core dump process are completed.

【0004】このように、従来のコンピュータシステム
ではOSが正常に動作していることを前提としてコアダ
ンプ処理が行われている。しかしながら、異常が発生す
るような状況下ではシステム内で何が起きているか全く
予測できないこともあり、場合によってはOSすら暴走
するような状況に陥っていることも考えられる。特に、
コンピュータシステムが組み込み機器などに用いられる
場合は、過酷な環境下でシステムを動作させる必要が生
じることも多々あり、OSが正常に動作できない状況に
なってしまう蓋然性が高い。
As described above, in the conventional computer system, the core dump process is performed on the assumption that the OS is operating normally. However, in a situation where an abnormality occurs, it is sometimes impossible to predict what is happening in the system, and in some cases, even the OS may run out of control. In particular,
When a computer system is used for an embedded device or the like, it is often necessary to operate the system under a severe environment, and there is a high possibility that the OS may not operate normally.

【0005】以上の通り、従来のような方法を採用して
いたのではコアダンプ処理を常に確実に行える保証が得
られず、コアダンプ処理の結果をもとに行われる救済措
置や原因究明なども有効に行えないといった問題があ
る。本発明は上記の点に鑑みてなされたものであり、そ
の目的は、OSすら暴走するような危機的な状況が発生
した場合であっても、コアダンプ処理を確実に行ってコ
アダンプされた内容の信頼性を向上させられるコンピュ
ータシステムを提供することにある。
As described above, if the conventional method is employed, it cannot be guaranteed that the core dump processing can always be performed reliably, and the remedy performed based on the result of the core dump processing and investigation of the cause are effective. There is a problem that can not be performed. The present invention has been made in view of the above points, and an object of the present invention is to ensure that core dump processing is performed and contents of core dumped contents are reliably performed even in a critical situation where even the OS runs out of control. An object of the present invention is to provide a computer system capable of improving reliability.

【0006】[0006]

【課題を解決するための手段】以上の課題を解決するた
めに、請求項1記載の発明は、システム内で異常が発生
した場合に該システムの主記憶の内容を外部記憶装置へ
書き出すコアダンプを行うコンピュータシステムにおい
て、前記コアダンプの要求の有無を表す要求データを保
持する保持手段と、前記異常の発生を示す事象を検出し
た時点で、前記コアダンプの要求を示す要求データを前
記保持手段に設定する設定手段と、前記異常の発生に伴
って起動されるシステムのリブート処理が完了してから
前記要求データを調べ、該要求データが前記コアダンプ
の要求を示していることを条件として前記コアダンプを
行うコアダンプ手段とを具備することを特徴としてい
る。また、請求項2記載の発明は、請求項1記載の発明
において、前記保持手段として、前記主記憶上の所定位
置に設けられたフラグを有することを特徴としている。
また、請求項3記載の発明は、請求項1又は2記載の発
明において、前記保持手段として、システムのハードウ
ェアリセットによって保持内容が影響を受けない不揮発
性媒体を有することを特徴としている。
In order to solve the above-mentioned problems, according to the present invention, a core dump for writing the contents of a main memory of a system to an external storage device when an abnormality occurs in the system is provided. In the computer system to be performed, holding means for holding request data indicating presence / absence of the request for core dump, and request data indicating the request for core dump are set in the holding means when an event indicating occurrence of the abnormality is detected. Setting means, and a core dump for performing the core dump on condition that the request data indicates the core dump request after the reboot process of the system started in response to the occurrence of the abnormality is completed. Means. According to a second aspect of the present invention, in the first aspect of the present invention, the holding means includes a flag provided at a predetermined position on the main memory.
According to a third aspect of the present invention, in the first or second aspect, the holding means includes a non-volatile medium whose contents are not affected by hardware reset of the system.

【0007】また、請求項4記載の発明は、請求項1〜
3の何れかの項記載の発明において、システム上を走行
するプログラムでジャンプが発生したときのジャンプ先
アドレスを記憶する記憶手段を有し、前記設定手段は、
前記ジャンプ先アドレスが前記プログラムの走行するは
ずのないアドレスであることを検出して、前記要求デー
タを前記保持手段に設定することを特徴としている。ま
た、請求項5記載の発明は、請求項1〜4の何れかの項
記載の発明において、前記コアダンプ手段は、前記主記
憶の内容を前記外部記憶装置上の固定領域に書き出すも
のであって、該固定領域に書き出された前記主記憶の内
容を前記外部記憶装置上の蓄積領域に蓄積してゆく蓄積
手段をさらに有することを特徴としている。また、請求
項6記載の発明は、請求項5記載の発明において、前記
蓄積手段は、前記システム上を走行するアプリケーショ
ンプログラムに組み込まれ、前記主記憶の内容に圧縮処
理を施してから前記外部記憶装置へ蓄積させてゆくこと
を特徴としている。
[0007] The invention according to claim 4 is based on claims 1 to
3. The invention according to claim 3, further comprising storage means for storing a jump destination address when a jump occurs in a program running on the system, wherein the setting means comprises:
The present invention is characterized in that it detects that the jump destination address is an address where the program should not run, and sets the request data in the holding means. According to a fifth aspect of the present invention, in the first aspect of the present invention, the core dump unit writes the contents of the main storage to a fixed area on the external storage device. And a storage unit for storing the contents of the main memory written in the fixed area in a storage area on the external storage device. According to a sixth aspect of the present invention, in the fifth aspect of the present invention, the storage means is incorporated in an application program running on the system, and compresses the contents of the main memory before the external storage. It is characterized in that it is stored in the device.

【0008】[0008]

【発明の実施の形態】以下、図面を参照して本発明の一
実施形態について説明する。まず最初に本発明について
その概要を説明する。従来の技術における問題点を考察
して分かることは、コアダンプ機能を実現するプログラ
ムはそれまでのシステム状態にかかわらず正常に動作す
る必要性があるほか、OSを介在することなく動作可能
なものでなければならない。そのためには、電源投入直
後などのように未だOSも立ち上がっていない状態、す
なわち、システムのブート時という初期化フェーズでコ
アダンプ処理を行う必要があることになる。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described below with reference to the drawings. First, the outline of the present invention will be described. Considering the problems in the conventional technology, it can be understood that the program for realizing the core dump function needs to operate normally regardless of the previous system state, and can operate without the intervention of the OS. There must be. For that purpose, it is necessary to perform the core dump process in a state where the OS has not yet started up, for example, immediately after the power is turned on, that is, in the initialization phase at the time of booting the system.

【0009】こうしたことから本発明は、従来のように
異常発生時点ですぐコアダンプするのではなく、リブー
ト時にコアダンプ処理を行うようにしている。ここで、
コアダンプの要求はシステムの様々な状態において生じ
うる。そのため、本発明ではコアダンプ要求のための情
報を様々な方法を用いてシステム上に残しておいた上で
ブートプログラムを起動し、当該プログラムによるリブ
ート動作でシステムが正常に立ち上がってからコアダン
ププログラムを起動してコアダンプを行っている。
In view of the above, according to the present invention, a core dump process is performed at the time of rebooting, instead of performing a core dump immediately upon occurrence of an abnormality as in the related art. here,
Requests for core dumps can occur in various states of the system. Therefore, in the present invention, the information for the core dump request is left on the system using various methods, the boot program is started, and the core dump program is started after the system is normally started by the reboot operation by the program. And doing a core dump.

【0010】ちなみに、ブートプログラム側にコアダン
プ機能を持たせるのではなく、システム上で走行するO
Sを含めた全てのプログラムにコアダンプ機能を持たせ
ることも考えられる。しかし、システム上では、ユーザ
が通常走行させる一般的なアプリケーションプログラ
ム,システムの初期設定及び状態確認を行うサービス用
プログラム,生産時にシステムを検査するために使用す
る検査プログラムなど、様々なアプリケーションプログ
ラムが走行する。これらプログラム全てにコアダンプ機
能を重複させて組み込むことは、主記憶領域を無駄に消
費するのみならず、アプリケーションを開発する上での
負担も大きくなる。この点、コアダンプ機能を一つのコ
アダンププログラムとしてまとめれば主記憶を浪費する
ことは無くなるが、アプリケーション全てにコアダンプ
プログラムをリンクさせる必要があるため、やはりアプ
リケーション開発上の負担となる。したがってコアダン
プ機能はブートプログラムに組み込むのが最適である。
[0010] By the way, instead of having the core dump function on the boot program side, O which runs on the system
It is conceivable that all programs including S have a core dump function. However, various application programs run on the system, such as a general application program that the user normally runs, a service program for performing initial settings and status confirmation of the system, and an inspection program used for inspecting the system during production. I do. Incorporating the core dump function in all of these programs in a redundant manner not only wastes the main storage area but also increases the burden on developing the application. In this regard, if the core dump function is integrated as a single core dump program, the main memory will not be wasted, but it is necessary to link the core dump program to all the applications, which again imposes a burden on application development. Therefore, it is best to incorporate the core dump function into the boot program.

【0011】さて、図1は本実施形態によるコンピュー
タシステムの構成を示すブロック図である。同図におい
て、CPU(中央処理装置)10は、後述するROM3
0やRAM40に格納された各種プログラムを実行する
ことでシステム内の各部の動作を統括制御する。このC
PU10は一般的なマイクロプロセッサなどと同様にプ
ログラムカウンタ,レジスタ類を備えているほか、スタ
ック11を具備している。CPU10はジャンプ命令を
実行する度にジャンプ先のアドレスをスタック11に設
定する構成になっている。
FIG. 1 is a block diagram showing the configuration of the computer system according to the present embodiment. In FIG. 1, a CPU (Central Processing Unit) 10 includes a ROM 3
By executing various programs stored in the RAM 40 and the RAM 40, the operation of each unit in the system is generally controlled. This C
The PU 10 includes a program counter and registers as well as a general microprocessor and the like, and also includes a stack 11. The CPU 10 is configured to set a jump destination address in the stack 11 every time a jump instruction is executed.

【0012】HDD20はRAM40(後述)上にロー
ドされるシステムプログラム21及びアプリケーション
プログラム22を予め格納している。これらのうち、シ
ステムプログラム21はOSに相当するものである。ま
た、アプリケーションプログラム22は、アプリケーシ
ョンとしての通常の動作を行うほか、コアダンプ処理が
終了した後、採取されたコアダンプデータに圧縮処理を
施してHDD20上に蓄積してゆく機能を持っている。
その際、ブートプログラム31がコアダンププログラム
32を起動してコアダンプ処理を行った場合は、その旨
をシステムプログラム21に通知するようにしており、
システムプログラム21は当該通知に基づいてコアダン
プが行われたかどうかをRAM40上にレコードとして
残しておく。アプリケーションプログラム22はこのレ
コードの内容を参照することで、コアダンプが実施され
たかどうを知ることができる。なお、かかる蓄積機能を
ブートプログラム31でなくアプリケーションプログラ
ム22に組み込む理由は、圧縮処理というプログラムサ
イズの大きな処理が含まれているためであって、こうし
た機能をブートプログラム側に含ませて主記憶上に常駐
させることが困難であることによる。したがって、圧縮
処理を省くなどしてプログラムサイズを小さくすれば、
ブートプログラム側に蓄積機能を持たせることも可能で
ある。
The HDD 20 stores a system program 21 and an application program 22 loaded on a RAM 40 (described later) in advance. Among these, the system program 21 corresponds to the OS. The application program 22 performs a normal operation as an application, and has a function of performing compression processing on collected core dump data and storing the data on the HDD 20 after the core dump processing is completed.
At that time, when the boot program 31 starts the core dump program 32 and performs the core dump process, the system program 21 is notified of the fact,
The system program 21 records in the RAM 40 whether or not a core dump has been performed based on the notification as a record. The application program 22 can know whether or not a core dump has been performed by referring to the contents of this record. The reason why such a storage function is incorporated into the application program 22 instead of the boot program 31 is that a large-size process called a compression process is included. Due to the difficulty in resident in the city. Therefore, if the program size is reduced by omitting the compression process,
It is also possible to provide the boot program with a storage function.

【0013】このほか、HDD20には図2に示すよう
な固定領域23及び蓄積領域24が設けられている。固
定領域23はコアダンプ処理によってRAM40の内容
の一部ないし全部が転送される領域であって、固定領域
23のHDD上における記憶位置は予め決められてい
る。そのため、コアダンプ処理が行われると固定領域2
3の内容はその都度書き換えられることになる。一方、
蓄積領域24はコアダンプの度に更新される固定領域2
3の内容を順次蓄積してゆくための領域であって、アプ
リケーションプログラム22の管轄下にあるファイルシ
ステムで構成されるため、実際にはHDD20上の任意
の領域に設ければ良い。蓄積領域24を設ける主たる理
由は、異常な状態が何度も生じるような場合に採取した
コアダンプをすべて保存しておき、これらを総合して原
因解析を行うためである。
In addition, the HDD 20 is provided with a fixed area 23 and a storage area 24 as shown in FIG. The fixed area 23 is an area to which part or all of the contents of the RAM 40 is transferred by the core dump process, and the storage location of the fixed area 23 on the HDD is predetermined. Therefore, when the core dump process is performed, the fixed area 2
3 will be rewritten each time. on the other hand,
The storage area 24 is a fixed area 2 updated every time a core dump is performed.
3 is an area for sequentially accumulating the contents of 3 and is constituted by a file system under the control of the application program 22. The main reason for providing the storage area 24 is to store all the core dumps collected when an abnormal state occurs many times, and perform a cause analysis by integrating them.

【0014】次に、ROM(リードオンリーメモリ)3
0は、システムをブートさせるためのブートプログラム
31とコアダンプ処理を行うコアダンププログラム32
を記憶している。なお、本実施形態においてはブートプ
ログラム31の先頭番地が0x“a0000000”番
地(0xは16進数を意味する標記)であるものとす
る。ここで、本実施形態によるコンピュータシステムで
は0x“a0000000”番地と“0”番地が等価に
なっている。すなわち、論理的には命令アドレスとして
32ビットの値を指定することができるが、CPU10
は命令アドレスの上位4ビットを常に“0”と見なす造
りになっており、x“a0000000”番地は“0”
番地と等しく扱われる。ただ、ブートプログラム31へ
ジャンプする際にジャンプ先として“0”番地を指定す
ると、プログラムにバグがあって“0”番地へジャンプ
した場合と区別することができなくなる。そこで本実施
形態では、システムプログラム21等が意図的にブート
プログラム31へジャンプする場合には、0x“a00
00000”番地へジャンプするようにプログラムを作
成している。
Next, a ROM (read only memory) 3
0 is a boot program 31 for booting the system and a core dump program 32 for performing core dump processing.
I remember. In the present embodiment, it is assumed that the start address of the boot program 31 is 0x “a00000000” (0x is a notation indicating a hexadecimal number). Here, in the computer system according to the present embodiment, the address 0x “a00000000” and the address “0” are equivalent. That is, logically, a 32-bit value can be specified as an instruction address.
Is such that the upper 4 bits of the instruction address are always regarded as "0", and the address x "a00000000" is "0".
Address is treated as equal. However, if the address "0" is specified as the jump destination when jumping to the boot program 31, it is impossible to distinguish the case where the program jumps to the address "0" due to a bug in the program. Therefore, in the present embodiment, when the system program 21 or the like intentionally jumps to the boot program 31, 0x “a00
The program is created to jump to the address "00000".

【0015】次に、RAM(ランダムアクセスメモリ)
40は、ブートプログラム31がHDD20からロード
するシステムプログラム21及びアプリケーションプロ
グラム22を記憶するほか、これら各プログラムが使用
する変数などを記憶する。これに加えて、RAM40は
予め決められた所定位置に1バイトのフラグ41(詳細
については後述)を記憶している。次に、PUI(パネ
ルユーザインタフェース)50は、ユーザがフロントパ
ネル51を操作したときの操作内容を当該フロントパネ
ル51から受け取ってCPU10へ伝達するインタフェ
ース回路である。例えば、PUI50はフロントパネル
51上のリセットボタン(図示省略)が押されたことを
知り、CPU10に対してNMI信号(Non-Maskable-I
nterrupt;マスク不可能な割り込み要求)を送出する。
一般的なマイクロプロセッサと同様に、本実施形態では
CPUに対する割り込みとしてマスク可能な割り込み
(いわゆるIRQ)とマスク不可能な割り込みがある
が、このNMI信号は最も優先度の高い割り込み要求で
ある。また、PUI50はNMI信号をCPU10へ送
出してから一定時間が経過した後にシステム各部へリセ
ット信号を送出する機能も持っている。
Next, a RAM (random access memory)
Reference numeral 40 stores the system program 21 and the application program 22 that the boot program 31 loads from the HDD 20, and also stores variables used by these programs. In addition, the RAM 40 stores a 1-byte flag 41 (details will be described later) at a predetermined position. Next, a PUI (panel user interface) 50 is an interface circuit that receives operation contents when the user operates the front panel 51 from the front panel 51 and transmits the operation contents to the CPU 10. For example, the PUI 50 knows that a reset button (not shown) on the front panel 51 has been pressed, and sends an NMI signal (Non-Maskable-I
nterrupt; non-maskable interrupt request).
Similar to a general microprocessor, in the present embodiment, there are a maskable interrupt (so-called IRQ) and a non-maskable interrupt as an interrupt to the CPU. The NMI signal is the interrupt request with the highest priority. The PUI 50 also has a function of sending a reset signal to each part of the system after a certain period of time has passed since sending the NMI signal to the CPU 10.

【0016】次に、RTC(リアルタイムクロック)6
0はCPU10の制御下で動作するカレンダ用の集積回
路であって、一般的なカレンダ機能を有するほか、汎用
的に使用することの可能な汎用レジスタ61を備えてい
る。汎用レジスタ61の内容はCPU10が読み書き可
能であり、また、この汎用レジスタ61はバッテリバッ
クアップされており、ハードウェアリセットを行っても
その内容が保持されるようになっている。なお、本実施
形態では汎用レジスタ61が4ビットで構成されている
ものとする。次に、デバッグボード70はシステムの開
発段階でのみ接続されるデバッグ専用の回路である。
Next, an RTC (real-time clock) 6
Reference numeral 0 denotes a calendar integrated circuit that operates under the control of the CPU 10 and has a general calendar function and a general-purpose register 61 that can be used for general purposes. The contents of the general-purpose register 61 are readable and writable by the CPU 10, and the general-purpose register 61 is backed up by a battery so that the content is retained even after a hardware reset. In the present embodiment, it is assumed that the general-purpose register 61 is composed of 4 bits. Next, the debug board 70 is a circuit dedicated to debugging that is connected only at the development stage of the system.

【0017】ところで、前述のようにコアダンプの要求
は種々のシステム状態において生じうるが、本実施形態
では以下に述べる事象を契機としてコアダンプ要求を行
っている。 〔契機 〕プログラムによるコアダンプ付きリブート
要求 システムプログラム21やアプリケーションプログラム
22はプログラム走行中にソフトウェア的な異常を検出
すると、システムプログラム21内に予め用意されてい
る関数(以下ではこれを SystemDown 関数とする)を呼
び出す。この SystemDown 関数は、RAM40上のフラ
グ41に所定値を書き込み、それによってコアダンプ要
求を設定するようにしている。この所定値はどのような
値でも良いが、本実施形態ではコアダンプ要求が存在し
ない場合に“0”が設定されるものとし、コアダンプ要
求を設定する場合には“0”以外の任意の固定値として
0x“AA”を書き込むようにしている。また、 Syste
mDown 関数はフラグ41へ所定値を格納した後に、ブー
トプログラム31の先頭番地(すなわち、0x“a00
00000”番地)へジャンプしてリブート処理を起動
させる。
Although a core dump request can occur in various system states as described above, in the present embodiment, a core dump request is made in response to an event described below. [Opportunity] Reboot request with core dump by program When the system program 21 or the application program 22 detects a software abnormality while the program is running, a function prepared in advance in the system program 21 (hereinafter referred to as a SystemDown function) Call. This SystemDown function writes a predetermined value to the flag 41 on the RAM 40, thereby setting a core dump request. This predetermined value may be any value, but in the present embodiment, it is assumed that “0” is set when there is no core dump request, and when the core dump request is set, any fixed value other than “0” is set. Is written as 0x “AA”. Also, Syste
After the mDown function stores a predetermined value in the flag 41, the start address of the boot program 31 (that is, 0x “a00
00000 ") to start the reboot process.

【0018】〔契機〕フロントパネルからのリセット
指示 システムの動作が異常であることをユーザが認識したよ
うな場合、ユーザはフロントパネル51に設置されてい
るリセットボタンを押下し、システムに対してハードウ
ェアリセットの指示を行う。前述したように、リセット
ボタンの押下に伴ってPUI50がNMI信号を発生さ
せるため、このNMI信号が割り込み処理を担うシステ
ムプログラム21へのコアダンプ要求の契機となる。
When the user recognizes that the operation of the system is abnormal, the user presses a reset button provided on the front panel 51 and issues a hardware reset to the system. Perform a wear reset instruction. As described above, when the reset button is pressed, the PUI 50 generates an NMI signal, and this NMI signal triggers a core dump request to the system program 21 which is responsible for interrupt processing.

【0019】〔契機 〕デバッグボードからの連続2
回のリセット指示 先に説明したように、システムの開発段階では動作確認
のためにデバッグボード70が接続される。そこで、デ
バッグボード70からコアダンプすべき状況(即ち、異
常発生時に対応した状況)を意図的に再現可能とするた
めに、デバッグボート70からハードウェアリセットの
指示が2回連続して行われた場合にこれをコアダンプ要
求と見なす。なお、デバッグボード70から2回連続し
てリセット指示があるかどうかはブートプログラム31
が判断する。すなわち、ブートプログラム31はRAM
40上にカウンタを設けるようにしており、起動される
度にカウンタの値を“1”増加させるほか、その後に行
われるコアダンプ処理の直前で、カウンタの値が“2”
になっていることを検出してコアダンプ要求を発生させ
る処理と、カウンタの値を“0”に初期化する処理を順
次行うようにしている。なお、2回連続という条件を付
したのは、コアダンプすべき状況にない場合でもデバッ
グボード70がハードウェアリセットを出す場合がある
ためである。
[Trigger] Consecutive 2 from debug board
Reset Instructions As described above, at the development stage of the system, the debug board 70 is connected for operation confirmation. Therefore, in order to intentionally reproduce a situation in which a core dump is to be performed from the debug board 70 (that is, a situation corresponding to the occurrence of an abnormality), a case in which a hardware reset instruction is issued twice consecutively from the debug boat 70 This is considered a core dump request. It should be noted that whether the reset instruction is given twice consecutively from the debug board 70 is determined by the boot program 31.
Judge. That is, the boot program 31
A counter is provided on the counter 40. The counter value is incremented by "1" every time it is started, and the counter value is set to "2" immediately before the core dump processing performed thereafter.
, And a process of generating a core dump request and a process of initializing a counter value to “0” are sequentially performed. The reason that the condition of two consecutive executions is given is that the debug board 70 may issue a hardware reset even when the core dump is not performed.

【0020】〔契機 〕“0”番地へのジャンプ アプリケーションやOSが正しくプログラミングされて
いる限り、プログラムが“0”番地へジャンプすること
は通常考えられない。しかし、アプリケーション等にバ
グが存在すると“0”番地にジャンプするような状況が
生じうる。例えば、関数呼び出しを行う場合は呼び出さ
れる関数の先頭アドレスをポインタとして指定すること
になる。その場合、プログラムにバグがあってポインタ
に正しい値が設定されないと、デフォルトで設定される
“0”がポインタに設定されてしまい、結果的に“0”
番地(即ち、ブートプログラム31の先頭アドレス)に
ジャンプしてしまう。こうしたことから、ブートプログ
ラム31は自身が“0”番地からのジャンプによって起
動されたことを検出した場合は、これをコアダンプ要求
としている。
[Opportunity] Jump to address "0" As long as the application or the OS is correctly programmed, it is not usually considered that the program jumps to the address "0". However, if a bug exists in the application or the like, a situation may occur in which the program jumps to the address “0”. For example, when performing a function call, the start address of the function to be called is specified as a pointer. In this case, if a correct value is not set in the pointer due to a bug in the program, "0" set by default is set in the pointer, and as a result, "0" is set.
The address jumps (that is, the start address of the boot program 31). For this reason, if the boot program 31 detects that it has been started by jumping from the address "0", it determines that this is a core dump request.

【0021】次に、リブート後にコアダンプを行うため
の実現手段について説明する。 〔実現手段〕この実現手段では少なくともOSが正常
に動いている状態を前提としており、前述した契機に
対応するものである。当該実現手段では、 SystemDown
関数が設定するフラグ41を参照してその内容がx“A
A”である場合にコアダンプ要求が存在していると判断
する。上述したように、 SystemDown 関数は最終的に0
x“a0000000”番地へ分岐してソフトウェア的
にリブート処理を起動させている。換言すれば、前述の
契機ではハードウェアリセットを媒介としていないた
め、RAM40の記憶内容を信用することができる。し
たがって、RAM40上にフラグ41を設け、異常発生
時点でフラグ41に値を設定し、リブート後に当該領域
の内容に従ってコアダンプ処理の要否を判断しても問題
はない。また、この実現手段では、フラグ41の他にも
エラー時における種々のデータを併せてRAM40上に
残すことができるという利点がある。
Next, means for realizing a core dump after a reboot will be described. [Implementation Means] This implementation means is based on the assumption that at least the OS is operating normally, and corresponds to the above-mentioned opportunity. In the realization means, SystemDown
Referring to the flag 41 set by the function, the content is x "A
If A ", it is determined that a core dump request exists. As described above, the SystemDown function finally returns 0.
x The program branches to address "a00000000" to activate the reboot process by software. In other words, since the above-mentioned trigger does not involve a hardware reset, the contents stored in the RAM 40 can be trusted. Therefore, there is no problem even if the flag 41 is provided on the RAM 40, the value is set in the flag 41 when an abnormality occurs, and it is determined whether the core dump process is necessary or not according to the contents of the area after the reboot. Further, this realizing means has an advantage that various data at the time of an error other than the flag 41 can be left in the RAM 40 together.

【0022】〔実現手段〕この実現手段は、ハングア
ップしている場合やOSが暴走している場合などのよう
に、ハードウェアリセットを経由させてからリブートす
る必要があるときに用いられる実現手段である。つま
り、この実現手段は上述した契機や契機のための
ものである(もっとも、契機の場合などに用いること
も可能である)。前述したように、ハードウェアリセッ
トを行うと、リセット動作と命令実行動作が重なりあっ
てRAM40が予期せず書き換えられるなどの恐れがあ
り、その内容は信用できないものとなる。したがって、
こうした場合にはRAM40上のフラグ41を用いてい
る実現手段が使用できない。
[Implementation means] This implementation means is used when it is necessary to perform a hardware reset and then reboot, such as when the system is hung up or when the OS is running out of control. It is. In other words, this realization means is for the above-mentioned opportunity or opportunity (although it can also be used in the case of an opportunity, etc.). As described above, when the hardware reset is performed, the reset operation and the instruction execution operation may overlap with each other and the RAM 40 may be unexpectedly rewritten, and the contents thereof are unreliable. Therefore,
In such a case, the realizing means using the flag 41 on the RAM 40 cannot be used.

【0023】こうしたことから、本実現手段ではRT
C60内に設けた汎用レジスタ61を利用している。例
えば、ユーザがフロントパネル51のリセットボタンを
押下する契機の場合、システムプログラム21はNM
I信号による割り込み処理の過程で、汎用レジスタ61
に固定値として例えばx“a”を書き込んでおく。この
後、NMI信号から一定時間後にPUI50がシステム
各部にハードウェアリセットをかけるが、この場合にも
汎用レジスタ61の内容は不変である。したがって、ハ
ードウェアリセット後に起動されるブートプログラム3
1は、汎用レジスタ61の内容が0x“a”であればコ
アダンプ要求が存在するものと見なす。このほか、ブー
トプログラム31はコアダンプ処理を行ったのちに、汎
用レジスタ61の内容を“0”に初期化して、次のコア
ダンプ要求が設定される場合に備える。
From the above, according to the present realization means, RT
The general-purpose register 61 provided in the C60 is used. For example, when the user presses the reset button on the front panel 51, the system program 21
In the process of interrupt processing by the I signal, the general-purpose register 61
For example, x “a” is written as a fixed value. Thereafter, the PUI 50 performs a hardware reset on each part of the system after a certain time from the NMI signal. In this case as well, the contents of the general-purpose register 61 remain unchanged. Therefore, the boot program 3 started after the hardware reset
If the content of the general-purpose register 61 is 0x “a”, it is considered that a core dump request exists. In addition, after performing the core dump process, the boot program 31 initializes the content of the general-purpose register 61 to “0”, in preparation for a case where the next core dump request is set.

【0024】なお、実際の動作過程では、ブートプログ
ラム31はソフトウェア的に起動さされたのかハードウ
ェア的に起動されたかに依らず、フラグ41と汎用レジ
スタ61の双方を常に調べるようにしている。つまり、
ハードウェア的に起動されたのであれば汎用レジスタ6
1にはコアダンプ要求が設定されており、また、ソフト
ウェア的に起動されたのであれば汎用レジスタ61にコ
アダンプ要求は無くフラグ41にだけコアダンプ要求が
設定されている。また、不揮発性メモリなどのバッテリ
バックアップされた記憶手段を持つ構成とすることで、
こうした記憶手段を汎用レジスタ61の代わりに用いる
ことができる。
In the actual operation process, the boot program 31 always checks both the flag 41 and the general-purpose register 61 irrespective of whether the boot program 31 is started by software or by hardware. That is,
General-purpose register 6 if activated by hardware
1 indicates that a core dump request has been set, and if activated by software, there is no core dump request in the general-purpose register 61 and a core dump request is set only in the flag 41. In addition, by adopting a configuration having storage means backed up by a battery such as a nonvolatile memory,
Such storage means can be used in place of the general-purpose register 61.

【0025】〔実現手段〕この実現手段は、“0”番
地へジャンプした結果としてブートプログラム31が起
動された場合に用いられるものであって、上述した契機
に対応する実現手段である。本実現手段では、ブー
トプログラム31がスタック11に保持されたジャンプ
先アドレスを参照し、その内容が“0”であれば“0”
番地からのジャンプであると見なし、コアダンププログ
ラム32を起動してコアダンプ処理を行うようにしてい
る。
[Implementation Means] This implementation means is used when the boot program 31 is started as a result of jumping to the address "0", and is an implementation means corresponding to the above-mentioned trigger. In this realizing means, the boot program 31 refers to the jump destination address held in the stack 11, and if the content is “0”, the boot program 31 reads “0”.
The jump from the address is considered, and the core dump program 32 is activated to perform the core dump processing.

【0026】次に、上記構成によるコンピュータシステ
ムで行われるコアダンプ処理について説明する。なお、
以下ではシステムプログラム21及びアプリケーション
プログラム22が既にRAM40上に読み込まれてお
り、OSやアプリケーションが走行して状況にあるもの
とする。
Next, a core dump process performed in the computer system having the above configuration will be described. In addition,
In the following, it is assumed that the system program 21 and the application program 22 have already been read into the RAM 40, and the OS and the application are running and in a situation.

【0027】まず、上述した契機が発生した場合につ
いて説明する。アプリケーションプログラム22が実行
中に何らかの異常を検出した場合、アプリケーションプ
ログラム22はシステムプログラム21内の SystemDow
n 関数を呼び出す。これによって、システムプログラム
21はフラグ41に0x“AA”を書き込んでコアダン
プ要求を設定したのち、ブートプログラム31の先頭番
地へジャンプする。ブートプログラム31は、既存のブ
ート処理を実行することにより、システムを正常に立ち
上げるために最低限必要な初期化処理等を行う。次に、
ブートプログラム31は、フラグ41および汎用レジス
タ61の内容をそれぞれ調べ、フラグ41に0x“A
A”が設定されることを検出してコアダンプ要求を認識
し、コアダンププログラム32を起動してRAM40の
内容をHDD20上の固定領域23へ順次書き出してゆ
く。
First, the case where the above-mentioned trigger occurs will be described. If any abnormality is detected during execution of the application program 22, the application program 22 executes SystemDow in the system program 21.
Call the n function. As a result, the system program 21 writes 0x “AA” in the flag 41 to set a core dump request, and then jumps to the start address of the boot program 31. The boot program 31 performs an initialization process and the like which are required at least to normally start up the system by executing an existing boot process. next,
The boot program 31 checks the contents of the flag 41 and the general-purpose register 61, and sets the flag 41 to 0x “A
A "is set, the core dump request is recognized, the core dump program 32 is activated, and the contents of the RAM 40 are sequentially written to the fixed area 23 on the HDD 20.

【0028】このコアダンプ処理の後、ブートプログラ
ム31はフラグ41及び汎用レジスタ61をクリアする
とともに、コアダンプを行ったことをシステムプログラ
ム21に通知するデータをRAM40上に設定する。次
に、ブートプログラム31はシステムプログラム21を
HDD20からRAM40上にロードし、当該システム
プログラム21へ処理を委譲してOSを立ち上げる。こ
の後、システムプログラム21はコアダンプを行ったこ
とを示すレコードを設定し、アプリケーションプログラ
ム22をHDD20から読み出して起動させる。アプリ
ケーションプログラム22はアプリケーション本来の処
理を行う前に、上記レコードからコアダンプが行われた
ことを知り、固定領域23上に採取されたコアダンプデ
ータを読み出してこれに圧縮処理を施したのち、蓄積領
域24上に新たにファイルを作成して、圧縮されたコア
ダンプデータを当該ファイルに書き込んでゆく。例え
ば、最初は図2に示したようにファイルF1にコアダン
プデータが記憶され、以後、コアダンプ処理が行われる
度にファイルF2,ファイルF3,……,のようにファ
イルが順次作成されてコアダンプデータが蓄積されてゆ
く。
After the core dump processing, the boot program 31 clears the flag 41 and the general-purpose register 61 and sets data in the RAM 40 for notifying the system program 21 that the core dump has been performed. Next, the boot program 31 loads the system program 21 from the HDD 20 onto the RAM 40, delegates processing to the system program 21, and starts up the OS. Thereafter, the system program 21 sets a record indicating that a core dump has been performed, reads the application program 22 from the HDD 20, and activates it. The application program 22 knows that a core dump has been performed from the above record before performing the original processing of the application, reads out the core dump data collected on the fixed area 23, performs compression processing on the core dump data, and then stores the data in the storage area 24. A new file is created above, and the compressed core dump data is written to the file. For example, first, the core dump data is stored in the file F1 as shown in FIG. 2, and thereafter, each time the core dump processing is performed, the files are sequentially created as a file F2, a file F3,. It accumulates.

【0029】次に、上述した契機が発生した場合につ
いて説明する。システムがハングアップするなどして、
ユーザがフロントパネル51からシステムに指示を行っ
ても応答が無いことに気付いた場合、ユーザはフロント
パネル51上のリセットボタンを押下する。これによっ
て、PUI50はNMI信号をCPU10に対して送出
する。CPU10はこのNMI信号を契機としてシステ
ムプログラム21上の割り込み処理を起動させ、この割
り込み処理の中で汎用レジスタ61に固定値0x“a”
を書き込んでコアダンプ要求を設定する。この後、PU
I50はNMI要求を送出してから一定時間後にリセッ
ト信号をシステム内の各部へ送出してハードウェアリセ
ットを行う。このハードウェアリセットにより、システ
ム内の各部が正常な状態に復帰し、ROM30の先頭番
地からブートプログラム31が走行する。ブートプログ
ラム31は契機の場合と同様にして、既存のブート処
理を行ったのち、フラグ41および汎用レジスタ61の
内容を調べ、汎用レジスタ61の保持内容が0x“a”
であることからコアダンププログラム32にコアダンプ
処理を行わせる。この後は、OS及びアプリケーション
が順次立ち上がり、アプリケーションプログラム22が
コアダンプデータの蓄積処理を行う。
Next, a case where the above-described trigger occurs will be described. The system hangs,
When the user notices that there is no response even if the user gives an instruction to the system from the front panel 51, the user presses a reset button on the front panel 51. As a result, the PUI 50 sends an NMI signal to the CPU 10. The CPU 10 activates an interrupt process on the system program 21 in response to the NMI signal, and in the interrupt process, stores the fixed value 0x “a” in the general-purpose register 61.
To set a core dump request. After this, PU
The I50 sends a reset signal to each part in the system after a fixed time from sending the NMI request to perform a hardware reset. By this hardware reset, each unit in the system returns to a normal state, and the boot program 31 runs from the head address of the ROM 30. The boot program 31 checks the contents of the flag 41 and the general-purpose register 61 after performing the existing boot processing in the same manner as in the case of the trigger.
Therefore, the core dump program 32 is caused to perform a core dump process. Thereafter, the OS and the application start up sequentially, and the application program 22 performs a core dump data accumulation process.

【0030】次に、上述した契機が発生した場合につ
いて説明する。デバッグボート70が1回目のハードウ
ェアリセット指示を行ってブートプログラム31が起動
すると、ブートプログラム31はRAM40上のカウン
タの値を“1”増加させ、その値が“2”になっている
かどうか調べる。この場合はカウンタの値が“1”であ
るため、ブートプログラム31は引き続いて既存のブー
ト処理を実行する。このブート処理の最中にデバッグボ
ード70から2回目のハードウェアリセット指示がある
と、当該指示に対応したリセット動作の後に再びブート
プログラム31が起動される。これにより、ブートプロ
グラム31はRAM40上のカウンタの値に“1”を加
算し、カウンタの値が“2”になっていることからデバ
ッグボード70からの連続するリセット指示であること
を検出し、フラグ41に0x“AA”を書き込んでコア
ダンプ要求を設定したのち、カウンタの値を“0”に初
期化する。次に、ブートプログラム31は1回目のハー
ドウェアリセットの場合と同様に既存のブート処理を行
う。このブート処理が完了すると、ブートプログラム3
1は契機ないし契機の場合と同様にしてフラグ41
及び汎用レジスタ61を調べ、フラグ41の内容からコ
アダンプ要求を検出してコアダンププログラム32にコ
アダンプを行わせる。この後は、OSとアプリケーショ
ンが順次立ち上がって、アプリケーションプログラム2
2がコアダンプデータの蓄積処理を行う。
Next, the case where the above-mentioned trigger occurs will be described. When the boot program 31 is activated by the debug boat 70 giving the first hardware reset instruction, the boot program 31 increases the value of the counter on the RAM 40 by "1" and checks whether the value is "2". . In this case, since the value of the counter is “1”, the boot program 31 subsequently executes the existing boot processing. If there is a second hardware reset instruction from the debug board 70 during this boot processing, the boot program 31 is started again after the reset operation corresponding to the instruction. As a result, the boot program 31 adds “1” to the value of the counter on the RAM 40, and detects that the reset value is “2”, which indicates that it is a continuous reset instruction from the debug board 70, After writing 0x “AA” to the flag 41 to set a core dump request, the counter value is initialized to “0”. Next, the boot program 31 performs an existing boot process as in the case of the first hardware reset. When this boot processing is completed, the boot program 3
1 is an opportunity or a flag 41 as in the case of the opportunity.
Then, the general-purpose register 61 is checked, a core dump request is detected from the contents of the flag 41, and the core dump program 32 performs a core dump. Thereafter, the OS and the application start up sequentially, and the application program 2
2 performs core dump data accumulation processing.

【0031】次に、上述した契機が発生した場合につ
いて説明する。アプリケーションプログラム22にバグ
が存在し、その処理の途中で“0”番地にジャンプして
しまったものとする。このジャンプ命令の実行に際して
スタック11には“0”が設定される。前述したように
“0”番地はブートプログラム31の先頭番地でもある
ため、CPU10の処理はブートプログラム31に移行
する。ブートプログラム31はスタック11の内容を参
照してその内容が“0”であることを検出し、“0”番
地へのジャンプという通常有りえないシーケンスで自身
が起動されたことを知る。そこで、ブートプログラム3
1はフラグ41に0x“AA”を書き込んでコアダンプ
要求を設定する。この後、ブートプログラム31は既存
のブート処理を行ったのち、フラグ41にコアダンプ要
求が設定されていることから、コアダンププログラム3
2を起動してコアダンプ処理を行う。この後、OSとア
プリケーションが順次立ち上がって、アプリケーション
プログラム22がコアダンプデータの蓄積処理を行う。
Next, a case where the above-described trigger occurs will be described. It is assumed that a bug exists in the application program 22 and the program jumps to the address “0” during the processing. Upon execution of this jump instruction, “0” is set in the stack 11. Since the address “0” is also the head address of the boot program 31 as described above, the processing of the CPU 10 shifts to the boot program 31. The boot program 31 refers to the contents of the stack 11 and detects that the contents are “0”, and knows that the boot program 31 itself has been started in a normally impossible sequence of jumping to the address “0”. So, boot program 3
1 writes 0x “AA” in the flag 41 to set a core dump request. Thereafter, the boot program 31 performs the existing boot processing, and then sets the core dump request in the flag 41.
2 is started and core dump processing is performed. Thereafter, the OS and the application sequentially start up, and the application program 22 performs a core dump data accumulation process.

【0032】以上のように、コアダンプ機能をブートプ
ログラム31から起動されるコアダンププログラム32
にまとめることで、RAM40上の領域を無駄に消費す
ることがなくなるほか、基本的にブートプログラム31
についてのみコアダンプ機能に関わるプログラム開発を
行えば良くなるため、プログラム開発上の負担を軽減す
ることができる。
As described above, the core dump function is activated by the boot program 31.
In this way, the area on the RAM 40 is not wasted and the boot program 31 is basically used.
Since it is only necessary to develop a program relating to the core dump function for only, the burden on program development can be reduced.

【0033】また、上述したように、コアダンプの契機
は必ずしもアプリケーションプログラムの実行時に判明
するものばかりではない。すなわち、契機や契機は
アプリケーションプログラムの走行とは非同期的に生じ
るため、アプリケーションがこれら契機を把握すること
はできず、ブートプログラム31の実行時に初めて検出
できる。また、契機は“0”番地へのジャンプでブー
トプログラム31が起動されて初めて判るものである。
そこで本実施形態では、コアダンプの要求が存在するこ
とをフラグ41ないし汎用レジスタ61に残しておき、
ブートプログラム31が起動された時点でこれらの情報
からコアダンプの要求を検出してコアダンプ処理を行っ
ている。したがって、コアダンプ機能をブートプログラ
ム31側で集中的に管理することができる。
Further, as described above, the trigger of the core dump is not always found when the application program is executed. In other words, since the trigger occurs asynchronously with the running of the application program, the application cannot recognize the trigger and can detect the trigger only when the boot program 31 is executed. Further, the trigger is known only when the boot program 31 is started by jumping to the address “0”.
Therefore, in the present embodiment, the presence of a core dump request is left in the flag 41 or the general-purpose register 61, and
When the boot program 31 is started, a core dump request is detected from these pieces of information and core dump processing is performed. Therefore, the core dump function can be centrally managed on the boot program 31 side.

【0034】[0034]

【発明の効果】以上説明したように、本発明では、異常
の発生を示す事象を検出した時点でコアダンプの要求を
示す要求データを設定しておき、異常発生に伴って起動
されるリブート処理が完了してから当該要求データを調
べて、コアダンプが要求されていればコアダンプを行う
ようにしている。これにより、リブート処理でシステム
が正常に立ち上がった状態でコアダンプが行われるた
め、OSさえ暴走するような危機的な状況に陥った場合
にも、コアダンプ処理を確実に行うことができる。ま
た、システムの様々な状態において生じるコアダンプ要
求をいったん要求データとして設定しておき、リブート
時にコアダンプの要求を判断しているため、コアダンプ
機能をブートプログラム等で集中管理することができ
る。
As described above, according to the present invention, when an event indicating the occurrence of an abnormality is detected, request data indicating a request for a core dump is set, and the reboot process started upon occurrence of the abnormality is performed. After the completion, the request data is checked, and if a core dump is requested, the core dump is performed. As a result, the core dump is performed in a state where the system has started up normally in the reboot process, so that even in a critical situation where even the OS runs out of control, the core dump process can be reliably performed. Further, since core dump requests generated in various states of the system are once set as request data and the core dump request is determined at the time of reboot, the core dump function can be centrally managed by a boot program or the like.

【0035】また、請求項2記載の発明では、主記憶上
の所定位置に設けられたフラグによってコアダンプ要求
を設定しているため、ハードウェアリセットの介在を必
要としない異常が発生したような場合において、特別な
ハードウェアを設けることなくリブート後のコアダンプ
を実現することができる。また、請求項3記載の発明で
は、ハードウェアリセットで保持内容が影響されない不
揮発性媒体を用いてコアダンプ要求を設定しているた
め、ハングアップなどによってハードウェアリセットが
必要となるような状況に陥った場合であっても、その後
のリブート時においてコアダンプを確実に行うことがで
きる。
According to the second aspect of the present invention, the core dump request is set by a flag provided at a predetermined position in the main memory, so that an abnormality that does not require the intervention of a hardware reset occurs. In the above, the core dump after the reboot can be realized without providing special hardware. According to the third aspect of the present invention, since a core dump request is set using a non-volatile medium whose contents are not affected by a hardware reset, a situation in which a hardware reset is required due to a hang-up or the like is caused. Even in such a case, a core dump can be reliably performed at the time of a subsequent reboot.

【0036】また、請求項4記載の発明では、プログラ
ム内でジャンプが発生したときのジャンプ先アドレスを
記憶しておき、このジャンプ先アドレスがプログラムの
走行するはずのないアドレスであるときにコアダンプ要
求を設定するようにしている。これにより、プログラム
のバグによってしばしば発生する“0”番地へのジャン
プといった事象を捉えてコアダンプを行うことができ
る。また、請求項5記載の発明では、外部記憶装置上の
固定領域にコアダンプが行われ、この固定領域に書き出
される主記憶の内容を外部記憶装置上の蓄積領域へ蓄積
させるようにしている。これにより、異常な状態が何度
も生じるような場合に、採取されたコアダンプを総合し
て原因究明にあてることができる。また、請求項6記載
の発明では、蓄積手段の機能をアプリケーションプログ
ラムへ組み込み、採取されたコアダンプに圧縮処理を施
してから蓄積させるようにしている。これによって、圧
縮処理をブートプログラムへ組み込むのが難しいという
問題に対処しつつ、コアダンプを蓄積してゆくのに必要
となる記憶領域を削減することができる。
According to the fourth aspect of the present invention, a jump destination address when a jump occurs in the program is stored, and when the jump destination address is an address where the program cannot run, a core dump request is issued. Is set. As a result, a core dump can be performed by catching an event such as a jump to the address “0” that often occurs due to a bug in the program. According to the fifth aspect of the invention, a core dump is performed in a fixed area on the external storage device, and the contents of the main memory written to the fixed area are stored in the storage area on the external storage device. As a result, when an abnormal state occurs many times, the collected core dump can be comprehensively applied to the cause investigation. In the invention according to claim 6, the function of the storage means is incorporated in the application program, and the collected core dump is subjected to compression processing before being stored. As a result, it is possible to reduce the storage area required for accumulating the core dump while addressing the problem that it is difficult to incorporate the compression processing into the boot program.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明の一実施形態によるコンピュータシス
テムの構成を示すブロック図である。
FIG. 1 is a block diagram illustrating a configuration of a computer system according to an embodiment of the present invention.

【図2】 同実施形態におけるHDD20上の領域割り
当てを示す説明図である。
FIG. 2 is an explanatory diagram showing an area allocation on an HDD 20 in the embodiment.

【符号の説明】[Explanation of symbols]

10……CPU、11……スタック、20……HDD、
21……システムプログラム、22……アプリケーショ
ンプログラム、23……固定領域、24……蓄積領域、
30……ROM、31……ブートプログラム、32……
コアダンププログラム、40……RAM、41……フラ
グ、50……PUI、51……フロントパネル、60…
…RTC、61……汎用レジスタ、70……デバッグボ
ード。
10 CPU, 11 Stack, 20 HDD
21 ... system program, 22 ... application program, 23 ... fixed area, 24 ... storage area,
30 ROM, 31 Boot program, 32
Core dump program, 40 RAM, 41 Flag, 50 PUI, 51 Front panel, 60
... RTC, 61 ... General purpose register, 70 ... Debug board.

Claims (6)

【特許請求の範囲】[Claims] 【請求項1】 システム内で異常が発生した場合に該シ
ステムの主記憶の内容を外部記憶装置へ書き出すコアダ
ンプを行うコンピュータシステムにおいて、 前記コアダンプの要求の有無を表す要求データを保持す
る保持手段と、 前記異常の発生を示す事象を検出した時点で、前記コア
ダンプの要求を示す要求データを前記保持手段に設定す
る設定手段と、 前記異常の発生に伴って起動されるシステムのリブート
処理が完了してから前記要求データを調べ、該要求デー
タが前記コアダンプの要求を示していることを条件とし
て前記コアダンプを行うコアダンプ手段とを具備するこ
とを特徴とするコンピュータシステム。
1. A computer system for performing a core dump for writing the contents of a main memory of the system to an external storage device when an abnormality occurs in the system, comprising: holding means for holding request data indicating whether or not there is a request for the core dump; Setting means for setting request data indicating a request for the core dump in the holding means at a point in time when an event indicating the occurrence of the abnormality is detected; and rebooting of a system started in response to the occurrence of the abnormality is completed. And a core dump unit for performing the core dump on condition that the request data indicates the core dump request.
【請求項2】 前記保持手段として、前記主記憶上の所
定位置に設けられたフラグを有することを特徴とする請
求項1記載のコンピュータシステム。
2. The computer system according to claim 1, wherein said holding means includes a flag provided at a predetermined position on said main memory.
【請求項3】 前記保持手段として、システムのハード
ウェアリセットによって保持内容が影響を受けない不揮
発性媒体を有することを特徴とする請求項1又は2記載
のコンピュータシステム。
3. The computer system according to claim 1, wherein the holding unit includes a nonvolatile medium whose contents are not affected by a hardware reset of the system.
【請求項4】 システム上を走行するプログラムでジャ
ンプが発生したときのジャンプ先アドレスを記憶する記
憶手段を有し、 前記設定手段は、前記ジャンプ先アドレスが前記プログ
ラムの走行するはずのないアドレスであることを検出し
て、前記要求データを前記保持手段に設定することを特
徴とする請求項1〜3の何れかの項記載のコンピュータ
システム。
4. A storage means for storing a jump destination address when a jump occurs in a program running on the system, wherein the setting means is such that the jump destination address is an address at which the program should not run. 4. The computer system according to claim 1, wherein said request data is detected and said request data is set in said holding means.
【請求項5】 前記コアダンプ手段は、前記主記憶の内
容を前記外部記憶装置上の固定領域に書き出すものであ
って、 該固定領域に書き出された前記主記憶の内容を前記外部
記憶装置上の蓄積領域に蓄積してゆく蓄積手段をさらに
有することを特徴とする請求項1〜4の何れかの項記載
のコンピュータシステム。
5. The core dump unit writes contents of the main storage to a fixed area on the external storage device, and writes contents of the main storage written to the fixed area on the external storage device. The computer system according to claim 1, further comprising a storage unit that stores the data in the storage area.
【請求項6】 前記蓄積手段は、前記システム上を走行
するアプリケーションプログラムに組み込まれ、前記主
記憶の内容に圧縮処理を施してから前記外部記憶装置へ
蓄積させてゆくことを特徴とする請求項5記載のコンピ
ュータシステム。
6. The storage unit according to claim 1, wherein the storage unit is incorporated in an application program running on the system, compresses the contents of the main storage, and stores the compressed content in the external storage device. 6. The computer system according to claim 5.
JP27032498A 1998-09-24 1998-09-24 Computer system Expired - Fee Related JP4269362B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP27032498A JP4269362B2 (en) 1998-09-24 1998-09-24 Computer system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP27032498A JP4269362B2 (en) 1998-09-24 1998-09-24 Computer system

Publications (2)

Publication Number Publication Date
JP2000099372A true JP2000099372A (en) 2000-04-07
JP4269362B2 JP4269362B2 (en) 2009-05-27

Family

ID=17484688

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27032498A Expired - Fee Related JP4269362B2 (en) 1998-09-24 1998-09-24 Computer system

Country Status (1)

Country Link
JP (1) JP4269362B2 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007087263A (en) * 2005-09-26 2007-04-05 Nec Corp Dump method in computer system having mirror memory configuration, dump control mechanism, and dump program
JP2007094537A (en) * 2005-09-27 2007-04-12 Hitachi Ltd Memory dump device and memory dump collection method
EP1638000A3 (en) * 2004-09-06 2010-03-03 Fujitsu Limited Program, method, and mechanism for performing panic memory dump
JP2011181093A (en) * 2011-05-09 2011-09-15 Nec Corp Dump method in computer system of mirror memory constitution, dump control mechanism, and program
CN110427233A (en) * 2019-06-26 2019-11-08 北京三快在线科技有限公司 Back-end data binding method, device, electronic equipment and storage medium
CN110520839A (en) * 2018-03-28 2019-11-29 深圳市大疆创新科技有限公司 Storage medium space application method, apparatus and unmanned plane in System on Chip/SoC
JP2020135240A (en) * 2019-02-15 2020-08-31 株式会社リコー Information processing apparatus, control method, and program

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1638000A3 (en) * 2004-09-06 2010-03-03 Fujitsu Limited Program, method, and mechanism for performing panic memory dump
JP2007087263A (en) * 2005-09-26 2007-04-05 Nec Corp Dump method in computer system having mirror memory configuration, dump control mechanism, and dump program
JP2007094537A (en) * 2005-09-27 2007-04-12 Hitachi Ltd Memory dump device and memory dump collection method
JP2011181093A (en) * 2011-05-09 2011-09-15 Nec Corp Dump method in computer system of mirror memory constitution, dump control mechanism, and program
CN110520839A (en) * 2018-03-28 2019-11-29 深圳市大疆创新科技有限公司 Storage medium space application method, apparatus and unmanned plane in System on Chip/SoC
JP2020135240A (en) * 2019-02-15 2020-08-31 株式会社リコー Information processing apparatus, control method, and program
JP7283108B2 (en) 2019-02-15 2023-05-30 株式会社リコー Information processing device, control method, and program
CN110427233A (en) * 2019-06-26 2019-11-08 北京三快在线科技有限公司 Back-end data binding method, device, electronic equipment and storage medium

Also Published As

Publication number Publication date
JP4269362B2 (en) 2009-05-27

Similar Documents

Publication Publication Date Title
US5948112A (en) Method and apparatus for recovering from software faults
JP3598272B2 (en) Starting and restarting the operating system
US7716520B2 (en) Multi-CPU computer and method of restarting system
EP0505706B1 (en) Alternate processor continuation of the task of a failed processor
JP6124994B2 (en) Method and system for restoring from legacy OS environment to Unified Extensible Firmware Interface (UEFI) pre-boot environment, and computer program
JP4222370B2 (en) Program for causing a computer to execute a debugging support apparatus and a debugging processing method
JP3481737B2 (en) Dump collection device and dump collection method
US7631224B2 (en) Program, method, and mechanism for taking panic dump
TW201319942A (en) Method for flashing firmware and booting method and electronic apparatus using the method thereof
JP3301992B2 (en) Computer system with power failure countermeasure and method of operation
JP2011232986A (en) Information processor and memory dump collection method
US7430683B2 (en) Method and apparatus for enabling run-time recovery of a failed platform
JP4836732B2 (en) Information processing device
US8069309B1 (en) Servicing memory in response to system failure
JP4269362B2 (en) Computer system
JPH02294739A (en) Fault detecting system
JP2005190038A (en) Diagnostic processing method and diagnostic processing program for processor
JP2005284329A (en) Terminal fail-safe system, terminal fail-safe method and terminal fail-safe program
JP7074291B2 (en) Information processing equipment, information processing methods and programs
JPH09330253A (en) Memory dump method and memory damp system applying the same
JP2679575B2 (en) I / O channel fault handling system
JPH11259160A (en) Computer starting method, computer and storage medium recording starting processing program
JP2574938B2 (en) System startup method
JP2001051854A (en) Information management system
JPH0395634A (en) Restart control system for computer system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080729

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080929

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090203

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090216

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120306

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130306

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140306

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees