JP2008191796A - Analysis device, analysis method and program - Google Patents

Analysis device, analysis method and program Download PDF

Info

Publication number
JP2008191796A
JP2008191796A JP2007023641A JP2007023641A JP2008191796A JP 2008191796 A JP2008191796 A JP 2008191796A JP 2007023641 A JP2007023641 A JP 2007023641A JP 2007023641 A JP2007023641 A JP 2007023641A JP 2008191796 A JP2008191796 A JP 2008191796A
Authority
JP
Japan
Prior art keywords
memory
time
record
area
analysis
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
Application number
JP2007023641A
Other languages
Japanese (ja)
Inventor
Hisayoshi Kurosawa
寿好 黒澤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2007023641A priority Critical patent/JP2008191796A/en
Publication of JP2008191796A publication Critical patent/JP2008191796A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To reproduce a memory state at any time in the past from information obtained by normal operation of equipment or a program of a debugging target. <P>SOLUTION: A bus access information storage part 1 stores bus access information wherein data flowing on a bus between a memory and a CPU of the debugging target equipment are arranged in time order. When failure occurs in the debugging target equipment, a bus information analysis part 2 traces a record of the bus access information back to a specific past time point based on memory information 6 when occurrence of the failure, and analyzes the bus access information. The bus information analysis part 2 decides a read data value as storage contents at the specific time point of an address when bus access is read to the memory, and sets the address written with the data as an indefinite area when write to the memory. An indefinite area search part 5 further traces and analyzes the bus access information from the specific time point, specifies the storage contents of the indefinite area at the specific time point, and reproduces memory contents at the specific time point. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、例えば、コンピュータプログラムのデバッグ時等に利用されるメモリバックトレース技術に関する。   The present invention relates to a memory backtrace technique used, for example, when debugging a computer program.

従来のメモリバックトレース方式は、デバッグ対象となるプログラムや機器にメモリのバックトレースに必要な情報を取得するための手段を追加することによって、過去の任意時点のメモリ状態の再現を行っていた(例えば、特許文献1)。   The conventional memory backtrace method reproduces the memory state at an arbitrary past time by adding a means for acquiring information necessary for memory backtrace to a program or device to be debugged ( For example, Patent Document 1).

図11、12に、特許文献1における全体図及び逆ステップ実行手段のフロー図を示す。
図11でのデバッグ手段は、命令実行シミュレータやデバッガが想定されており、被デバッグプログラムの機械語命令を1命令ずつ解釈、実行していく。
バッファ書込み手段は各命令の解釈時に変更されるレジスタ、メモリの内容を実行履歴バッファに格納していく。
図12に示す逆ステップ実行手段では、上記実行履歴バッファに格納された更新前のレジスタ、メモリの情報を順次書き戻すことで、過去のメモリ内容の再現を実現している。
特開平5−108404号公報
11 and 12 are an overall view and a flowchart of the reverse step execution means in Patent Document 1.
The debugging means in FIG. 11 is assumed to be an instruction execution simulator or a debugger, and interprets and executes machine language instructions of the program to be debugged one by one.
The buffer writing means stores the contents of the register and memory that are changed when each instruction is interpreted in the execution history buffer.
The reverse step execution means shown in FIG. 12 realizes reproduction of past memory contents by sequentially writing back the pre-update register and memory information stored in the execution history buffer.
Japanese Patent Laid-Open No. 5-108404

従来のメモリバックトレース方式は、デバッグ対象に何らかの変更を行うため、本来のプログラムの動作と、少なからずの相違が生じてしまう。
その結果、ソフトウェア障害で最も解析困難なものの1つとされているタイミング障害(互いに副作用を及ぼす複数のプログラムの特異な実行順序の結果生じる障害)の再現を困難し、場合によっては不再現なものとしてしまうという課題があった。
Since the conventional memory backtrace method changes something to be debugged, there is a considerable difference from the operation of the original program.
As a result, it is difficult to reproduce timing failures (failures that occur as a result of unique execution order of multiple programs that have side effects on each other), which is one of the most difficult to analyze software failures. There was a problem of ending up.

この発明は、上記のような課題を解決することを主な目的の一つとしており、デバッグ対象のプログラム、機器の通常の動作で得られる情報から、過去の任意時点でのメモリ状態を再現し、デバッグの効率を向上させることを主な目的とする。   The main object of the present invention is to solve the above-mentioned problems, and reproduces the memory state at an arbitrary past time from the program to be debugged and information obtained by normal operation of the device. The main purpose is to improve the efficiency of debugging.

本発明に係る解析装置は、
プロセッサとメモリを用いてプログラムを実行するプログラム実行装置におけるプログラムの実行に対する解析を行う解析装置であって、
前記プログラム実行装置のプログラムの実行において障害が発生した場合に、前記障害の発生までに前記プロセッサと前記メモリとの間で利用された情報が時系列で示されている時系列情報を時系列上の特定時点まで遡って解析し、前記メモリの記憶領域ごとに前記特定時点での記憶内容を特定する時系列情報解析部と、
前記メモリ内の記憶領域のうち前記時系列情報解析部による解析によっても記憶内容が特定されない記憶領域を不定領域として管理する不定領域管理部と、
前記時系列情報を前記特定時点から更に遡って解析し、前記特定時点での前記不定領域の記憶内容を特定する不定領域探索部とを有することを特徴とする。
The analysis apparatus according to the present invention is
An analysis device for analyzing a program execution in a program execution device that executes a program using a processor and a memory,
When a failure occurs in the execution of the program of the program execution device, the time series information in which the information used between the processor and the memory before the occurrence of the failure is shown in time series A time series information analysis unit that analyzes retroactively to a specific point of time, and specifies storage contents at the specific point of time for each storage area of the memory,
An indeterminate area management unit for managing as an indeterminate area a storage area whose storage content is not specified by analysis by the time-series information analysis unit among the storage areas in the memory;
The time series information is further analyzed retrospectively from the specific time point, and an undefined area search unit for specifying the storage contents of the undefined area at the specific time point is provided.

本発明によれば、時系列情報を時系列上の特定時点まで遡って解析して特定時点でのメモリの記憶内容を特定するとともに、記憶内容が特定されない記憶領域を不定領域として管理し、特定時点までの解析の後に、更に時間を遡って特定時点における不定領域の記憶内容を確定するようにしているので、プログラム実行装置のプロセッサとメモリ間に通常流れるデータのみから、過去の特定時点でのメモリ内容を再現することができる。このため、プログラムに対する変更が不要であり、プログラムの動作が変更してしまう事態を回避することができる。また、タイミング障害の再現が可能となり、デバッグ効率を向上させることができる。   According to the present invention, time series information is analyzed retrospectively to a specific time point on the time series to specify the memory content of the memory at the specific time point, and the storage area where the memory content is not specified is managed as an indefinite area and specified. After the analysis up to the point in time, the stored contents of the undefined area at a specific point in time are further determined, so that only the data that normally flows between the processor and the memory of the program execution device can be Memory contents can be reproduced. For this reason, it is not necessary to change the program, and a situation in which the operation of the program is changed can be avoided. In addition, timing failure can be reproduced, and debugging efficiency can be improved.

実施の形態1.
図1は、本実施の形態に係るメモリバックトレース装置(解析装置)100の全体構成例を示す構成図である。
メモリバックトレース装置100は、図示していないデバッグ対象機器(プログラム実行装置)におけるプログラムの実行に対する解析を行う装置である。デバッグ対象機器(プログラム実行装置)は、プロセッサとメモリを用いてプログラムを実行する装置である。
Embodiment 1 FIG.
FIG. 1 is a configuration diagram showing an overall configuration example of a memory backtrace device (analysis device) 100 according to the present embodiment.
The memory backtrace device 100 is a device that analyzes the execution of a program in a debug target device (program execution device) (not shown). The debug target device (program execution device) is a device that executes a program using a processor and a memory.

