JP2011107883A - Debugging device - Google Patents
Debugging device Download PDFInfo
- Publication number
- JP2011107883A JP2011107883A JP2009260931A JP2009260931A JP2011107883A JP 2011107883 A JP2011107883 A JP 2011107883A JP 2009260931 A JP2009260931 A JP 2009260931A JP 2009260931 A JP2009260931 A JP 2009260931A JP 2011107883 A JP2011107883 A JP 2011107883A
- Authority
- JP
- Japan
- Prior art keywords
- information
- history
- variable
- variable value
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
Description
本発明は、C言語で記述されたソースプログラム(以下、Cソースプログラムと称する)をデバッグする装置及び方法に関する。 The present invention relates to an apparatus and method for debugging a source program written in C language (hereinafter referred to as C source program).
既存のデバッガの機能の1つに、変数の値(以下、変数値と称する)を表示する機能(ウォッチ・ウインドウ、ローカル変数ウインドウetc)がある。この機能で表示される変数値は、最新の変数値のみである。プログラムをデバッグする際には、最新の変数値だけではなく、過去の変数値が必要な場合がある。 One of the functions of the existing debugger is a function (watch window, local variable window etc) for displaying variable values (hereinafter referred to as variable values). The variable values displayed by this function are only the latest variable values. When debugging a program, not only the latest variable values but also past variable values may be required.
プログラムをデバッグする際には、最新の変数値だけではなく、過去の変数値が必要な場合がある。過去の変数値を表示するものとして、任意の変数への代入を監視して履歴として保存/表示するデバック装置が、特開2007−34825号公報に記載されている。 When debugging a program, not only the latest variable values but also past variable values may be required. Japanese Patent Application Laid-Open No. 2007-34825 discloses a debugging device for displaying past variable values and monitoring / substituting an arbitrary variable and storing / displaying it as a history.
図1は、従来のデバック装置として、特開2007−34825号公報に記載されているデバック装置を示している。プロセッサ制御部102は、実行形式ファイル101中のプログラムをプロセッサ上で実行/停止する。
FIG. 1 shows a debugging apparatus described in Japanese Patent Application Laid-Open No. 2007-34825 as a conventional debugging apparatus. The
プロセッサ制御部102は、プログラムのデバックを開始すると、命令をフェッチして実行する。この際、フェッチした命令がCソースプログラムの行(以下、Cソース行)の先頭の命令である場合、プロセッサ制御部102は、その時点でのプロセッサレジスタの内容(データ)をレジスタ履歴メモリ104に記録し、実行中のソースプログラムの行番号をソース行履歴メモリ105に記録して、変数監視部105を起動する。
When starting to debug a program, the
変数監視部105は、起動されると、Cソース行が代入文であるか否かを判定する。代入文の場合、それを変数履歴メモリ106に記録して、その動作を終了する。プロセッサ制御部102は、ブレーク・ポイントを検出するとプログラムを停止する。
When activated, the
レジスタ表示部107、プログラム表示部108、変数表示部109は、レジスタ履歴メモリ104、ソース行履歴メモリ105、変数履歴メモリ106に記録された内容に基づいて、履歴の結果を表示する。
The
従来のデバック装置は、図2に示されるように、CソースプログラムのL7から実行を開始してL14で停止する。この場合に表示される変数の変更履歴は、図3のようになる。 As shown in FIG. 2, the conventional debugging device starts execution from L7 of the C source program and stops at L14. The variable change history displayed in this case is as shown in FIG.
変数に対する代入の履歴が全て表示されるため、プログラムをデバッグするための情報がある程度揃っているが、以下の面で、問題点がある。 Since all the history of substitution for variables is displayed, there is some information for debugging the program, but there are problems in the following aspects.
第1の問題点として、従来のデバック装置では、変数の代入に関する履歴しか保存/表示しないことである。図2に示されるように、CソースプログラムのL13にて、グローバル変数bの値をすぐに確認できない。確認するためには、L13の処理の直前のグローバル変数bへの代入を行っている箇所を探す必要がある。 The first problem is that the conventional debugging apparatus stores / displays only the history relating to the substitution of variables. As shown in FIG. 2, the value of the global variable b cannot be confirmed immediately at L13 of the C source program. In order to confirm, it is necessary to search for a place where the assignment to the global variable b immediately before the process of L13 is performed.
第2の問題点として、従来のデバック装置では、同名の変数を区別していないことである。図3では、変数名aの値にて、値1はグローバル変数aの値を表示し、値2はローカル変数aの値を表示している。図3の表示結果からは異なるスコープの変数値を表示していることが一目で分からない。確認するには、Cソースプログラムを見る必要がある。
As a second problem, the conventional debugging apparatus does not distinguish between variables having the same name. In FIG. 3, the
第3の問題点として、従来のデバック装置では、全ての履歴を表示することである。図2に示されるように、Cソースプログラムのmain関数についてデバッグを行っている際には、main関数内にて代入/参照されている変数のみがデバッグに必要な情報となる。図3における変数名eに関する情報は、main関数についてデバッグを行っている際には、不要な情報である。 As a third problem, the conventional debugging apparatus displays all the history. As shown in FIG. 2, when debugging the main function of the C source program, only the variables assigned / referenced in the main function are information necessary for debugging. The information on the variable name e in FIG. 3 is unnecessary information when debugging the main function.
以下に、発明を実施するための形態で使用される符号を括弧付きで用いて、課題を解決するための手段を記載する。この符号は、特許請求の範囲の記載と発明を実施するための形態の記載との対応を明らかにするために付加されたものであり、特許請求の範囲に記載されている発明の技術的範囲の解釈に用いてはならない。 In the following, means for solving the problems will be described using the reference numerals used in the embodiments for carrying out the invention in parentheses. This symbol is added to clarify the correspondence between the description of the claims and the description of the mode for carrying out the invention, and the technical scope of the invention described in the claims. Must not be used to interpret
本発明のデバック装置は、コンパイラ処理部(408)と、メモリ/レジスタ管理部(405)と、実行制御部(402)と、変数値履歴管理部(406)と、変数値表示制御部(404)とを具備している。コンパイラ処理部(408)は、ソースファイル(407)に対して、プログラムとライン情報テーブルとを生成する。ライン情報テーブルには、関数名と変数が格納されている箇所を表す情報と変数名と代入/参照を示す情報とが複数対応付けられている。メモリ/レジスタ管理部(405)には、複数の変数が格納されている箇所を表す情報と複数の変数値とが格納されている。実行制御部(402)は、プログラムを実行/停止する。変数値履歴管理部(406)は、関数履歴テーブルを備え、実行制御部(402)が過去にプログラムを実行して停止したときの変数値と、その変数値に対する変数名とを履歴情報として、関数履歴テーブルに格納する。変数値表示制御部(404)は、プログラムが停止している時点での関数内で代入/参照されている変数の箇所を取得箇所としてライン情報テーブルから取得する。変数値表示制御部(404)は、メモリ/レジスタ管理部(405)に格納された複数の変数値の中から、取得箇所に対応する変数値を取得変数値として取得する。変数値表示制御部(404)は、関数履歴テーブルに格納された履歴情報の中から、取得変数値に該当する履歴情報を該当履歴情報として取得し、該当履歴情報を表示装置に表示する。 The debugging apparatus of the present invention includes a compiler processing unit (408), a memory / register management unit (405), an execution control unit (402), a variable value history management unit (406), and a variable value display control unit (404). ). The compiler processing unit (408) generates a program and a line information table for the source file (407). In the line information table, a plurality of information indicating function names and locations where variables are stored are associated with a plurality of variable names and information indicating substitution / reference. The memory / register management unit (405) stores information indicating a location where a plurality of variables are stored and a plurality of variable values. The execution control unit (402) executes / stops the program. The variable value history management unit (406) includes a function history table, and the variable value when the execution control unit (402) has stopped executing the program in the past and the variable name for the variable value are used as history information. Store in function history table. The variable value display control unit (404) acquires from the line information table, as the acquisition location, the location of the variable that is substituted / referenced in the function at the time when the program is stopped. The variable value display control unit (404) acquires a variable value corresponding to the acquisition location as an acquired variable value from among a plurality of variable values stored in the memory / register management unit (405). The variable value display control unit (404) acquires the history information corresponding to the acquired variable value from the history information stored in the function history table as the corresponding history information, and displays the corresponding history information on the display device.
従来では、第1の問題点として、変数の代入に関する履歴しか表示していなかったが、本発明では、変数の代入/参照箇所に関する情報を取得して、代入箇所だけでなく、参照箇所での変数値も表示装置に表示するようにしている。これにより、変数の代入先を探す作業を省くことができ、デバッグ作業の効率が上がる。 Conventionally, as a first problem, only the history relating to variable substitution has been displayed. However, in the present invention, information relating to variable substitution / reference location is acquired, and not only the substitution location but also the reference location. Variable values are also displayed on the display device. As a result, the work of searching for a variable assignment destination can be omitted, and the efficiency of the debugging work can be improved.
また、従来では、第2の問題点として、プログラム停止時点での全ての変数の変更履歴を表示しているため、同名の変数が区別しにくいが、本発明では、上記の取得変数値(デバッグ対象となっている関数にて代入/参照している変数値)に該当する履歴情報を該当履歴情報として、即ち、変更履歴として表示装置に表示するようにしている。これにより、スコープの異なる同名の変数が表示されなくなり、デバッグ時に異なる変数を参照することによる作業ミスを回避できる。 Conventionally, as a second problem, since the change history of all variables at the time of stopping the program is displayed, it is difficult to distinguish the variables with the same name. However, in the present invention, the acquired variable values (debugging) The history information corresponding to the variable value assigned / referenced by the target function is displayed on the display device as the corresponding history information, that is, as the change history. As a result, variables with the same name in different scopes are not displayed, and work errors caused by referring to different variables during debugging can be avoided.
また、従来では、第3の問題点として、全ての履歴が表示されているが、本発明では、デバッグ対象となっている関数のデバッグに必要な変数の変更履歴のみを表示装置に表示するようにしている。これにより、デバッグ作業の効率が上がる。 Conventionally, all the history is displayed as a third problem. However, in the present invention, only the change history of the variable necessary for debugging the function being debugged is displayed on the display device. I have to. This increases the efficiency of debugging work.
以下に添付図面を参照して、本発明の実施形態によるデバック装置について詳細に説明する。 Hereinafter, a debugging apparatus according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
[構成]
図4は、本発明の実施形態によるデバック装置の構成を示している。本発明の実施形態によるデバック装置は、コンピュータであり、図示しないCPU(Central Processing Unit)と、記録媒体である記憶部(図示しない)と、を具備している。記憶部には、コンピュータに実行させるためのコンピュータプログラムであるデバック用プログラムが記憶されている。CPUは、起動時などに記憶部からデバック用プログラムを読み取って実行する。デバック用プログラムは、ダウンロード部401、実行制御部402、デバッグ情報管理部403、変数値表示制御部404、メモリ/レジスタ管理部405、変数値履歴管理部406、コンパイラ処理部408を含んでいる。
[Constitution]
FIG. 4 shows a configuration of a debugging device according to an embodiment of the present invention. A debugging device according to an embodiment of the present invention is a computer, and includes a CPU (Central Processing Unit) (not shown) and a storage unit (not shown) that is a recording medium. The storage unit stores a debugging program that is a computer program to be executed by a computer. The CPU reads and executes the debugging program from the storage unit when starting up. The debugging program includes a
コンパイラ処理部408は、図2に示されるCソースファイル(Cソースプログラム)407に対して、プログラムとライン情報テーブルとを含む実行形式ファイル409を生成する。図13に示されるように、ライン情報テーブルには、実行形式ファイル409の名称を表すファイル名と、プログラムに用いられる関数の名称を表す関数名と、プログラムの行を表す行番号と、プログラムに用いられる変数が格納されている箇所(メモリ上のアドレス、又は、レジスタ)を表すアドレス範囲と、上記の変数の名称を表す変数名と、代入/参照を示す状態情報と、グローバル/ローカルを示すスコープ情報とが複数対応付けられて格納されている。ここで、“/”は“又は”を意味している。
The
ダウンロード部401は、実行形式ファイル409中のプログラムを取得する。
The
デバッグ情報管理部403は、実行形式ファイル409中のライン情報テーブルを取得して管理する。
The debug
メモリ/レジスタ管理部405は、複数の変数が格納されている箇所を表す情報と、複数の変数値とを格納している。
The memory /
実行制御部402は、ダウンロード部401によって取得されたプログラムを実行/停止する。実行制御部402は、プログラム停止時に、変数値表示制御部404を呼び出す。
The
変数値履歴管理部406は、関数履歴テーブルを備えている。変数値履歴管理部406は、実行制御部402が過去にプログラムを実行して停止したときの変数値と、その変数値に対する変数名、行番号、ファイル名とを履歴情報とし、そのときの関数コール・スタック情報と履歴情報とを対応付けて関数履歴テーブルに格納する。関数コール・スタック情報は、プログラムを実行するときに呼び出される関数の順番を示している。
The variable value
変数値表示制御部404は、プログラムが停止している時点での関数内で代入/参照されている変数の箇所を取得箇所としてデバッグ情報管理部403、即ち、ライン情報テーブルから取得する。変数値表示制御部404は、メモリ/レジスタ管理部405に格納された複数の変数値の中から、上記取得箇所に対応する変数値を取得変数値として取得する。また、変数値表示制御部404は、実行制御部402がプログラムを実行して停止したときの対象関数コール・スタック情報を取得し、関数履歴テーブルに格納された履歴情報の中から、対象関数コール・スタック情報に対応し、且つ、上記取得変数値に該当する履歴情報を該当履歴情報として取得する。変数値表示制御部404は、該当履歴情報に含まれる取得変数値、変数名、行番号と、上記の取得箇所に対する代入/参照を示す情報とを対応付けて表示装置に表示する。変数値表示制御部404は、該当履歴情報を上記の履歴情報として変数値履歴管理部406の関数履歴テーブルに格納することにより、関数履歴テーブルを更新する。
The variable value
[動作]
本発明の実施形態によるデバック装置の動作について説明する。
[Operation]
The operation of the debugging device according to the embodiment of the present invention will be described.
図5は、実行制御部402の動作として、デバック処理を示すフローチャートである。
FIG. 5 is a flowchart showing a debugging process as the operation of the
実行制御部402は、デバッグ対象となっている実行形式ファイル409中のプログラムをカレントPCの位置からCソース・レベルでステップ実行する(ステップS501)。Cソース・レベルでステップ実行とは、図2に示されるCソースファイル407のL7、L8といった各行を1行分実行することを意味する。
The
次に、実行制御部402は、変数値表示制御部404を呼び出す。変数値表示制御部404の処理が終了すると、次の処理を行う(ステップS502)。
Next, the
実行制御部402は、次に実行するCソースファイル407の行にブレークが設定されているか否かを判定する(ステップS503)。ブレークとは、図2のCソースファイル407のL7、L8といった行に設定されるプログラム実行の停止を指示するイベントで、一般的なデバッグ装置が持つ機能の一つである。
The
設定されている場合(ステップS503−YES)、実行制御部402は、デバック処理を終了する。
If it is set (step S503—YES), the
一方、設定されていない場合(ステップS503−NO)、実行制御部402は、プログラムの実行停止要求が発生していないか否かを判定する(ステップS504)。プログラムの実行停止要求とは、任意の箇所でプログラムの実行を停止する指示で、一般的なデバッグ装置が持つ機能の一つである。
On the other hand, if it has not been set (step S503-NO), the
発生している場合(ステップS504−YES)、実行制御部402は、デバック処理を終了する。
If it has occurred (step S504—YES), the
一方、発生していない場合(ステップS504−NO)、実行制御部402は、ステップS501の処理を行う。
On the other hand, if it has not occurred (NO in step S504), the
図6、図7は、変数値表示制御部404の動作として、変数値表示処理を示すフローチャートである。
6 and 7 are flowcharts showing variable value display processing as the operation of the variable value
変数値表示制御部404は、実行制御部402がプログラムを実行して停止したときに、カレントPCの値、関数コール・スタック情報をそれぞれ対象カレントPC値、対象関数コール・スタック情報として実行制御部402から取得して表示装置に表示する(ステップS601)。図2に示されるCソースファイル407を基に、以下にいくつか例を示す。
[1] L7からプログラムを実行して、L10行目でプログラム停止している場合は、対象関数コール・スタック情報は、「main」となる。
[2] L7からプログラムを実行して、L10行目にてfuncAを呼び出し、L18行目で停止している場合は、対象関数コール・スタック情報は、「main→funcA」となる。
[3] L7からプログラムを実行して、L12行目にてfuncBを呼び出し、L26行目でfuncAを呼び出し、L18行目で停止している場合は、対象関数コール・スタック情報は、「main→funcA→funcB」となる。
When the
[1] When a program is executed from L7 and the program is stopped at the L10th line, the target function call stack information is “main”.
[2] When a program is executed from L7 and funcA is called on the L10th line and is stopped on the L18th line, the target function call / stack information is “main → funcA”.
[3] When the program is executed from L7, funcB is called on the L12 line, funcA is called on the L26 line, and stopped on the L18 line, the target function call stack information is “main → funcA → funcB ”.
次に、変数値表示制御部404は、上記の対象関数コール・スタック情報に対応する履歴情報を該当履歴情報として変数値履歴管理部406から取得して表示装置に表示する。変数値の履歴がない場合は表示しない(ステップS602)。
Next, the variable value
次に、変数値表示制御部404は、上記の対象カレントPC値に対する行番号、変数名の一覧、代入/参照を示す情報の一覧をデバッグ情報管理部403(ライン情報テーブル)から取得する(ステップS603)。
Next, the variable value
ここで、変数名の一覧を取得できなかった場合(ステップS604−NO)、変数値表示制御部404は、後述のステップS605〜S609の処理を行わずに、後述のステップS701を行う。
Here, when the list of variable names cannot be acquired (NO in step S604), the variable value
一方、変数名の一覧を取得できた場合(ステップS604−YES)、変数値表示制御部404は、取得した変数の一覧を基に、変数の1つ1つに対して、以下の処理を行う(ステップS605)。
On the other hand, when a list of variable names has been acquired (step S604—YES), the variable value
上述のように、ライン情報テーブルは、変数名と変数が格納されている箇所(アドレス範囲)とを対応付ける。そこで、変数値表示制御部404は、変数名に従って、プログラムが停止している関数内で代入/参照されている全ての変数が格納されている箇所を取得箇所としてデバッグ情報管理部403、即ち、ライン情報テーブルから割り出す(ステップS606)。
As described above, the line information table associates variable names with locations (address ranges) where variables are stored. Therefore, the variable value
次に、変数値表示制御部404は、複数の変数値のうちの、取得箇所に対応する変数値を取得変数値としてメモリ/レジスタ管理部405から取得する(ステップS607)。
Next, the variable value
次に、変数値表示制御部404は、履歴情報のうちの、取得変数値に該当する履歴情報を該当履歴情報として変数値履歴管理部406(関数履歴テーブル)から取得し、該当履歴情報に含まれる取得変数値、変数名、行番号と、上記の取得箇所に対する代入/参照を示す情報とを対応付けて表示装置に表示する(ステップS608)。
Next, the variable value
次に、変数値表示制御部404は、デバッグ情報管理部403から取得した変数名の一覧の全ての変数に対して処理を行っていない場合(ステップS609−NO)、ステップS606〜S608の処理を行う。
Next, when the variable value
一方、変数値表示制御部404は、上記の全ての変数に対して処理した場合(ステップS609−YES)、後述のステップS701の処理を行う。
On the other hand, when the variable value
図14は、本発明を適用して、図2に示されるCソースファイル407のL7から実行を開始してL14で停止した場合に、変数値表示制御部404が表示装置に表示する表示結果の例である。ステップS609までの処理終了時点では、図14の符号1401、1402で囲まれた部分が表示される。
FIG. 14 shows the display result displayed on the display device by the variable value
変数値表示制御部404は、関数コール・スタック情報と現在表示している変数値の履歴情とを対応付けて変数値履歴管理部406に登録する(ステップS701)。
The variable value
上述のように、ライン情報テーブルは、関数名と変数名とグローバル/ローカルを示すスコープ情報とを対応付ける。そこで、変数値表示制御部404は、関数名が対象カレントPC値によりカレント関数を示し、スコープ情報がローカルを示すときの変数名をローカル変数名とし、その一覧をデバッグ情報管理部403(ライン情報テーブル)から取得する(ステップS702)。
As described above, the line information table associates function names, variable names, and scope information indicating global / local. Therefore, the variable value
上述のように、ライン情報テーブルは、関数名と変数名と代入/参照を示す状態情報とグローバル/ローカルを示すスコープ情報とを対応付ける。そこで、変数値表示制御部404は、関数名が対象カレントPC値によりカレント関数を示し、状態情報が代入/参照を示し、スコープ情報がグローバルを示しているときの変数名をグローバル変数名とし、その一覧をデバッグ情報管理部403(ライン情報テーブル)から取得する(ステップS703)。
As described above, the line information table associates function names, variable names, state information indicating substitution / reference, and scope information indicating global / local. Therefore, the variable value
変数値表示制御部404は、グローバル/ローカル変数名の一覧を取得できなかった場合(ステップS704−NO)、ステップS705〜S709の処理を行わない。即ち、変数値表示処理を終了する。
If the list of global / local variable names cannot be acquired (step S704-NO), the variable value
一方、変数値表示制御部404は、グローバル/ローカル変数名のどちらか1つでも一覧を取得できた場合(ステップS704−YES)、取得したグローバルとローカル変数の一覧を基に、変数の1つ1つに対して、以下の処理を行う(ステップS705)。
On the other hand, if the variable value
変数値表示制御部404は、グローバル/ローカル変数名に従って、変数が格納されている箇所(アドレス範囲)を取得箇所としてデバッグ情報管理部403(ライン情報テーブル)から割り出す(ステップS706)。
The variable value
次に、変数値表示制御部404は、複数の変数値のうちの、取得箇所に対応する変数値を取得変数値としてメモリ/レジスタ管理部405から取得する(ステップS707)。
Next, the variable value
次に、変数値表示制御部404は、履歴情報のうちの、取得変数値に該当する履歴情報を該当履歴情報として変数値履歴管理部406(関数履歴テーブル)から取得し、該当履歴情報に含まれる取得変数値、変数名を表示装置に表示する(ステップS708)。
Next, the variable value
次に、変数値表示制御部404は、デバッグ情報管理部403から取得した変数名の一覧の全ての変数に対して処理を行っていない場合(ステップS709−NO)、ステップS706〜S708の処理を行う。
Next, when the variable value
一方、変数値表示制御部404は、上記の全ての変数に対して処理した場合(ステップS709−YES)、変数値表示処理を終了する。全ての処理が終了すると、図14の符号1401、1402で囲まれた部分に加えて、符号1403で囲まれた部分が表示される。
On the other hand, the variable value
図11、図12は、デバッグ情報管理部403の動作として、それぞれ、第1、2デバック情報管理処理を示すフローチャートである。
FIGS. 11 and 12 are flowcharts showing the first and second debug information management processes as the operation of the debug
まず、第1デバック情報管理処理から説明する。第1デバック情報管理処理は、変数値表示制御部404から、対象カレントPC値を渡されて、行番号、変数名一覧、代入/参照を示す情報の一覧を、変数値表示制御部404に渡す際の動作フローである。
First, the first debug information management process will be described. In the first debug information management process, the target current PC value is passed from the variable value
デバッグ情報管理部403は、対象カレントPC値を使用して、上述のライン情報テーブルのアドレス範囲を検索する(ステップS1101)。
The debug
次に、デバッグ情報管理部403は、ライン情報テーブル中に、対象カレントPC値が該当するアドレス範囲が登録されているか否かを判定する(ステップS1102)。
Next, the debug
登録されていない場合(ステップS1102−NO)、デバッグ情報管理部403は、第1デバック情報管理処理を終了する。第1デバック情報管理処理を終了した場合、行番号、変数名の一覧、代入/参照を示す情報の一覧を変数値表示制御部404に渡さない。
If not registered (NO in step S1102), the debug
一方、登録されている場合(ステップS1102−YES)、デバッグ情報管理部403は、該当するアドレス範囲に対応する行番号、変数名の一覧、代入/参照を示す情報の一覧を変数値表示制御部404に渡す(ステップS1103)。
On the other hand, if registered (step S1102-YES), the debug
対象カレントPC値として、0x150が指定されている場合は、アドレス範囲の「0x150−0x180」が検索として該当する。この場合、行番号として「L11」、変数名の一覧として「a,b,c,d」、代入/参照を示す情報の一覧として「参照,参照,参照,代入」を変数値表示制御部404に渡す。
When 0x150 is specified as the target current PC value, “0x150-0x180” in the address range corresponds to the search. In this case, “L11” as the line number, “a, b, c, d” as the list of variable names, “reference, reference, reference, substitution” as the list of information indicating assignment / reference, and the variable value
次に、第2デバック情報管理処理について説明する。第2デバック情報管理処理は、変数値表示制御部404から、対象カレントPC値を渡されて、カレント関数で代入/参照しているグローバル変数名の一覧を、変数値表示制御部404に渡す際の動作フローである。
Next, the second debug information management process will be described. In the second debug information management process, when the target current PC value is passed from the variable value
デバッグ情報管理部403は、対象カレントPC値を使用して、ライン情報テーブルのアドレス範囲を検索する(ステップS1201)。図13に示されるように、対象カレントPC値として、0x220が指定されている場合は、アドレス範囲の「0x200−0x230」が検索として該当することになる。
The debug
次に、デバッグ情報管理部403は、ライン情報テーブル中に、対象カレントPC値が該当するアドレス範囲が登録されているか否かを判定する(ステップS1202)。
Next, the debug
登録されていない場合(ステップS1202−NO)、デバッグ情報管理部403は、第2デバック情報管理処理を終了する。終了した場合、グローバル変数名の一覧を変数値表示制御部404に渡さない(ステップS1202)。
If not registered (step S1202-NO), the debug
一方、登録されている場合(ステップS1202−YES)、デバッグ情報管理部403は、該当するアドレス範囲に対応する関数名を取得する(ステップS1203)。
On the other hand, when registered (step S1202-YES), the debug
対象カレントPC値として、0x220が指定されている場合は、アドレス範囲の「0x200−0x230」が検索として該当する。この場合、関数名として「main」を取得する。 When 0x220 is designated as the target current PC value, “0x200-0x230” in the address range corresponds to the search. In this case, “main” is acquired as the function name.
次に、デバッグ情報管理部403は、取得した関数名に対応する変数名の一覧を取得する(ステップS1204)。
Next, the debug
関数名として「main」を取得している場合は、変数名の一覧として、「a,b,c,d」を取得する。同名が存在する場合は、1つにマージする。 When “main” is acquired as a function name, “a, b, c, d” is acquired as a list of variable names. If the same name exists, it is merged into one.
次に、デバッグ情報管理部403は、取得した変数名の一覧のうち、スコープ情報がグローバルとなっている変数名を一覧として、変数値表示制御部に渡す(ステップS1205)。
Next, the debug
関数名として「main」、変数名の一覧として、「a,b,c,d」を取得している場合、変数名の一覧として、「a,b,c,d」を変数値表示制御部404に渡す。関数名として「funcB」、変数名の一覧として、「a,b,e」を取得している場合、変数名の一覧として、「b」を変数値表示制御部404に渡す。
When “main” is acquired as a function name and “a, b, c, d” is acquired as a list of variable names, “a, b, c, d” is displayed as a variable name list. Pass to 404. When “funcB” is acquired as a function name and “a, b, e” is acquired as a list of variable names, “b” is transferred to the variable value
図8、図9は、変数値履歴管理部406の動作として、それぞれ、第1、2変数値履歴管理処理を示すフローチャートである。
FIGS. 8 and 9 are flowcharts showing the first and second variable value history management processes as the operation of the variable value
まず、第1変数値履歴管理処理から説明する。第1変数値履歴管理処理は、変数値表示制御部404から対象関数コール・スタック情報を渡されて、履歴情報を該当履歴情報として変数値表示制御部404に渡す際の動作フローである。
First, the first variable value history management process will be described. The first variable value history management process is an operation flow when target function call / stack information is passed from the variable value
変数値履歴管理部406は、関数履歴テーブルの関数コール・スタック情報を検索する(ステップS801)。
The variable value
図10は、本発明を適用して、図2に示されるCソースファイル407のL7から実行を開始してL14で停止した場合に、変数値履歴管理部406が生成する関数履歴テーブルの例である。図10に示されるように、関数コール・スタック情報として、「main」が指定されている場合は、複数の関数コール・スタック情報のうちの1番目の関数コール・スタック情報1001が該当することになる。関数コール・スタック情報として、「main→funcB」が指定されている場合は、複数の関数コール・スタック情報のうちの3番目の関数コール・スタック情報1002が該当することになる。
FIG. 10 is an example of a function history table generated by the variable value
次に、変数値履歴管理部406は、関数履歴テーブル中に、変数値履歴管理部404から渡された関数コール・スタック情報が登録されているか否かを判定する(ステップS802)。
Next, the variable value
登録されていない場合(ステップS802−NO)、変数値履歴管理部406は、第1変数値履歴管理処理を終了する。終了した場合、履歴情報を変数値表示制御部404に渡さない(ステップS802)。
If not registered (NO in step S802), the variable value
登録されている場合(ステップS802−YES)、変数値履歴管理部406は、対象関数コール・スタック情報に対する履歴情報を該当履歴情報として変数値表示制御部404に渡す(ステップS803)。
If registered (YES in step S802), the variable value
対象関数コール・スタック情報1001として、「main」が指定されている場合は、該当履歴情報として、1番目から10番目までの履歴情報1003が該当することになる。対象関数コール・スタック情報として、「main→funcB」が指定されている場合は、該当履歴情報として、14番目から16番目までの履歴情報1004が該当することになる。
When “main” is designated as the target function
次に、第2変数値履歴管理処理について説明する。第2変数値履歴管理処理は、変数値表示制御部404から対象関数コール・スタック情報と該当履歴情報を渡されて、関数履歴テーブルを更新する際の動作フローである。
Next, the second variable value history management process will be described. The second variable value history management process is an operation flow when the target function call / stack information and the corresponding history information are passed from the variable value
変数値履歴管理部406は、関数履歴テーブル内の対象関数コール・スタック情報を検索する(ステップS901)。
The variable value
次に、変数値履歴管理部406は、関数履歴テーブル中に、変数値履歴管理部404から渡された対象関数コール・スタック情報が登録されているか否かを判定する(ステップS902)。
Next, the variable value
登録されている場合(ステップS902−YES)、変数値履歴管理部406は、関数履歴テーブル内の対象関数コール・スタック情報に対する履歴情報を、変数値表示制御部404から渡された該当履歴情報に更新する(ステップS903)。変数値履歴管理部406は、対象関数コール・スタック情報として、「main」が指定されている場合は、該当履歴情報として1番目から10番目までの履歴情報1003が該当することになり、現在登録されている情報を削除して、変数値表示制御部404から渡された該当履歴情報に更新する。
If registered (YES in step S902), the variable value
一方、登録されていない場合(ステップS902−NO)、変数値履歴管理部406は、新規に、変数値表示制御部404から渡された対象関数コール・スタック情報と該当履歴情報を関数履歴テーブルに登録する(ステップS904)。変数値履歴管理部406は、対象関数コール・スタック情報として「main→funcD」、該当履歴情報として「変数名:f,行番号:L30,ファイル名:sub.c,値:100」が指定されている場合は、関数履歴テーブル内の最後尾のデータとして登録する。
On the other hand, if not registered (NO in step S902), the variable value
変数値履歴テーブルは、ダウンロード部401が実行形式ファイル409をダウンロードするタイミングでクリアされる。
The variable value history table is cleared when the
[効果]
以上の説明により、本発明の実施形態によるデバック装置では、コンパイラ処理部408は、Cソースファイル407に対して、プログラムとライン情報テーブルとを含む実行形式ファイル409を生成する。ライン情報テーブルには、ファイル名、関数名、行番号、変数が格納されている箇所を表す情報、変数名、代入/参照を示す情報、グローバル/ローカルを示すスコープ情報を複数対応付けられている。メモリ/レジスタ管理部405は、複数の変数が格納されている箇所を表す情報と、複数の変数値とを格納している。変数値履歴管理部406は、実行制御部402が過去にプログラムを実行して停止したときの変数値と、その変数値に対する変数名、行番号、ファイル名とを履歴情報とし、そのときの関数コール・スタック情報と履歴情報とを対応付けて関数履歴テーブルに格納する。変数値表示制御部404は、プログラムが停止している時点での関数内で代入/参照されているグローバル変数、ローカル変数の箇所を取得箇所としてデバッグ情報管理部403(ライン情報テーブル)から取得する。変数値表示制御部404は、メモリ/レジスタ管理部405に格納された複数の変数値の中から、上記取得箇所に対応する変数値を取得変数値として取得する。また、変数値表示制御部404は、実行制御部402がプログラムを実行して停止したときの対象関数コール・スタック情報を取得し、関数履歴テーブルに格納された履歴情報の中から、対象関数コール・スタック情報に対応し、且つ、上記取得変数値に該当する履歴情報を該当履歴情報として取得する。変数値表示制御部404は、該当履歴情報に含まれる取得変数値、変数名、行番号と、上記の取得箇所に対する代入/参照を示す情報とを対応付けて表示装置に表示する。変数値表示制御部404は、該当履歴情報を上記の履歴情報として変数値履歴管理部406の関数履歴テーブルに格納することにより、関数履歴テーブルを更新する。
[effect]
As described above, in the debugging device according to the embodiment of the present invention, the
このように、従来では、第1の問題点として、変数の代入に関する履歴しか表示していなかったが、本発明では、変数値表示制御部404は、デバッグ情報管理部403から変数の代入/参照箇所に関する情報を取得して、代入箇所だけでなく、参照箇所での変数値も表示装置に表示するようにしている。これにより、変数の代入先を探す作業を省くことができ、デバッグ作業の効率が上がる。
As described above, conventionally, only the history related to variable substitution is displayed as a first problem. However, in the present invention, the variable value
また、従来では、第2の問題点として、プログラム停止時点での全ての変数の変更履歴を表示しているため、同名の変数が区別しにくいが、本発明では、上記の取得変数値(デバッグ対象となっている関数にて代入/参照している変数値)に該当する履歴情報を該当履歴情報として、即ち、変更履歴として表示装置に表示するようにしている。これにより、スコープの異なる同名の変数が表示されなくなり、デバッグ時に異なる変数を参照することによる作業ミスを回避できる。 Conventionally, as a second problem, since the change history of all variables at the time of stopping the program is displayed, it is difficult to distinguish the variables with the same name. However, in the present invention, the acquired variable values (debugging) The history information corresponding to the variable value assigned / referenced by the target function is displayed on the display device as the corresponding history information, that is, as the change history. As a result, variables with the same name in different scopes are not displayed, and work errors caused by referring to different variables during debugging can be avoided.
また、従来では、第3の問題点として、全ての履歴が表示されているが、本発明では、デバッグ対象となっている関数のデバッグに必要な変数の変更履歴のみを表示装置に表示するようにしている。これにより、デバッグ作業の効率が上がる。 Conventionally, all the history is displayed as a third problem. However, in the present invention, only the change history of the variable necessary for debugging the function being debugged is displayed on the display device. I have to. This increases the efficiency of debugging work.
更に、本発明では、変数名に、変数に対して代入/参照を行っている行番号を追加して表示装置に表示することで、該当行番号が実行された時点でのローカル変数の変数値を一瞬で判断できる。 Furthermore, in the present invention, the variable number of the local variable at the time when the corresponding line number is executed is displayed by adding the line number assigned / referenced to the variable to the variable name and displaying it on the display device. Can be determined in an instant.
101 実行形式ファイル、
102 プロセッサ制御部、
103 変数監視部、
104 レジスタ履歴メモリ、
105 ソース行履歴メモリ、
106 変数履歴メモリ、
107 レジスタ表示部、
108 プログラム表示部、
109 変数表示部、
401 ダウンロード部、
402 実行制御部、
403 デバッグ情報管理部、
404 変数値表示制御部、
405 メモリ/レジスタ管理部、
406 変数値履歴管理部、
407 Cソースファイル、
408 コンパイラ処理部、
409 実行形式ファイル、
1001 関数コール・スタック情報、
1002 関数コール・スタック情報、
1003 履歴情報、
1004 履歴情報、
1401 部分(表示結果)、
1402 部分(表示結果)、
1403 部分(表示結果)
101 executable file,
102 processor control unit,
103 variable monitoring unit,
104 register history memory,
105 source line history memory,
106 variable history memory,
107 register display,
108 program display section,
109 variable display section,
401 Download section,
402 execution control unit,
403 debug information manager,
404 variable value display control unit,
405 Memory / register management unit,
406 variable value history management unit,
407 C source file,
408 compiler processing unit,
409 executable file,
1001 Function call stack information,
1002 Function call stack information,
1003 History information,
1004 history information,
1401 part (display result),
1402 part (display result),
1403 part (display result)
Claims (13)
複数の変数が格納されている箇所を表す情報と複数の変数値とが格納されたメモリ/レジスタ管理部と、
前記プログラムを実行/停止する実行制御部と、
関数履歴テーブルを備え、前記実行制御部が過去に前記プログラムを実行して停止したときの変数値と、その変数値に対する変数名とを履歴情報として、前記関数履歴テーブルに格納する変数値履歴管理部と、
前記プログラムが停止している時点での関数内で代入/参照されている変数の箇所を取得箇所として前記ライン情報テーブルから取得し、前記メモリ/レジスタ管理部に格納された前記複数の変数値の中から、前記取得箇所に対応する変数値を取得変数値として取得し、前記関数履歴テーブルに格納された前記履歴情報の中から、前記取得変数値に該当する履歴情報を該当履歴情報として取得し、前記該当履歴情報を前記表示装置に表示する変数値表示制御部と
を具備するデバック装置。 A compiler processing unit that generates, for a source file, a line information table in which a program, information indicating a function name and a location where a variable is stored, and a plurality of variable names and information indicating substitution / reference are associated with each other; ,
A memory / register management unit storing information representing a location where a plurality of variables are stored and a plurality of variable values;
An execution control unit for executing / stopping the program;
A variable value history management that includes a function history table and stores in the function history table, as history information, a variable value when the execution control unit has executed and stopped the program in the past and a variable name for the variable value And
The variable location assigned / referenced in the function at the time when the program is stopped is acquired from the line information table as an acquisition location, and the plurality of variable values stored in the memory / register management unit The variable value corresponding to the acquisition location is acquired as an acquisition variable value, and the history information corresponding to the acquisition variable value is acquired as the corresponding history information from the history information stored in the function history table. A debugging device comprising: a variable value display control unit that displays the corresponding history information on the display device.
前記関数コール・スタック情報は、前記プログラムを実行するときに呼び出される関数の順番を示し、
前記変数値表示制御部は、前記実行制御部が前記プログラムを実行して停止したときの対象関数コール・スタック情報を取得し、前記履歴情報のうちの、前記対象関数コール・スタック情報に対応し、且つ、前記取得変数値に該当する履歴情報を前記該当履歴情報として前記関数履歴テーブルから取得する
請求項1に記載のデバック装置。 The variable value history management unit stores the function call stack information and the history information in association with each other when the execution control unit has executed and stopped the program in the past, and stores them in the function history table.
The function call stack information indicates the order of functions to be called when executing the program,
The variable value display control unit acquires target function call stack information when the execution control unit executes the program and stops, and corresponds to the target function call stack information in the history information. The debugging apparatus according to claim 1, wherein history information corresponding to the acquired variable value is acquired from the function history table as the corresponding history information.
請求項1又は2に記載のデバック装置。 The variable value display control unit displays the acquired variable value included in the corresponding history information, its variable name, and information indicating substitution / reference to the acquired location in association with each other and displayed on the display device. Or the debugging apparatus of 2.
請求項1〜3のいずれかに記載のデバック装置。 The variable value display control unit updates the function history table by storing the corresponding history information as the history information in the function history table of the variable value history management unit. The debugging apparatus as described.
請求項1〜4のいずれかに記載のデバック装置。 The debugging apparatus according to claim 1, wherein the line information table is further associated with a plurality of scope information indicating global / local.
前記関数履歴テーブルに格納された前記履歴情報は、更に、前記実行制御部が過去に前記プログラムを実行して停止したときの変数値に対する行番号を更に含む
請求項1〜5のいずれかに記載のデバック装置。 In the line information table, a plurality of line numbers are further associated,
6. The history information stored in the function history table further includes a line number for a variable value when the execution control unit has executed and stopped the program in the past. Debug device.
前記プログラムを実行/停止するステップと、
過去に前記プログラムを実行して停止したときの変数値と、その変数値に対する変数名とを履歴情報として、関数履歴テーブルに格納するステップと、
前記ライン情報テーブルを参照して、前記プログラムが停止している時点での関数内で代入/参照されている変数の箇所を取得箇所として取得するステップと、
複数の変数が格納されている箇所を表す情報と複数の変数値とが格納されたメモリ/レジスタ管理部を参照して、前記複数の変数値の中から、前記取得箇所に対応する変数値を取得変数値として取得するステップと、
前記関数履歴テーブルを参照して、前記履歴情報の中から、前記取得変数値に該当する履歴情報を該当履歴情報として取得するステップと、
前記該当履歴情報を前記表示装置に表示するステップと
を具備するデバック方法。 Generating, for a source file, a line information table in which a program, information indicating a function name and a location where a variable is stored, and a variable name and information indicating substitution / reference are associated with each other;
Executing / stopping the program; and
Storing the variable value when the program was executed and stopped in the past and the variable name for the variable value as history information in the function history table;
With reference to the line information table, obtaining a location of a variable that is assigned / referenced in a function at the time when the program is stopped as an acquisition location;
Referring to the memory / register management unit in which information representing a location where a plurality of variables are stored and a plurality of variable values are stored, a variable value corresponding to the acquisition location is selected from the plurality of variable values. A step of acquiring as an acquisition variable value;
Referring to the function history table, obtaining history information corresponding to the acquired variable value from the history information as corresponding history information;
A debugging method comprising: displaying the corresponding history information on the display device.
過去に前記プログラムを実行して停止したときの関数コール・スタック情報と前記履歴情報とを対応付けて前記関数履歴テーブルに格納するステップ
を含み、
前記関数コール・スタック情報は、前記プログラムを実行するときに呼び出される関数の順番を示し、
前記該当履歴情報を前記関数履歴テーブルから取得するステップは、
前記プログラムを実行して停止したときの対象関数コール・スタック情報を取得するステップと、
前記履歴情報のうちの、前記対象関数コール・スタック情報に対応し、且つ、前記取得変数値に該当する履歴情報を前記該当履歴情報として前記関数履歴テーブルから取得するステップと
を含む請求項7に記載のデバック方法。 The step of storing the history information in the function history table includes:
Storing the function call stack information and the history information in the function history table in association with the function call stack information when the program was stopped in the past,
The function call stack information indicates the order of functions to be called when executing the program,
The step of acquiring the relevant history information from the function history table includes:
Obtaining target function call stack information when the program is executed and stopped;
The step of acquiring history information corresponding to the target function call / stack information of the history information and corresponding to the acquired variable value from the function history table as the corresponding history information. The debugging method described.
前記該当履歴情報に含まれる前記取得変数値、変数名、行番号と、前記取得箇所に対する代入/参照を示す情報とを対応付けて前記表示装置に表示するステップ
を含む請求項7又は8に記載のデバック方法。 The step of displaying the corresponding history information on the display device includes:
9. The method according to claim 7, further comprising: displaying the acquired variable value, variable name, and line number included in the corresponding history information in association with information indicating substitution / reference with respect to the acquired location on the display device. Debugging method.
を更に具備する請求項7〜9のいずれかに記載のデバック方法。 The debug according to claim 7, further comprising a step of updating the function history table by storing the corresponding history information as the history information in the function history table of the variable value history management unit. Method.
請求項7〜10のいずれかに記載のデバック方法。 The debugging method according to claim 7, wherein the line information table is further associated with a plurality of scope information indicating global / local.
前記関数履歴テーブルに格納された前記履歴情報は、更に、過去に前記プログラムを実行して停止したときの変数値に対する行番号を更に含む
請求項7〜11のいずれかに記載のデバック方法。 In the line information table, a plurality of line numbers are further associated,
The debugging method according to any one of claims 7 to 11, wherein the history information stored in the function history table further includes a line number corresponding to a variable value when the program is executed and stopped in the past.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009260931A JP2011107883A (en) | 2009-11-16 | 2009-11-16 | Debugging device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009260931A JP2011107883A (en) | 2009-11-16 | 2009-11-16 | Debugging device |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011107883A true JP2011107883A (en) | 2011-06-02 |
Family
ID=44231296
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009260931A Pending JP2011107883A (en) | 2009-11-16 | 2009-11-16 | Debugging device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011107883A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573565A (en) * | 2024-01-16 | 2024-02-20 | 麒麟软件有限公司 | Debug history information reproduction method, device and storage medium |
CN117573565B (en) * | 2024-01-16 | 2024-06-07 | 麒麟软件有限公司 | Debug history information reproduction method, device and storage medium |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63317840A (en) * | 1987-06-20 | 1988-12-26 | Fujitsu Ltd | Program debug system |
JPH03246732A (en) * | 1990-02-26 | 1991-11-05 | Nec Corp | Multitask program debugging system |
JPH064344A (en) * | 1992-06-17 | 1994-01-14 | Hokkaido Nippon Denki Software Kk | System for displaying type of variable referred to in program |
JPH1165885A (en) * | 1997-08-12 | 1999-03-09 | Nec Corp | Device and method for debugging software |
JP2001236244A (en) * | 2000-02-23 | 2001-08-31 | Mitsubishi Electric Corp | Debug system for robot program |
JP2004054807A (en) * | 2002-07-24 | 2004-02-19 | Hitachi Ltd | Method and device for information processing |
JP2007034825A (en) * | 2005-07-28 | 2007-02-08 | Matsushita Electric Ind Co Ltd | Debugging device |
JP2008129714A (en) * | 2006-11-17 | 2008-06-05 | Univ Of Tsukuba | Abnormality detection method, abnormality detection device, abnormality detection program, and learning model generation method |
-
2009
- 2009-11-16 JP JP2009260931A patent/JP2011107883A/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63317840A (en) * | 1987-06-20 | 1988-12-26 | Fujitsu Ltd | Program debug system |
JPH03246732A (en) * | 1990-02-26 | 1991-11-05 | Nec Corp | Multitask program debugging system |
JPH064344A (en) * | 1992-06-17 | 1994-01-14 | Hokkaido Nippon Denki Software Kk | System for displaying type of variable referred to in program |
JPH1165885A (en) * | 1997-08-12 | 1999-03-09 | Nec Corp | Device and method for debugging software |
JP2001236244A (en) * | 2000-02-23 | 2001-08-31 | Mitsubishi Electric Corp | Debug system for robot program |
JP2004054807A (en) * | 2002-07-24 | 2004-02-19 | Hitachi Ltd | Method and device for information processing |
JP2007034825A (en) * | 2005-07-28 | 2007-02-08 | Matsushita Electric Ind Co Ltd | Debugging device |
JP2008129714A (en) * | 2006-11-17 | 2008-06-05 | Univ Of Tsukuba | Abnormality detection method, abnormality detection device, abnormality detection program, and learning model generation method |
Non-Patent Citations (4)
Title |
---|
CSNG200100894011; 小野 展弘: 'プログラムの静的解析と動的解析の相互補完によるプログラム理解・開発支援プロセス' 情報処理学会研究報告 第2000巻,第104号, 20001117, p.81-88, 社団法人情報処理学会 * |
CSNG200500784007; 石黒 誉久: '変数更新の回数と分散に基づくプログラムのメンタルシミュレーションコスト評価' 電子情報通信学会技術研究報告 第104巻,第466号, 20041125, p.37-42, 社団法人電子情報通信学会 * |
JPN6013047179; 小野 展弘: 'プログラムの静的解析と動的解析の相互補完によるプログラム理解・開発支援プロセス' 情報処理学会研究報告 第2000巻,第104号, 20001117, p.81-88, 社団法人情報処理学会 * |
JPN6013047182; 石黒 誉久: '変数更新の回数と分散に基づくプログラムのメンタルシミュレーションコスト評価' 電子情報通信学会技術研究報告 第104巻,第466号, 20041125, p.37-42, 社団法人電子情報通信学会 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117573565A (en) * | 2024-01-16 | 2024-02-20 | 麒麟软件有限公司 | Debug history information reproduction method, device and storage medium |
CN117573565B (en) * | 2024-01-16 | 2024-06-07 | 麒麟软件有限公司 | Debug history information reproduction method, device and storage medium |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7620941B1 (en) | Mechanism for lossless user-level tracing on an architecture supporting PC-relative addressing | |
US10229031B2 (en) | Debugging inline functions in optimized code | |
JP2010250739A (en) | Method and apparatus for support of software reuse | |
US20120110560A1 (en) | Data type provider for a web semantic store | |
JP2003050715A (en) | Compiler and debugging device | |
US8776010B2 (en) | Data type provider for a data store | |
JP2008204405A (en) | Software regression test system, regression test program and regression test method | |
JP2013008277A (en) | Coverage measuring apparatus and method and program | |
JP2009104252A (en) | Debugging support device and debugging support method | |
CN112685040A (en) | Method, device, equipment and storage medium for generating interface file in android system | |
JP4328328B2 (en) | Software development tool program | |
JP2011107883A (en) | Debugging device | |
JP2014222384A (en) | Function execution time measuring device, function execution time measuring method, and function execution time measuring program | |
JP4986598B2 (en) | Application management system and control method thereof | |
CN116009852A (en) | Code construction method, device, computer equipment and storage medium | |
JP2007004400A (en) | Program debug method | |
JPH06175884A (en) | Program error cause investigating device | |
EP1345129A2 (en) | Information processing system and method | |
JP2009181528A (en) | Operation cancellation system, method, and program | |
JP2016062311A (en) | Update device and information processing method | |
JP4295912B2 (en) | Debug system | |
JP2017138747A (en) | Image forming apparatus | |
JP5789575B2 (en) | Information processing apparatus and program | |
JPH0934754A (en) | Instrument and method for measuring performance of program | |
JP4208591B2 (en) | Breakpoint setting device, breakpoint setting method, and breakpoint setting program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120726 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130918 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130920 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140204 |