図1において、バスアクセス情報記憶部1(時系列情報記憶部)は、バスアクセス情報(時系列情報)を記憶する。バスアクセス情報とは、デバッグ対象機器のCPU(Central Processing Unit)とメモリ間のバス上に流れるデータを時間順に整列させた情報である。
バス情報解析部2(時系列情報解析部)は、バスアクセス情報からデータを時間と逆順に読み出し解析する手段である。
メモリ情報更新部3は、バス情報解析部2からの指示でメモリ情報6の内容を書き換える手段である。
不定領域管理部4は、バス情報解析部2からの指示でメモリ情報6の内容を不定とした領域を管理する手段である。
不定領域探索部5は、不定領域管理部4で管理されている不定領域の値を確定させるためにバスアクセス情報を更に時間の逆順に読み出し解析する手段である。
メモリ情報6は、障害が発生した時点でのメモリ内容を初期値として持つメモリ領域である。
In FIG. 1, a bus access information storage unit 1 (time series information storage unit) stores bus access information (time series information). The bus access information is information in which data flowing on a bus between a CPU (Central Processing Unit) of a debug target device and a memory is arranged in time order.
The bus information analysis unit 2 (time-series information analysis unit) is means for reading and analyzing data from the bus access information in the reverse order of time.
The memory information update unit 3 is means for rewriting the contents of the memory information 6 in response to an instruction from the bus information analysis unit 2.
The indefinite area management unit 4 is a means for managing an area in which the contents of the memory information 6 are indefinite according to an instruction from the bus information analysis unit 2.
The indeterminate area search unit 5 is a means for reading and analyzing the bus access information in the reverse order of time in order to determine the value of the indeterminate area managed by the indeterminate area manager 4.
The memory information 6 is a memory area having, as an initial value, memory contents at the time when a failure occurs.

図2は、図1におけるバスアクセス情報で保持されているデータの一例を示したものである。
バスアクセス情報は、プログラム実行のためにフェッチされた命令のアドレスを示すプログラムカウンタ値(PC値)、そのPC値でフェッチされた命令、命令の実行によってアクセスされたメモリのアドレス、メモリアクセスのRead/Write属性の区別、メモリアクセスの結果メモリバス上に流れたデータ(Readの場合はメモリから読込んだ値、Writeの場合はメモリに書き込んだ値)が、命令の実行順にレコードの形で並んでいるものである。
FIG. 2 shows an example of data held in the bus access information in FIG.
The bus access information includes a program counter value (PC value) indicating the address of an instruction fetched for program execution, an instruction fetched with the PC value, an address of a memory accessed by execution of the instruction, and a memory access Read. / Write attribute distinction, data accessed on the memory bus as a result of memory access (value read from memory in case of Read, value written in memory in case of Write) are arranged in the form of records in order of instruction execution It is what is.

図3は、図1における不定領域管理部4が管理する不定領域管理テーブルの一例を示したものである。
不定領域管理テーブルは、バス情報解析部2の処理により、再現すべきメモリ情報6の値が不定値となった個所を管理しているもので、不定となった領域のアドレスおよび不定となったことを示すメモリ情報6内に仮りに設定した値(暫定メモリ値)から構成されている。
FIG. 3 shows an example of the undefined area management table managed by the undefined area management unit 4 in FIG.
The indefinite area management table manages the location where the value of the memory information 6 to be reproduced becomes an indefinite value by the processing of the bus information analysis unit 2, and the address of the indefinite area and the indefinite area are indefinite. It is composed of a value (provisional memory value) temporarily set in the memory information 6 indicating this.

図4は、以降の記載内容の理解を補佐するための図で、本実施の形態における動作の全体の流れを示したものである。
本実施の形態の目的は、デバッグ対象の機器(プログラム実行装置)から得た障害発生時点のメモリ情報と、プログラムの実行に伴うバスアクセス情報から、デバッグ対象機器以外のパソコン等のコンピュータ(メモリバックトレース装置100)上にて、デバッグ対象機器の“メモリ内容を再現したい時点A”のメモリ情報を再現することである。なお、障害発生時点のメモリ情報は、図1におけるメモリ情報6の初期値となる。
まず、障害発生時点から“メモリ内容を再現したい時点A”までのバスアクセス情報を、図1におけるバス情報解析部2にて解析、メモリ情報へ随時反映していく。
この反映の際、バスアクセスがメモリへのReadならば値の確定を、メモリへのWriteならばその瞬間以前の値は上書きされているので不明な値となるため、不定領域として別管理をする。以上を“メモリ内容を再現したい時点A”まで行うと、時点Aでのメモリ情報は、不定領域が点在する、いわゆる虫食いの状態で再現される。
この虫食いされた不定領域を、時点Aより更に過去にさかのぼって値を確定するために、図1における不定領域探索部5にて、時点Aより過去のバスアクセス情報を解析し、時点Aでのメモリ情報に反映させる。
なお、不定領域探索部5では、時点Aよりも以前のバスアクセス情報を検査するため、不定領域に対してのRead、Writeいずれの場合でも時点Aでの該領域の値を確定できる。
以上2段階のバスアクセス情報の解析部を設けることで、時点Aのメモリ情報を確定させることができる。
FIG. 4 is a diagram for assisting understanding of the following description, and shows the overall flow of the operation in the present embodiment.
The object of the present embodiment is to use a memory (memory back-up) such as a personal computer other than the device to be debugged from the memory information at the time of failure obtained from the device to be debugged (program execution device) and the bus access information accompanying the execution of the program. On the trace device 100), the memory information of “time point A at which memory contents are to be reproduced” of the debug target device is reproduced. Note that the memory information at the time of the failure is the initial value of the memory information 6 in FIG.
First, the bus access information from the time of failure occurrence to “time A at which the memory contents are to be reproduced” is analyzed by the bus information analysis unit 2 in FIG. 1 and reflected in the memory information as needed.
In this reflection, if the bus access is a read to the memory, the value is fixed, and if the write is to the memory, the value before that moment is overwritten and becomes an unknown value. . When the above is performed until “time point A at which memory contents are to be reproduced”, the memory information at time point A is reproduced in a so-called worm-eating state in which indefinite regions are scattered.
In order to determine the value of this worm-eating indeterminate area going back to the past from time A, the indeterminate area search unit 5 in FIG. Reflect in memory information.
Since the indeterminate area search unit 5 examines bus access information before time A, the value of the area at time A can be determined in both cases of Read and Write for the indefinite area.
By providing the two-stage bus access information analysis unit, the memory information at the time point A can be determined.

本実施の形態では、バスアクセス情報記憶部1は、図2に示すように、デバッグ対象機器(プログラム実行装置)のメモリからプロセッサへ読み出された読み出しデータの値と読み出しのあった記憶領域とが示されるレコード及びプロセッサからメモリに書き込まれた書き込みデータの値と書き込みのあった記憶領域とが示されるレコード等から構成されるバスアクセス情報(時系列情報)を記憶しており、デバッグ対象機器のプログラムの実行において障害が発生した場合に、プロセッサとメモリとの間で利用された情報の内容をバスアクセス情報における時系列上の特定時点(図4の時点A)までレコードごとに遡って解析し、メモリの記憶領域ごとに特定時点での記憶内容を特定する。具体的には、バス情報解析部2は、取得したレコードに読み出しデータの値が示されている場合に、当該読み出しデータの値を当該レコードに示されている記憶領域の特定時点での記憶内容として特定し、取得したレコードに書き込みデータの値が示されている場合に、当該レコードに示されている記憶領域を不定領域とする。
また、不定領域管理部4は、メモリ内の記憶領域のうちバス情報解析部2による解析によっても記憶内容が特定されない記憶領域を不定領域として管理する。
更に、不定領域探索部5は、バスアクセス情報を特定時点(図4の時点A)から更に遡って解析し、特定時点での不定領域の記憶内容を特定する。具体的には、不定領域探索部5は、バスアクセス情報のレコードを特定時点(図4の時点A)から更に遡りながら取得し、取得したレコードに示されている記憶領域が不定領域に一致するか否かを判断し、取得したレコードに示されている記憶領域が不定領域に一致する場合に、当該レコードに示されているデータの値を特定時点での不定領域の記憶内容として特定する。
In the present embodiment, as shown in FIG. 2, the bus access information storage unit 1 includes the value of read data read from the memory of the debug target device (program execution device) to the processor, and the storage area from which the data has been read. , And bus access information (time-series information) composed of a record indicating the value of the write data written from the processor to the memory and the storage area where the data was written, and the like. When a failure occurs in the execution of the program, the contents of the information used between the processor and the memory are analyzed retrospectively for each record up to a specific point in time in the bus access information (time point A in FIG. 4). Then, the storage content at a specific time is specified for each storage area of the memory. Specifically, when the read data value is indicated in the acquired record, the bus information analysis unit 2 stores the value of the read data at a specific time in the storage area indicated in the record. When the value of write data is indicated in the acquired record, the storage area indicated in the record is set as an indefinite area.
The undefined area management unit 4 manages a storage area whose storage contents are not specified by analysis by the bus information analysis unit 2 among the storage areas in the memory as an undefined area.
Further, the indeterminate area searching unit 5 analyzes the bus access information retroactively from the specific time point (time point A in FIG. 4), and specifies the storage contents of the indefinite area at the specific time point. Specifically, the indeterminate area searching unit 5 acquires a record of bus access information while going back further from a specific time (time A in FIG. 4), and the storage area indicated in the acquired record matches the indefinite area. If the storage area indicated in the acquired record matches the indefinite area, the value of the data indicated in the record is specified as the storage content of the indefinite area at a specific point in time.

次に各要素の動作について図5〜図7のフローチャートに沿って説明する。
まず、図5は、バス情報解析部2の処理フロー(時系列情報解析ステップ)を示す。
バス情報解析部2では、まずバスアクセス情報のどの位置からレコードを読み出すかを示すPos変数を初期化する(S51)。
通常は障害が検出された最終のバスアクセス情報である、最終レコードの位置を指す。
次に、バス情報解析部2は、Posをデクリメント(S52)した後、Posの位置のバスアクセス情報レコードをバスアクセス情報から読み出す(S53)。
ステップS54にて、読み出したバスアクセス情報レコードにRead/Writeのメモリアクセス属性がなければ、バス情報解析部2は、解析の終了条件判定(S57)に進む。
ステップS54にてメモリアクセス属性があれば、バス情報解析部2は、ReadかWriteかを判定して、Readならばその時点でのメモリ内容がレコード内のデータ値に確定できるためメモリ情報更新部3を呼び出し(S55)、不定領域管理部4へ不定領域管理テーブルから対応するエントリの削除を指示する。メモリアクセス属性がWriteならば不定領域管理部4へ不定領域管理テーブルへのエントリの追加を指示する(S56)。
その後、バス情報解析部2は、ステップS57にてバスアクセス情報解析の終了有無を判定し、解析終了ならば不定領域探索部5を呼び出した後(S58)処理を終了する。
解析終了でなければステップS52に戻りバスアクセス情報の解析を続ける。
ステップS57における終了条件とは、図4の特定時点Aに対応するレコード位置に到達しているか否かを判断するための条件であり、例えば、特定個のレコード(例えば、100レコード)を遡った場合や、予め指定した特定のレコード(バスアクセス情報の解析上特徴的なレコード等)に到達した場合に終了する。
また、バスアクセス情報の各レコードに時刻情報(例えば、各レコードに示されるPC値にインクリメントされた時刻の情報)を付加し、バスアクセス情報の時刻情報において特定の時間分遡った場合に終了するようにしてもよい。
Next, the operation of each element will be described with reference to the flowcharts of FIGS.
First, FIG. 5 shows a processing flow (time-series information analysis step) of the bus information analysis unit 2.
First, the bus information analysis unit 2 initializes a Pos variable indicating from which position of the bus access information the record is read (S51).
Usually, it indicates the position of the last record, which is the last bus access information where a failure is detected.
Next, the bus information analysis unit 2 decrements Pos (S52), and then reads the bus access information record at the position of Pos from the bus access information (S53).
If the read bus access information record does not have a read / write memory access attribute in step S54, the bus information analysis unit 2 proceeds to analysis end condition determination (S57).
If there is a memory access attribute in step S54, the bus information analysis unit 2 determines whether it is Read or Write, and if it is Read, the memory contents at that time can be determined as the data value in the record, so that the memory information update unit 3 is called (S55), and the undefined area management unit 4 is instructed to delete the corresponding entry from the undefined area management table. If the memory access attribute is Write, the undefined area management unit 4 is instructed to add an entry to the undefined area management table (S56).
Thereafter, the bus information analysis unit 2 determines whether or not the bus access information analysis is finished in step S57. If the analysis is finished, the bus information analysis unit 2 calls the indeterminate area search unit 5 (S58) and ends the process.
If the analysis is not finished, the process returns to step S52 to continue analyzing the bus access information.
The end condition in step S57 is a condition for determining whether or not the record position corresponding to the specific time point A in FIG. 4 has been reached. For example, a specific number of records (for example, 100 records) are traced back. Or when a specific record specified in advance (a record characteristic in the analysis of bus access information) is reached.
In addition, time information (for example, time information incremented to the PC value indicated in each record) is added to each record of the bus access information, and the process ends when the time information of the bus access information goes back a specific time. You may do it.

図6は、不定領域管理部4の処理フロー(不定領域管理ステップ)を示す。
不定領域管理部4は、バス情報解析部2からの指示で動作を開始し、まずバス情報解析部2から渡されたバスアクセス情報レコードのアクセス属性がReadかWriteかを判定する(S61)。Read、Writeのどちらの場合も、不定領域管理部4は、バス情報解析部2からアクセス属性の情報を取得する。
Readの場合、不定領域管理部4は、メモリ情報の内容が確定したため、図3に示した不定領域管理テーブルに既に不定領域として登録されている同一アドレスのエントリがあるかをチェックし(S62)、エントリがあればそのエントリを削除し(S63)、なければ何もせずに処理を終了する。
ステップS61にてWriteの場合、不定領域管理部4は、不定領域管理テーブルに既に不定領域として登録されている同一アドレスのエントリがあるかをチェックし(S64)、エントリが無ければ新たにエントリを追加し(S65)、メモリ情報更新部3へ不定を示すデータの書込みを指示して(S66)処理を終了する。
ステップS64にて同一アドレスのエントリがなければ何もせずに処理を終了する。
FIG. 6 shows a processing flow (undefined area management step) of the undefined area management unit 4.
The undefined area management unit 4 starts the operation in response to an instruction from the bus information analysis unit 2, and first determines whether the access attribute of the bus access information record passed from the bus information analysis unit 2 is Read or Write (S61). In both cases of Read and Write, the undefined area management unit 4 acquires access attribute information from the bus information analysis unit 2.
In the case of Read, since the contents of the memory information are confirmed, the undefined area management unit 4 checks whether there is an entry with the same address already registered as an undefined area in the undefined area management table shown in FIG. 3 (S62). If there is an entry, the entry is deleted (S63), and if not, nothing is done and the process is terminated.
In the case of Write in step S61, the undefined area management unit 4 checks whether there is an entry with the same address already registered as an undefined area in the undefined area management table (S64). Add (S65), instruct the memory information updating unit 3 to write data indicating indefinite (S66), and terminate the process.
If there is no entry with the same address in step S64, the processing is terminated without doing anything.

図7は、不定領域探索部5の処理フロー(不定領域探索ステップ)を示す。
不定領域探索部5は、バス情報解析部2の処理が終了する直前に実行され、不定領域管理部4から不定領域管理テーブルの不定領域のエントリを得る(S71)。
次に、不定領域探索部5は、バス情報解析部2から渡されたバスアクセス情報のレコード位置を保持して置き、新変数rPosにコピーする(S72)。
不定領域探索部5は、rPosをデクリメントした(S73)後、バスアクセス情報からrPosの位置のレコードを読み出す(S74)。
読み出したレコードにメモリアクセス属性があれ(S75)ば、不定領域探索部5は、不定領域のエントリに示されているアドレスと読み出したバスアクセス情報のレコードに示されているアドレスが一致するかを判定する(S76)。
バスアクセス情報レコードにメモリアクセス属性がなかったり(S75)、不定領域エントリに示されているアドレスとのバスアクセス情報のレコードのアドレスが一致しなかった(S76)場合は、不定領域探索部5は、次の位置のバスアクセス情報を得るためにステップS73に戻る。
ステップS76にて不定領域エントリとのアドレスが一致した場合、メモリ情報更新部3へバスアクセス情報レコードのデータ値をメモリ情報6へ書き出す指示(S77)をした後、不定領域管理テーブルからエントリを削除する(S78)。その後不定領域のエントリの有無をチェック(S79)し、エントリがあれば再度ステップS71から処理を繰り返し、エントリがなければ処理を終了する。
ステップS76においてメモリ情報へ書き出すデータ値は、図4で示した特定時点Aにおいて不定領域に格納されていたデータ値である。
FIG. 7 shows a processing flow (indefinite area search step) of the indeterminate area search unit 5.
The indeterminate area search unit 5 is executed immediately before the processing of the bus information analysis unit 2 ends, and obtains an indeterminate area entry of the indeterminate area management table from the indeterminate area management unit 4 (S71).
Next, the undefined area search unit 5 holds the record position of the bus access information passed from the bus information analysis unit 2 and copies it to the new variable rPos (S72).
The undefined area search unit 5 decrements rPos (S73), and then reads the record at the position of rPos from the bus access information (S74).
If the read record has a memory access attribute (S75), the undefined area search unit 5 checks whether the address indicated in the undefined area entry matches the address indicated in the read bus access information record. Determination is made (S76).
If there is no memory access attribute in the bus access information record (S75), or the address of the bus access information record does not match the address indicated in the indefinite area entry (S76), the indefinite area searching unit 5 The process returns to step S73 in order to obtain the bus access information at the next position.
If the address of the undefined area entry matches in step S76, the memory information update unit 3 is instructed to write the data value of the bus access information record to the memory information 6 (S77), and then the entry is deleted from the undefined area management table. (S78). Thereafter, the presence / absence of an entry in the undefined area is checked (S79). If there is an entry, the process is repeated from step S71. If there is no entry, the process is terminated.
The data value written to the memory information in step S76 is the data value stored in the indefinite area at the specific time A shown in FIG.

なお、メモリ情報更新部3は、メモリ情報6に対し、バス情報解析部2、不定領域管理部4又は不定領域探索部5から指定されたアドレスに、指定された値を書き込むだけの処理のため、処理フロー及び処理の説明は割愛する。   Note that the memory information update unit 3 is a process for writing only the specified value to the address specified by the bus information analysis unit 2, the indeterminate region management unit 4, or the indeterminate region search unit 5 for the memory information 6. The description of the processing flow and processing is omitted.

このように、メモリへのWrite時には一旦メモリ内容を不定にし、必要なバスアクセス情報を解析した後に、更に時間をさかのぼって不定なメモリ領域の値を確定するようにしているので、CPUとメモリ間のバスに通常流れるデータのみから、過去の時点でのメモリ内容を再現することができる。   As described above, when writing to the memory, the memory contents are once indefinite, and after analyzing the necessary bus access information, the value of the indefinite memory area is determined by going back in time. The memory contents at the past time can be reproduced only from the data normally flowing through the bus.

以上、本実施の形態では、プロセッサとメモリ間のバスを流れるバスアクセス情報と障害発生時のメモリ内容を示すメモリ情報に対し、
(a)バスアクセス情報を時間の逆順に辿り、メモリの更新状況を解析するバス情報解析手段、
(b)メモリ情報の内容を書き換えるメモリ情報更新手段、
(c)メモリへの書込みにより、それ以前の時刻の値を特定できなくなる領域を管理する不定領域管理手段、
(d)バスアクセス情報を時間の逆順に辿り、メモリ情報内の不定領域の値を特定する不定領域探索手段を有し、障害発生時点からの任意の過去の時点のメモリ内容を再現するメモリバックトレース方式について説明した。
As described above, in the present embodiment, for the bus access information flowing through the bus between the processor and the memory and the memory information indicating the memory contents at the time of the failure,
(A) Bus information analysis means for tracing the bus access information in reverse order of time and analyzing the update status of the memory,
(B) memory information updating means for rewriting the contents of the memory information;
(C) Undefined area management means for managing an area in which the value of the previous time cannot be specified by writing to the memory;
(D) A memory back that has indefinite area search means for tracing the bus access information in the reverse order of time and specifies the value of the indefinite area in the memory information, and reproduces the memory contents at an arbitrary past time from the point of failure. The trace method was explained.

実施の形態2.
以上の実施の形態1では、過去の任意の時間点でのメモリ内容の再現をするようにしたものであるが、次にプログラム上の特定地点でのメモリ内容を再現する場合の実施の形態を示す。
なお、本実施の形態に係るメモリバックトレース装置100も図1と同様の構成を有する。
Embodiment 2. FIG.
In the first embodiment described above, the memory contents are reproduced at an arbitrary time point in the past. Next, the embodiment in the case of reproducing the memory contents at a specific point on the program will be described. Show.
Note that the memory backtrace apparatus 100 according to the present embodiment also has the same configuration as that shown in FIG.

図8は、プログラムの特定位置の通過時のメモリ内容を再現する場合の、バス情報解析部2の処理フロー(時系列情報解析ステップ)を示す。
図8においてS51〜S58は、図5と同じである。
図8では、ステップS54からS56にてバスアクセス情報の解析及びメモリ情報、不定領域管理テーブルの更新を完了した後、S81にてPos位置のバスアクセス情報のPC値が予め指定された値と一致しているかを比較し、一致していた場合にはバスアクセス情報の解析を終了し、S58へ進むようになっている。
これにより、プログラムの特定の位置(PC値)にてバスアクセス情報の解析を中断させ、その時点でのメモリ内容の再現をすることができる。
FIG. 8 shows a processing flow (time-series information analysis step) of the bus information analysis unit 2 when reproducing the memory contents when passing through a specific position of the program.
In FIG. 8, S51 to S58 are the same as FIG.
In FIG. 8, after the analysis of the bus access information and the update of the memory information and the undefined area management table are completed in steps S54 to S56, the PC value of the bus access information at the Pos position is equal to the predesignated value in S81. If the two match, the analysis of the bus access information is terminated, and the process proceeds to S58.
Thereby, the analysis of the bus access information can be interrupted at a specific position (PC value) of the program, and the memory contents at that time can be reproduced.

つまり、図8に示す例では、バス情報解析部2は、バスアクセス情報のレコードのうち特定のプログラムカウンタ値が示されているレコードを時系列上の特定時点(図4の時点A)とし、特定のプログラムカウンタ値が示されているレコードまでバスアクセス情報のレコードを遡って取得し、取得した各々のレコードを解析し、不定領域探索部5は、特定のプログラムカウンタ値が示されているレコードから更に遡ってバスアクセス情報のレコードを取得し、取得した各々のレコードを解析する。
なお、図8の例では、バス情報解析部2の解析終了判定の基準の一つとしてPC値を参照する以外は、実施の形態1と同様であり、バス情報解析部2、メモリ情報更新部3、不定領域管理部4及び不定領域探索部5の動作は実施の形態1に示したものと同じである。
That is, in the example shown in FIG. 8, the bus information analysis unit 2 sets a record indicating a specific program counter value among the records of the bus access information as a specific time point in time series (time point A in FIG. 4), The bus access information record is acquired retroactively to the record indicating the specific program counter value, and each acquired record is analyzed, and the indefinite area search unit 5 records the specific program counter value indicated The bus access information record is acquired further retroactively, and each acquired record is analyzed.
In the example of FIG. 8, the bus information analysis unit 2, the memory information update unit are the same as those in the first embodiment except that the PC value is referred to as one of the criteria for determining the end of analysis of the bus information analysis unit 2. 3. The operations of the undefined area management unit 4 and the undefined area search unit 5 are the same as those described in the first embodiment.

また図9は、メモリの特定位置の内容が特定の値に変更された時点のメモリ内容を再現する場合のバス情報解析部2の処理フロー(時系列情報解析ステップ)を示す。
図9においてS51〜S58は図5と同じで、バスアクセス情報がWrite属性の場合に、S56にて不定領域の管理情報を更新した後、S91にてバスアクセス情報のアドレス及びデータ値が、予め指定された値と一致しているかを判断し、一致していた場合にはバスアクセス情報の解析を終了し、S58へ進むようになっている。
これにより、メモリの特定位置の内容が特定の値に変更された時点にてバスアクセス情報の解析を中断させ、その時点でのプログラムの位置の特定、及びメモリ内容の再現をすることができる。
FIG. 9 shows a processing flow (time-series information analysis step) of the bus information analysis unit 2 when reproducing the memory content at the time when the content at the specific position in the memory is changed to a specific value.
In FIG. 9, S51 to S58 are the same as FIG. 5, and when the bus access information has the Write attribute, the management information of the indefinite area is updated in S56, and then the address and data value of the bus access information are previously set in S91. It is determined whether or not it matches the specified value, and if it matches, the analysis of the bus access information is terminated and the process proceeds to S58.
As a result, the analysis of the bus access information can be interrupted at the time when the content at the specific location in the memory is changed to a specific value, and the location of the program at that time can be identified and the memory content can be reproduced.

つまり、図9に示す例では、バス情報解析部2は、バスアクセス情報のレコードのうち特定のデータ値及び特定の記憶領域の少なくともいずれかが示されているレコードを時系列上の特定時点(図4の時点A)とし、特定のデータ値及び特定の記憶領域の少なくともいずれかが示されているレコードまでバスアクセス情報のレコードを遡って取得し、取得した各々のレコードを解析し、不定領域探索部5は、特定のデータ値及び特定の記憶領域の少なくともいずれかが示されているレコードから更に遡ってバスアクセス情報のレコードを取得し、取得した各々のレコードを解析する。
図9の例では、バス情報解析部2の解析終了判定の基準の一つとしてデータ値又はアドレスを参照する以外は、実施の形態1と同様であり、バス情報解析部2、メモリ情報更新部3、不定領域管理部4及び不定領域探索部5の動作は実施の形態1に示したものと同じである。
In other words, in the example illustrated in FIG. 9, the bus information analysis unit 2 selects a record indicating at least one of a specific data value and a specific storage area among the records of the bus access information at a specific point in time ( As shown in FIG. 4A), the bus access information record is acquired retroactively until a record indicating at least one of a specific data value and a specific storage area, and each acquired record is analyzed to obtain an indefinite area. The search unit 5 acquires a record of bus access information further retroactively from a record in which at least one of a specific data value and a specific storage area is indicated, and analyzes each acquired record.
In the example of FIG. 9, the bus information analysis unit 2, the memory information update unit are the same as those in the first embodiment except that the data value or the address is referred to as one of the analysis end determination criteria of the bus information analysis unit 2. 3. The operations of the undefined area management unit 4 and the undefined area search unit 5 are the same as those described in the first embodiment.

以上、本実施の形態では、バス情報解析手段において、あらかじめ指定されたプログラムカウンタ値に一致した時点でバスアクセス情報を辿ることを中断するメモリバックトレース方式について説明した。   As described above, in the present embodiment, the memory back trace method has been described in which the bus information analyzing unit interrupts the tracing of the bus access information when the bus counter is matched with the program counter value specified in advance.

また、本実施の形態では、バス情報解析手段において、あらかじめ指定されたメモリのアドレス及びそのアドレスに書き込まれたデータ値に一致した時点でバスアクセス情報を辿ることを中断するメモリバックトレース方式について説明した。   In this embodiment, a memory back trace method is described in which the bus information analysis means interrupts the tracing of the bus access information when it matches the address of the memory designated in advance and the data value written to the address. did.

実施の形態3.
以上の実施の形態では、メモリ内容の再現位置を特定するものであるが、次に不定領域の探索部を高速に実行する場合の実施の形態を示す。
なお、本実施の形態に係るメモリバックトレース装置100も図1と同様の構成を有する。
Embodiment 3 FIG.
In the above embodiment, the reproduction position of the memory contents is specified. Next, an embodiment in the case where the indeterminate area search unit is executed at high speed will be described.
Note that the memory backtrace apparatus 100 according to the present embodiment also has the same configuration as that shown in FIG.

図10は、ソフトウェアのデバッグ時には全てのメモリ情報は必要とせず、ごく狭い限られた区域のメモリ情報を手がかりにするケースが多いことに着眼し、不定領域のうちメモリ内容を確定させるメモリ領域を限定する場合の不定領域探索部5の処理フロー(不定領域探索ステップ)を示す。
図10において、S71〜S79は図7と同じである。
ステップS71にて不定領域のエントリを得たら、不定領域探索部5は、S101にて不定領域のアドレスが予め指定された範囲(解析対象記憶領域範囲)のメモリ領域内か否かを判断し、領域内であるなら次の不定領域を得るためにS79へ進むようになっている。
これにより、値確定が不要な不定領域に対してS73からS76によるバスアクセス情報の探索処理を省くことができ、不定領域探索の全体処理を高速に実行することができる。
FIG. 10 shows that not all memory information is required when debugging software, and there are many cases where memory information in a very narrow limited area is used as a clue. The processing flow (indefinite area search step) of the indefinite area search part 5 in the case of limiting is shown.
10, S71 to S79 are the same as FIG.
When the entry of the undefined area is obtained in step S71, the undefined area searching unit 5 determines whether or not the address of the undefined area is in the memory area in the range (analysis target storage area range) designated in advance in S101, If it is within the area, the process proceeds to S79 to obtain the next indefinite area.
As a result, the bus access information search process from S73 to S76 can be omitted for an indeterminate area that does not require value determination, and the entire indeterminate area search process can be executed at high speed.

つまり、図10の例では、不定領域探索部5は、解析の対象となる記憶領域の範囲を解析対象記憶領域範囲として指定し、バスアクセス情報のレコードを特定時点から更に遡りながら取得し、取得したレコードに示されている記憶領域が解析対象記憶領域範囲に含まれるか否かを判断し、取得したレコードに示されている記憶領域が解析対象記憶領域範囲に含まれる場合に、取得したレコードに示されている記憶領域が不定領域に一致するか否かを判断する。他方、取得したレコードに示されている記憶領域が解析対象記憶領域範囲に含まれない場合は、当該レコードに対する解析は行わない。
解析対象記憶領域として、バス情報解析部2にて最後に検出されたメモリアドレス周辺のメモリのみを解析の対象とするようにしてもよい。
本実施の形態では、不定領域探索部5が処理の高速化のために解析対象記憶領域範囲内か否かの判定を行う以外は、実施の形態1と同様であり、バス情報解析部2、メモリ情報更新部3、不定領域管理部4及び不定領域探索部5の動作は実施の形態1に示したものと同じである。
That is, in the example of FIG. 10, the indeterminate area searching unit 5 designates the range of the storage area to be analyzed as the analysis target storage area range, and acquires the bus access information record while going back further from the specific time point. If the storage area indicated in the record is included in the analysis target storage area range and the storage area indicated in the acquired record is included in the analysis target storage area range, the acquired record It is determined whether or not the storage area shown in FIG. On the other hand, when the storage area indicated in the acquired record is not included in the analysis target storage area range, the record is not analyzed.
As the analysis target storage area, only the memory around the memory address last detected by the bus information analysis unit 2 may be the analysis target.
The present embodiment is the same as the first embodiment except that the indeterminate area searching unit 5 determines whether or not it is within the analysis target storage area range for speeding up the processing. The operations of the memory information update unit 3, the undefined area management unit 4, and the undefined area search unit 5 are the same as those described in the first embodiment.

以上、本実施の形態では、不定領域探索手段において、特定のアドレス周辺のメモリのみを値特定の対象とするメモリバックトレース方式について説明した。   As described above, the present embodiment has described the memory backtrace method in which only the memory in the vicinity of a specific address is subjected to value specification in the indeterminate region search means.

また、本実施の形態では、不定領域探索手段において、バス情報解析手段にて最後に検出されたメモリアドレス周辺のメモリのみを値特定の対象とするメモリバックトレース方式について説明した。   Further, in the present embodiment, the memory back trace method is described in which only the memory in the vicinity of the memory address detected last by the bus information analysis unit in the undefined region search unit is targeted for value specification.

最後に実施の形態1〜3に示したメモリバックトレース装置100のハードウェア構成例について説明する。
図13は、実施の形態1〜3に示すメモリバックトレース装置100のハードウェア資源の一例を示す図である。なお、図13の構成は、あくまでもメモリバックトレース装置100のハードウェア構成の一例を示すものであり、メモリバックトレース装置100のハードウェア構成は図13に記載の構成に限らず、他の構成であってもよい。
Finally, a hardware configuration example of the memory backtrace device 100 shown in the first to third embodiments will be described.
FIG. 13 is a diagram illustrating an example of hardware resources of the memory backtrace apparatus 100 illustrated in the first to third embodiments. Note that the configuration in FIG. 13 is merely an example of the hardware configuration of the memory backtrace device 100, and the hardware configuration of the memory backtrace device 100 is not limited to the configuration described in FIG. There may be.

図13において、メモリバックトレース装置100は、プログラムを実行するCPU911(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介して、例えば、ROM(Read Only Memory)913、RAM(Random Access Memory)914、通信ボード915、表示装置901、キーボード902、マウス903、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。更に、CPU911は、FDD904(Flexible Disk Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907と接続していてもよい。また、磁気ディスク装置920の代わりに、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
In FIG. 13, the memory backtrace apparatus 100 includes a CPU 911 (also referred to as a central processing unit, a central processing unit, a processing unit, a processing unit, a microprocessor, a microcomputer, and a processor) that executes a program. The CPU 911 is connected to, for example, a ROM (Read Only Memory) 913, a RAM (Random Access Memory) 914, a communication board 915, a display device 901, a keyboard 902, a mouse 903, and a magnetic disk device 920 via a bus 912. Control hardware devices. Further, the CPU 911 may be connected to an FDD 904 (Flexible Disk Drive), a compact disk device 905 (CDD), a printer device 906, and a scanner device 907. Further, instead of the magnetic disk device 920, a storage device such as an optical disk device or a memory card read / write device may be used.
The RAM 914 is an example of a volatile memory. The storage media of the ROM 913, the FDD 904, the CDD 905, and the magnetic disk device 920 are an example of a nonvolatile memory. These are examples of a storage device or a storage unit.
The communication board 915, the keyboard 902, the scanner device 907, the FDD 904, and the like are examples of an input unit and an input device.
Further, the communication board 915, the display device 901, the printer device 906, and the like are examples of an output unit and an output device.

通信ボード915は、ネットワークに接続されていてもよい。例えば、通信ボード915は、LAN(ローカルエリアネットワーク)、インターネット、WAN(ワイドエリアネットワーク)などに接続されていても構わない。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
The communication board 915 may be connected to a network. For example, the communication board 915 may be connected to a LAN (local area network), the Internet, a WAN (wide area network), or the like.
The magnetic disk device 920 stores an operating system 921 (OS), a window system 922, a program group 923, and a file group 924. The programs in the program group 923 are executed by the CPU 911, the operating system 921, and the window system 922.

上記プログラム群923には、実施の形態1〜3の説明において「〜部」、「〜手段」として説明している機能を実行するプログラムが記憶されている。プログラムは、CPU911により読み出され実行される。
ファイル群924には、実施の形態1〜3の説明において、「〜の判断」、「〜の計算」、「〜の比較」、「〜の登録」、「〜の更新」、「〜の設定」等として説明している処理の結果を示す情報やデータや信号値や変数値やパラメータが、「〜ファイル」や「〜データベース」の各項目として記憶されている。「〜ファイル」や「〜データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリになどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・編集・出力・印刷・表示のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリ、レジスタ、キャッシュメモリ、バッファメモリ等に一時的に記憶される。
また、実施の形態1〜3で説明しているフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
The program group 923 stores programs that execute the functions described as “˜unit” and “˜means” in the description of the first to third embodiments. The program is read and executed by the CPU 911.
In the file group 924, in the description of the first to third embodiments, “determination of”, “calculation of”, “comparison of”, “registration of”, “update of”, “setting of” Information, data, signal values, variable values, and parameters indicating the results of the processing described as “.” Are stored as items “˜file” and “˜database”. The “˜file” and “˜database” are stored in a recording medium such as a disk or a memory. Information, data, signal values, variable values, and parameters stored in a storage medium such as a disk or memory are read out to the main memory or cache memory by the CPU 911 via a read / write circuit, and extracted, searched, referenced, compared, Used for CPU operations such as calculation, calculation, processing, editing, output, printing, and display. Information, data, signal values, variable values, and parameters are stored in the main memory, registers, cache memory, and buffers during the CPU operations of extraction, search, reference, comparison, calculation, processing, editing, output, printing, and display. It is temporarily stored in a memory or the like.
In addition, arrows in the flowcharts described in the first to third embodiments mainly indicate input / output of data and signals, and the data and signal values are the memory of the RAM 914, the flexible disk of the FDD904, the compact disk of the CDD905, and the magnetic field. Recording is performed on a recording medium such as a magnetic disk of the disk device 920, other optical disks, mini disks, DVDs, and the like. Data and signals are transmitted online via a bus 912, signal lines, cables, or other transmission media.

また、実施の形態1〜3の説明において「〜部」、「〜手段」として説明しているものは、「〜回路」、「〜装置」、「〜機器」、であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」、「〜手段」として説明しているものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラムは、実施の形態1〜3の「〜部」、「〜手段」としてコンピュータを機能させるものである。あるいは、実施の形態1〜3の「〜部」、「〜手段」の手順や方法をコンピュータに実行させるものである。   In addition, in the description of the first to third embodiments, what is described as “to part” and “to means” may be “to circuit”, “to device”, and “to device”. , “˜step”, “˜procedure”, and “˜processing”. That is, what is described as “˜unit” and “˜means” may be realized by firmware stored in the ROM 913. Alternatively, it may be implemented only by software, or only by hardware such as elements, devices, substrates, and wirings, by a combination of software and hardware, or by a combination of firmware. Firmware and software are stored as programs in a recording medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, and a DVD. The program is read by the CPU 911 and executed by the CPU 911. That is, the program causes the computer to function as “to part” and “to means” in the first to third embodiments. Alternatively, the procedures and methods of “to part” and “to means” in the first to third embodiments are executed by a computer.

このように、実施の形態1〜3に示すメモリバックトレース装置100は、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータであり、上記したように「〜部」、「〜手段」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。   As described above, the memory backtrace device 100 shown in the first to third embodiments includes a CPU that is a processing device, a memory that is a storage device, a magnetic disk, a keyboard that is an input device, a mouse, a communication board, and a display device that is an output device, A computer including a communication board and the like, and as described above, functions indicated as “˜unit” and “˜means” are realized by using these processing devices, storage devices, input devices, and output devices.

実施の形態1に係るメモリバックトレース装置の構成例を示す図。1 is a diagram illustrating a configuration example of a memory backtrace device according to a first embodiment. 実施の形態1に係るバスアクセス情報の例を示す図。FIG. 3 is a diagram showing an example of bus access information according to the first embodiment. 実施の形態1に係る不定領域管理テーブルの例を示す図。FIG. 4 shows an example of an indefinite area management table according to the first embodiment. 実施の形態1に係るデータ再現処理の全体の流れを示す図。FIG. 3 is a diagram showing an overall flow of data reproduction processing according to the first embodiment. 実施の形態1に係るバス情報解析部の動作例を示すフローチャート図。FIG. 3 is a flowchart showing an operation example of a bus information analysis unit according to the first embodiment. 実施の形態1に係る不定領域管理部の動作例を示すフローチャート図。FIG. 6 is a flowchart showing an operation example of an undefined area management unit according to the first embodiment. 実施の形態1に係る不定領域探索部の動作例を示すフローチャート図。FIG. 6 is a flowchart showing an operation example of an indeterminate area searching unit according to the first embodiment. 実施の形態2に係るバス情報解析部の動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example of a bus information analysis unit according to the second embodiment. 実施の形態2に係るバス情報解析部の動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example of a bus information analysis unit according to the second embodiment. 実施の形態3に係る不定領域探索部の動作例を示すフローチャート図。FIG. 9 is a flowchart showing an operation example of an indeterminate area searching unit according to the third embodiment. 従来技術を説明する図。The figure explaining a prior art. 従来技術を説明する図。The figure explaining a prior art. 実施の形態1〜3に係るメモリバックトレース装置のハードウェア構成例を示す図。FIG. 3 is a diagram illustrating a hardware configuration example of a memory backtrace device according to the first to third embodiments.

符号の説明Explanation of symbols

1 バスアクセス情報記憶部、2 バス情報解析部、3 メモリ情報更新部、4 不定領域管理部、5 不定領域探索部、6 メモリ情報、100 メモリバックトレース装置。   DESCRIPTION OF SYMBOLS 1 Bus access information storage part, 2 Bus information analysis part, 3 Memory information update part, 4 Undefined area management part, 5 Undefined area search part, 6 Memory information, 100 Memory backtrace apparatus.

Claims (9)

プロセッサとメモリを用いてプログラムを実行するプログラム実行装置おけるプログラムの実行に対する解析を行う解析装置であって、
前記プログラム実行装置のプログラムの実行において障害が発生した場合に、前記障害の発生までに前記プロセッサと前記メモリとの間で利用された情報が時系列で示されている時系列情報を時系列上の特定時点まで遡って解析し、前記メモリの記憶領域ごとに前記特定時点での記憶内容を特定する時系列情報解析部と、
前記メモリ内の記憶領域のうち前記時系列情報解析部による解析によっても記憶内容が特定されない記憶領域を不定領域として管理する不定領域管理部と、
前記時系列情報を前記特定時点から更に遡って解析し、前記特定時点での前記不定領域の記憶内容を特定する不定領域探索部とを有することを特徴とする解析装置。
An analysis device for analyzing a program execution in a program execution device that executes a program using a processor and a memory,
When a failure occurs in the execution of the program of the program execution device, the time series information in which the information used between the processor and the memory before the occurrence of the failure is shown in time series A time series information analysis unit that analyzes retroactively to a specific point of time, and specifies storage contents at the specific point of time for each storage area of the memory,
An indeterminate area management unit for managing as an indeterminate area a storage area whose storage content is not specified by analysis by the time-series information analysis unit among the storage areas in the memory;
An analysis apparatus comprising: an indefinite area search unit that analyzes the time-series information further retroactively from the specific time point and specifies the storage contents of the indefinite area at the specific time point.
前記解析装置は、更に、
前記メモリから前記プロセッサへ読み出された読み出しデータの値と読み出しのあった記憶領域とが示されるレコード及び前記プロセッサから前記メモリに書き込まれた書き込みデータの値と書き込みのあった記憶領域とが示されるレコードを少なくとも有する複数レコードの情報を前記時系列情報として記憶する時系列情報記憶部を有し、
前記時系列情報解析部は、
前記時系列情報のレコードを時系列上の特定時点まで遡りながら取得し、取得したレコードに読み出しデータの値が示されている場合に、当該読み出しデータの値を当該レコードに示されている記憶領域の前記特定時点での記憶内容として特定し、取得したレコードに書き込みデータの値が示されている場合に、当該レコードに示されている記憶領域を不定領域とすることを特徴とする請求項1に記載の解析装置。
The analysis device further includes:
A record indicating a value of read data read from the memory to the processor and a storage area from which the data has been read, and a value of write data written from the processor to the memory and the storage area from which the data has been written are indicated. A time-series information storage unit that stores information of a plurality of records having at least records as the time-series information,
The time series information analysis unit
When the record of the time series information is acquired while going back to a specific point in time series, and the value of the read data is indicated in the acquired record, the value of the read data is a storage area indicated in the record The storage area specified as the storage content at the specific time is specified, and when the value of the write data is indicated in the acquired record, the storage area indicated in the record is defined as an indefinite area. The analysis device described in 1.
前記不定領域探索部は、
前記時系列情報のレコードを前記特定時点から更に遡りながら取得し、取得したレコードに示されている記憶領域が不定領域に一致するか否かを判断し、取得したレコードに示されている記憶領域が不定領域に一致する場合に、当該レコードに示されているデータの値を前記特定時点での前記不定領域の記憶内容として特定することを特徴とする請求項2に記載の解析装置。
The indefinite region search unit
The record of the time series information is acquired while going back further from the specific time point, and it is determined whether or not the storage area indicated in the acquired record matches the indefinite area, and the storage area indicated in the acquired record 3. The analysis apparatus according to claim 2, wherein when the value matches an indefinite area, a value of data indicated in the record is specified as a storage content of the indefinite area at the specific time.
前記解析装置は、
前記障害が発生した際の前記メモリの記憶内容を記憶領域ごとに示すメモリ情報を、記憶領域ごとに、前記時系列情報解析部により特定された記憶内容及び前記不定領域探索部により特定された記憶内容のいずれかに更新するメモリ情報更新部を有することを特徴とする請求項1に記載の解析装置。
The analysis device includes:
Memory information indicating storage contents of the memory at the time of the failure for each storage area, storage contents specified by the time-series information analysis unit and storage specified by the indefinite area search unit for each storage area The analysis apparatus according to claim 1, further comprising a memory information update unit that updates any of the contents.
前記解析装置は、更に、
前記プロセッサがプログラムの実行においてフェッチした命令のプログラムカウンタ値が各レコードに示されている複数レコードの情報を前記時系列情報として記憶する時系列情報記憶部を有し、
前記時系列情報解析部は、
前記時系列情報の複数レコードのうち特定のプログラムカウンタ値が示されているレコードを時系列上の前記特定時点とし、前記特定のプログラムカウンタ値が示されているレコードまで時系列情報のレコードを遡って取得し、取得した各々のレコードを解析し、
前記不定領域探索部は、
前記特定のプログラムカウンタ値が示されているレコードから更に遡って時系列情報のレコードを取得し、取得した各々のレコードを解析することを特徴とする請求項1に記載の解析装置。
The analysis device further includes:
A time series information storage unit for storing, as the time series information, information of a plurality of records in which a program counter value of an instruction fetched by the processor in execution of a program is indicated in each record;
The time series information analysis unit
A record showing a specific program counter value among a plurality of records of the time series information is set as the specific time point on the time series, and the record of the time series information is traced back to the record showing the specific program counter value. Parse each acquired record,
The indefinite region search unit
The analysis apparatus according to claim 1, wherein a record of time series information is further acquired from a record indicating the specific program counter value, and each acquired record is analyzed.
前記解析装置は、更に、
前記メモリから前記プロセッサへ読み出された読み出しデータの値と読み出しのあった記憶領域とが示されるレコード及び前記プロセッサから前記メモリに書き込まれた書き込みデータの値と書き込みのあった記憶領域とが示されるレコードを少なくとも有する複数レコードの情報を前記時系列情報として記憶する時系列情報記憶部を有し、
前記時系列情報解析部は、
前記時系列情報の複数レコードのうち特定のデータ値及び特定の記憶領域の少なくともいずれかが示されているレコードを時系列上の前記特定時点とし、前記特定のデータ値及び特定の記憶領域の少なくともいずれかが示されているレコードまで時系列情報のレコードを遡って取得し、取得した各々のレコードを解析し、
前記不定領域探索部は、
前記特定のデータ値及び特定の記憶領域の少なくともいずれかが示されているレコードから更に遡って時系列情報のレコードを取得し、取得した各々のレコードを解析することを特徴とする請求項1に記載の解析装置。
The analysis device further includes:
A record indicating a value of read data read from the memory to the processor and a storage area from which the data has been read, and a value of write data written from the processor to the memory and the storage area from which the data has been written are indicated. A time-series information storage unit that stores information of a plurality of records having at least records as the time-series information,
The time series information analysis unit
A record in which at least one of a specific data value and a specific storage area is indicated among the plurality of records of the time series information is set as the specific time point on the time series, and at least the specific data value and the specific storage area Get records of time series information back to the record where one is shown, analyze each acquired record,
The indefinite region search unit
2. The time series information record is further acquired from a record indicating at least one of the specific data value and the specific storage area, and each acquired record is analyzed. The analysis device described.
前記不定領域探索部は、
解析の対象となる記憶領域の範囲を解析対象記憶領域範囲として指定し、
前記時系列情報のレコードを前記特定時点から更に遡りながら取得し、取得したレコードに示されている記憶領域が解析対象記憶領域範囲に含まれるか否かを判断し、取得したレコードに示されている記憶領域が解析対象記憶領域範囲に含まれる場合に、取得したレコードに示されている記憶領域が不定領域に一致するか否かを判断することを特徴とする請求項3に記載の解析装置。
The indefinite region search unit
Specify the storage area range to be analyzed as the analysis target storage area range,
The record of the time series information is acquired further going back from the specific time point, and it is determined whether the storage area indicated in the acquired record is included in the analysis target storage area range, and is indicated in the acquired record. 4. The analysis apparatus according to claim 3, wherein when the storage area included in the analysis target storage area range is included in the analysis target storage area, it is determined whether or not the storage area indicated in the acquired record matches the indefinite area. .
プロセッサとメモリを用いてプログラムを実行するプログラム実行装置に対する解析をコンピュータが行う解析方法であって、
前記プログラム実行装置のプログラムの実行において障害が発生した場合に、前記障害の発生までに前記プロセッサと前記メモリとの間で利用された情報が時系列で示されている時系列情報を、前記コンピュータが時系列上の特定時点まで遡って解析し、前記メモリの記憶領域ごとに前記特定時点での記憶内容を特定する時系列情報解析ステップと、
前記コンピュータが、前記メモリ内の記憶領域のうち前記時系列情報解析ステップによる解析によっても記憶内容が特定されない記憶領域を不定領域として管理する不定領域管理ステップと、
前記コンピュータが、前記時系列情報を前記特定時点から更に遡って解析し、前記特定時点での前記不定領域の記憶内容を特定する不定領域探索ステップとを有することを特徴とする解析方法。
An analysis method in which a computer performs an analysis on a program execution device that executes a program using a processor and a memory,
When a failure occurs in the execution of the program of the program execution device, time series information in which information used between the processor and the memory until the failure occurs is shown in time series, the computer A time series information analysis step of analyzing retroactively to a specific time point on the time series, and specifying the storage content at the specific time point for each storage area of the memory,
An undefined area management step in which the computer manages a storage area whose storage content is not specified by analysis by the time-series information analysis step among the storage areas in the memory as an undefined area;
An analysis method comprising: an indefinite area searching step in which the computer analyzes the time-series information further retroactively from the specified time point and specifies the storage contents of the indefinite area at the specified time point.
プロセッサとメモリを用いてプログラムを実行するプログラム実行装置に対する解析をコンピュータに実行させるプログラムであって、
前記プログラム実行装置のプログラムの実行において障害が発生した場合に、前記障害の発生までに前記プロセッサと前記メモリとの間で利用された情報が時系列で示されている時系列情報を時系列上の特定時点まで遡って解析し、前記メモリの記憶領域ごとに前記特定時点での記憶内容を特定する時系列情報解析処理と、
前記メモリ内の記憶領域のうち前記時系列情報解析処理による解析によっても記憶内容が特定されない記憶領域を不定領域として管理する不定領域管理処理と、
前記時系列情報を前記特定時点から更に遡って解析し、前記特定時点での前記不定領域の記憶内容を特定する不定領域探索処理とをコンピュータに実行させることを特徴とするプログラム。
A program that causes a computer to execute analysis for a program execution device that executes a program using a processor and a memory,
When a failure occurs in the execution of the program of the program execution device, the time series information in which the information used between the processor and the memory before the occurrence of the failure is shown in time series A time series information analysis process for analyzing retroactively to a specific point of time, and specifying storage contents at the specific point of time for each storage area of the memory,
An indeterminate area management process for managing as an indeterminate area a storage area whose storage content is not specified by the analysis by the time series information analysis process among the storage areas in the memory;
A program that analyzes the time-series information further from the specific time point and causes a computer to execute an indefinite area search process for specifying the storage contents of the indefinite area at the specific time point.
JP2007023641A 2007-02-02 2007-02-02 Analysis device, analysis method and program Pending JP2008191796A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007023641A JP2008191796A (en) 2007-02-02 2007-02-02 Analysis device, analysis method and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007023641A JP2008191796A (en) 2007-02-02 2007-02-02 Analysis device, analysis method and program

Publications (1)

Publication Number Publication Date
JP2008191796A true JP2008191796A (en) 2008-08-21

Family

ID=39751862

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007023641A Pending JP2008191796A (en) 2007-02-02 2007-02-02 Analysis device, analysis method and program

Country Status (1)

Country Link
JP (1) JP2008191796A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528730B2 (en) 2014-06-26 2020-01-07 Nec Corporation Analysis device, analysis method, and storage medium in which analysis program is recorded
WO2024055611A1 (en) * 2022-09-14 2024-03-21 得一微电子股份有限公司 Fault site backtracking method based on firmware emulation, and device and readable storage medium

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528730B2 (en) 2014-06-26 2020-01-07 Nec Corporation Analysis device, analysis method, and storage medium in which analysis program is recorded
EP3761181A1 (en) 2014-06-26 2021-01-06 NEC Corporation Analysis device, analysis method, and storage medium in which analysis program is recorded
US11436325B2 (en) 2014-06-26 2022-09-06 Nec Corporation Analysis device, analysis method, and storage medium in which analysis program is recorded
WO2024055611A1 (en) * 2022-09-14 2024-03-21 得一微电子股份有限公司 Fault site backtracking method based on firmware emulation, and device and readable storage medium

Similar Documents

Publication Publication Date Title
US8627296B1 (en) Unified unit and integration test with automatic mock creation
US6148417A (en) Method for determining a source of failure during a file system access
JP6543609B2 (en) JavaScript debugging using Just My Code
JP2006185211A (en) Program analysis system, test execution device, and analysis method and program thereof
US20070168741A1 (en) Method, system and program product for facilitating debugging of simulation results obtained for an optimized simulation model of a device design having hierarchically-connected components
JP2006350686A (en) Instruction set simulator generation device and simulator generation method
JP6119535B2 (en) Trace method, processing program, and information processing apparatus
US20110307488A1 (en) Information processing apparatus, information processing method, and program
US20070150845A1 (en) Designing apparatus, designing method, and program thereof
JP2009140155A (en) Test program for application program
CN113448845A (en) UI automation test method and system
WO2010044150A1 (en) Program change management device, program change management program, and program change management method
US20110167047A1 (en) Editing apparatus, method, and storage medium
US9852048B2 (en) Simulating process variable changes during process runtime
JP2008191796A (en) Analysis device, analysis method and program
WO2021205589A1 (en) Test script generation device, test script generation method, and program
US20080052678A1 (en) Method for Providing Annotated Transaction Monitoring Data for Initially Hidden Software components
JP2008305019A (en) Simulation device, simulation method and program
JP6878707B2 (en) Test equipment, test methods and test programs
JP7116313B2 (en) Correction candidate identification program
GB2397905A (en) Method for automatically generating and ordering test scripts
JP2006127117A (en) Method, device, and program for recording/reproducing web reference operation, and storage medium storing program
JP5321286B2 (en) Program model checking method, program model checking program
CN113268412B (en) Control analysis method, device, equipment and medium for Web system test case recording
JP6739599B1 (en) Information processing program, information processing method, and information processing apparatus