[go: up one dir, main page]

JP2010287120A - Debugging device, debugging method, and debugging support program - Google Patents

Debugging device, debugging method, and debugging support program Download PDF

Info

Publication number
JP2010287120A
JP2010287120A JP2009141489A JP2009141489A JP2010287120A JP 2010287120 A JP2010287120 A JP 2010287120A JP 2009141489 A JP2009141489 A JP 2009141489A JP 2009141489 A JP2009141489 A JP 2009141489A JP 2010287120 A JP2010287120 A JP 2010287120A
Authority
JP
Japan
Prior art keywords
program
point
execution
debugging
storage unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2009141489A
Other languages
Japanese (ja)
Inventor
Norihiro Chihara
徳大 千原
Naotoshi Izumi
直利 泉
Kohei Matsumoto
康平 松本
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.)
Panasonic Corp
Original Assignee
Panasonic 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 Panasonic Corp filed Critical Panasonic Corp
Priority to JP2009141489A priority Critical patent/JP2010287120A/en
Publication of JP2010287120A publication Critical patent/JP2010287120A/en
Withdrawn legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】プログラムを現実に実行したときの不利益を避けつつ、プログラムが特定の経路上を通るかどうかを、実際に近い環境下で調べる。
【解決手段】
プログラムの実行中に開始ポイント(P)に達すると、プログラムの実行を一旦停止し、仮想実行を開始する。仮想実行においてはターゲット装置のメモリ・レジスタには直接値を書き込まないようにする。そして仮想実行において、予測ポイント(P)に達したとき(S104:false,S106)には、実行を停止し、予測ポイント(P)に達した旨を示すダイアログを表示する。予測ポイント(P)に達しない場合(S104:true,S105)には、一旦停止していた開始ポイント(P)からプログラムの実行を再開する。
【選択図】図7
[PROBLEMS] To investigate whether or not a program passes on a specific route in an environment close to the actual environment while avoiding disadvantages when the program is actually executed.
[Solution]
When the start point (P S ) is reached during the execution of the program, the execution of the program is temporarily stopped and virtual execution is started. In virtual execution, a value is not directly written to the memory register of the target device. In the virtual execution, when the prediction point (P P ) is reached (S104: false, S106), the execution is stopped and a dialog indicating that the prediction point (P P ) has been reached is displayed. When the predicted point (P P ) is not reached (S104: true, S105), the program execution is resumed from the start point (P S ) once stopped.
[Selection] Figure 7

Description

本発明は、プログラム上のエラーを探してエラーの解決を図るデバッグ作業(debugging)を支援するデバッグ装置に関し、とくにプログラムの実行停止(ブレーク)に関する。   The present invention relates to a debugging device that supports a debugging operation that searches for an error in a program and solves the error, and particularly relates to a program execution stop (break).

従来からデバッグ作業においては、実行中のプログラムを強制的に停止させるためのブレークポイントを設定する。
ブレークポイントの設定条件は、例えば、(1)プログラムの実行が特定位置に達した、(2)実行が特定の関数に達した、(3)実行が特定のメモリアドレスに達した、などを条件とすることが知られている(非特許文献1参照)。
Conventionally, in debugging work, a breakpoint is set for forcibly stopping a running program.
Breakpoint setting conditions include, for example, (1) program execution has reached a specific position, (2) execution has reached a specific function, and (3) execution has reached a specific memory address. (See Non-Patent Document 1).

ブレークポイントで停止させることで、停止時の変数の値などプログラムの動作状態をユーザは確認することができる。
もっともプログラム上のエラーのタイプによっては、一度起きた事象を完全には再現しにくいエラー(再現性に乏しいエラー)がある。
これに関して、特許文献1では、レジスタやメモリへの書き込み命令の直前に、書き込む領域に格納されているデータを退避しておき、バグの影響によりプログラムの実行が停止すると、この退避したデータを用いて、停止した位置から逆方向に1ステップずつトレースすることで再現性を向上できるとしている。
By stopping at a breakpoint, the user can check the operating state of the program, such as the value of the variable when stopped.
However, depending on the type of error in the program, there is an error (an error that is not reproducible) that makes it difficult to completely reproduce an event that has occurred once.
In this regard, in Patent Document 1, data stored in a write area is saved immediately before a write instruction to a register or memory, and when execution of a program is stopped due to a bug, the saved data is used. The reproducibility can be improved by tracing one step at a time in the reverse direction from the stopped position.

特開平9−6647号公報Japanese Patent Laid-Open No. 9-6647

「ブレークポイント」、Visual Studio デベロッパー センター、マイクロソフト株式会社、[平成21年5月28日閲覧]、インターネット<URL:http://msdn.microsoft.com/ja-jp/library/aa291561(VS.71).aspx>"Breakpoints", Visual Studio Developer Center, Microsoft Corporation, [accessed May 28, 2009], Internet <URL: http://msdn.microsoft.com/en-us/library/aa291561(VS.71 ) .aspx>

ところで、分岐を有するプログラムの場合、分岐先の特定の経路上にブレークポイントを設定し、このブレークポイントでプログラムを停止させたいときには、このブレークポイントに向かってプログラムが流れるように、分岐条件に応じて値などを調整する必要がある。このような値の調整は煩雑な上、調整したプログラムは本来の挙動とは異なる動作となりがちで有用性に乏しいという問題をはらんでいる。   By the way, in the case of a program having a branch, when a breakpoint is set on a specific route at a branch destination and the program is stopped at this breakpoint, the program flows toward this breakpoint according to the branch condition. It is necessary to adjust the value. Adjustment of such values is troublesome, and the adjusted program tends to be different from the original behavior and has a problem that it is not useful.

また、例外的な事象が発生したときに通る経路上にブレークポイントを設定すると、この例外的な事象の影響によっては、システムに異常をきたすことがあり、その回復(特に、ハード制御を伴うプログラムの場合など)に時間やコストを要することがある。このことから、プログラムをただ漫然と実行してブレークポイントに遭遇するようなことは回避したいという要請がある。   Also, if a breakpoint is set on the path that passes when an exceptional event occurs, the system may malfunction due to the effect of this exceptional event, and recovery (especially a program with hard control) In some cases, it may take time and cost. For this reason, there is a demand for avoiding a situation where breakpoints are encountered simply by running the program.

本発明はこのような背景の下になされたものであって、プログラムを実行したときの不利益を避けつつ、プログラムが特定の経路上を通るかどうかを、実際に近い環境下で調べることができるデバッグ装置を提供することを目的とする。   The present invention has been made under such a background, and it is possible to examine whether a program passes on a specific path in an environment close to the actual environment while avoiding a disadvantage when the program is executed. An object of the present invention is to provide a debugging device that can be used.

本発明に係るデバッグ装置は、ターゲット装置上で実行すべきプログラムのデバッグを行うデバッグ装置であって、前記プログラム上の位置を示す第1ポイントと、前記第1ポイントとは異なるプログラム上の位置を示す第2ポイントとを設定する設定手段と、前記プログラムを、前記ターゲット装置が備える第1記憶部に値の書き込みを行いながら実行する実行手段と、前記実行手段による実行中のプログラムの位置が前記第1ポイントに達すると、その時点で前記第1記憶部に記憶されている値を複写し、複写した記憶内容を第2記憶部に記憶させる複写手段と、前記実行手段は、複写後、前記第1ポイントを開始位置として第2記憶部に値の書き込みを行いながら、第1記憶部には値の書き込みを行わないで、前記プログラムを実行し、前記複写後に前記実行手段が実行するプログラムの位置が前記第2ポイントに達するかどうか判定する判定手段とを備えることを特徴としている。   A debugging device according to the present invention is a debugging device for debugging a program to be executed on a target device, wherein a first point indicating a position on the program and a position on the program different from the first point are set. A setting means for setting a second point to be indicated; an execution means for executing the program while writing a value in a first storage unit provided in the target device; and a position of the program being executed by the execution means is When the first point is reached, the copying means for copying the value stored in the first storage section at that time and storing the copied storage contents in the second storage section; and the execution means, after copying, While writing a value to the second storage unit with the first point as a starting position, the program is executed without writing a value to the first storage unit. Is characterized in that the position of the program where the execution unit is performed after the copying and a determination means whether or reaches the second point.

本発明に係るデバッグ装置によれば、第1ポイントに達した後に、第1記憶部には値の書き込みを行わないで、前記プログラムを実行させることで第2ポイントに達するかどうかを判定できる。また、第1ポイントに達した後のプログラムの実行は、ターゲット装置が備える第1記憶部に値の書き込まない形の実行となるので、プログラムを現実に実行したときの不利益などを回避できる。   According to the debugging device of the present invention, after reaching the first point, it is possible to determine whether or not the second point is reached by executing the program without writing a value in the first storage unit. Moreover, since the execution of the program after reaching the first point is an execution in which a value is not written in the first storage unit included in the target device, it is possible to avoid disadvantages when the program is actually executed.

また、前記実行手段は、前記判定手段により前記第2ポイントに達したと判定されると、プログラムの実行を停止するとしても構わない。
この構成によれば、第2ポイントに達したときにプログラムの実行を停止するので、例えば、停止した後に第2ポイントに達する要因の解析などを行うことができる。
また、前記実行手段によるプログラムの実行停止に伴い、前記第2記憶部に書き込まれた値を出力する出力手段を備えるとしても構わない。
The execution unit may stop the execution of the program when the determination unit determines that the second point has been reached.
According to this configuration, the execution of the program is stopped when the second point is reached. For example, it is possible to analyze a factor that reaches the second point after the stop.
Further, an output unit that outputs a value written in the second storage unit when the execution unit stops executing the program may be provided.

この構成によれば、例えば、第2記憶部に書き込まれた値を表示出力することで、デバッグを行うユーザに有用な情報を提供することができる。
また、前記設定手段は、前記第2ポイントに達した時点におけるプログラムの状態を設定し、前記判定手段は、前記第2ポイントに達した時点におけるプログラムの状態を判定し、前記実行手段は、前記判定手段により前記第2ポイントに達したと判定され、かつ、設定されたプログラムの状態と判定されたプログラムの状態とが一致したと判定されたときに、プログラムの実行を停止し、前記判定手段により前記第2ポイントに達したと判定されないか、または、設定されたプログラムの状態と判定されたプログラムの状態とが一致しないと判定されたときには、プログラムの実行を停止しないとしても構わない。
According to this configuration, for example, it is possible to provide useful information to the user who performs debugging by displaying and outputting the value written in the second storage unit.
Further, the setting means sets the state of the program when the second point is reached, the determination means determines the state of the program when the second point is reached, and the execution means When it is determined by the determination means that the second point has been reached and it is determined that the set program state matches the determined program state, the execution of the program is stopped, and the determination means If it is not determined that the second point has been reached, or if it is determined that the set program state does not match the determined program state, the execution of the program may not be stopped.

この構成によれば、プログラムの状態として、例えば、データ中の値の条件式を設定すれば、この条件式を満たしたときにはプログラムの実行を停止させ、満たさないときには停止させないとすることで、より細やかな設定が可能となり、ユーザのニーズに合わせてプログラムを停止させるかさせないかを制御できる。
また、前記第2ポイントに達しないと判定されると、前記実行手段は、前記複写後の前記プログラムの実行を終了するとともに、前記第1ポイントを開始位置として、前記第1記憶部に値の書き込みを行いながらのプログラムの実行を再開するとしても構わない。
According to this configuration, for example, if a conditional expression of a value in the data is set as the program state, execution of the program is stopped when the conditional expression is satisfied, and is not stopped when the conditional expression is not satisfied. Detailed settings are possible, and it is possible to control whether or not to stop the program according to user needs.
When it is determined that the second point has not been reached, the execution means terminates the execution of the program after the copying, and sets the value in the first storage unit with the first point as a start position. You may resume the execution of the program while writing.

この構成によれば、例えば、第2ポイントに達することを回避したいという事情がある場合に、第2ポイントには達しないという判定の保証の下で、第1ポイントからプログラムの実行を再開でき、デバッグ作業の効率化に資する。
また、本発明に係るデバッグ方法は、ターゲット装置上で実行すべきプログラムのデバッグを行うデバッグ装置において実行されるデバッグ方法であって、プログラム上の位置を示す第1ポイントと、前記第1ポイントとは異なるプログラム上の位置を示す第2ポイントとを設定する設定ステップと、前記プログラムを、前記ターゲット装置が備える第1記憶部に値の書き込みを行いながら実行する第1実行ステップと、前記第1実行ステップにおける実行中のプログラムの位置が前記第1ポイントに達すると、その時点で前記第1記憶部に記憶されている値を第2記憶部に複写する複写ステップと、複写後、前記第1ポイントを開始位置として第2記憶部に値の書き込みを行いながら、第1記憶部には値の書き込みを行わないで、前記プログラムを実行する第2実行ステップと、前記第2実行ステップにおける実行中のプログラムの位置が前記第2ポイントに達するかどうか判定する判定ステップとを含むことを特徴とする。
According to this configuration, for example, when there is a situation where it is desired to avoid reaching the second point, execution of the program can be resumed from the first point under the guarantee of not reaching the second point, Contributes to efficient debugging work.
The debugging method according to the present invention is a debugging method executed in a debugging device for debugging a program to be executed on a target device, wherein the first point indicating a position on the program, and the first point A setting step for setting a second point indicating a position on a different program, a first execution step for executing the program while writing a value in a first storage unit included in the target device, and the first When the position of the program being executed in the execution step reaches the first point, a copy step of copying the value stored in the first storage unit to the second storage unit at that time, and after copying, the first While writing a value to the second storage unit using the point as a starting position, no value is written to the first storage unit, A second execution step of executing the ram, the position of the running program in the second execution step is characterized in that it comprises a determining step whether reaches the second point.

また、本発明に係るデバッグ支援プログラムは、ターゲット装置上で実行すべき他のプログラムのデバッグ処理をデバッグ装置に実行させるデバッグ支援プログラムであって、前記デバッグ処理は、前記他のプログラム上の位置を示す第1ポイントと、前記第1ポイントとは異なる前記他のプログラム上の位置を示す第2ポイントとを設定する設定ステップと、前記他のプログラムを、前記ターゲット装置が備える第1記憶部に値の書き込みを行いながら実行する第1実行ステップと、前記第1実行ステップにおける実行中の前記他のプログラムの位置が前記第1ポイントに達すると、その時点で前記第1記憶部に記憶されている値を第2記憶部に複写する複写ステップと、複写後、前記第1ポイントを開始位置として第2記憶部に値の書き込みを行いながら、第1記憶部には値の書き込みを行わないで、前記他のプログラムを実行する第2実行ステップと、前記第2実行ステップにおける実行中のプログラムの位置が前記第2ポイントに達するかどうか判定する判定ステップとを含むことを特徴とする。   The debugging support program according to the present invention is a debugging support program for causing a debugging device to execute debugging processing of another program to be executed on a target device, and the debugging processing is performed at a position on the other program. A setting step for setting a first point to be displayed and a second point indicating a position on the other program different from the first point, and the other program to be stored in the first storage unit included in the target device When the position of the other program being executed in the first execution step reaches the first point, it is stored in the first storage unit at that time. A copying step of copying the value to the second storage unit, and after copying, writing the value to the second storage unit with the first point as the start position The second execution step for executing the other program without writing a value in the first storage unit while the position of the program being executed in the second execution step is set to the second point. And a determination step for determining whether or not it is reached.

また、本発明に係るデバッグ装置は、ターゲット装置上で実行すべきプログラムのデバッグを行うデバッグ装置であって、プログラムの実行位置を示す第1ポイントと、前記第1ポイントとは異なる実行位置を示す第2ポイントとを設定する設定手段と、前記プログラムを実行する実行手段と、前記実行手段によるプログラムの実行位置が前記第1ポイントに達した後、さらに前記第2ポイントに達すると実行を停止させ、前記第1ポイントに達した後、前記第2ポイントに達しないなら実行を停止させない実行制御手段と、を備えることを特徴とする。   The debug device according to the present invention is a debug device for debugging a program to be executed on a target device, and shows a first point indicating the execution position of the program and an execution position different from the first point. A setting means for setting a second point; an execution means for executing the program; and when the execution position of the program by the execution means reaches the first point, the execution is stopped when the second point is further reached. And an execution control means for stopping the execution if the second point is not reached after reaching the first point.

この構成によれば、例えば、プログラムが分岐を有し、分岐先の特定の経路上に第2ポイントがある場合には、第1ポイント→第2ポイントという実行経路をたどる場合にねらいを定めてプログラムを停止できる。   According to this configuration, for example, when the program has a branch and the second point is on a specific path of the branch destination, the aim is to follow the execution path from the first point to the second point. You can stop the program.

デバッグシステム1の構成を示す機能ブロック図Functional block diagram showing the configuration of the debug system 1 ソースプログラム20のソースコード21を示す図The figure which shows the source code 21 of the source program 20 デバッガ10における処理の流れを示すフローチャートA flowchart showing a flow of processing in the debugger 10 ポイント詳細設定メニューのウインドウ40を示す図The figure which shows the window 40 of a point detailed setting menu デバッガ10における仮想実行に係る処理の流れを示すフローチャートA flowchart showing a flow of processing related to virtual execution in the debugger 10 ウインドウ80を示す図The figure which shows the window 80 ソースプログラム20の実行経路や流れを示すフローチャートA flowchart showing the execution path and flow of the source program 20

(実施の形態)
本実施の形態について図面を用いて説明する。
<構成>
図1は、デバッグシステム1の構成を示す機能ブロック図である。
デバッグシステム1は、デバッガ10とデバッガ10のデバッグ対象となるターゲット装置100から構成される。
(Embodiment)
This embodiment will be described with reference to the drawings.
<Configuration>
FIG. 1 is a functional block diagram showing the configuration of the debug system 1.
The debug system 1 includes a debugger 10 and a target device 100 to be debugged by the debugger 10.

デバッガ10は、制御部12、入力受付部14、設定部16、表示制御部18、ソースプログラム20、実行部22、実行位置判定部24、状態判定部26、仮想実行部28、I/F部30、設定格納部36、記憶部38を備える。
制御部12は、例えばCPU、RAM、ROMを含んで構成されており、ROMに格納された制御プログラムに従って各ブロックを制御する。
The debugger 10 includes a control unit 12, an input receiving unit 14, a setting unit 16, a display control unit 18, a source program 20, an execution unit 22, an execution position determination unit 24, a state determination unit 26, a virtual execution unit 28, and an I / F unit. 30, a setting storage unit 36, and a storage unit 38.
The control unit 12 includes, for example, a CPU, a RAM, and a ROM, and controls each block according to a control program stored in the ROM.

入力受付部14は、キーボード14a、マウス14bを介してユーザ2から入力を受け付ける。
設定部16は、(1)開始ポイントP、(2)予測ポイントP、(3)プログラムの状態の設定を受け付けるポイント詳細設定メニュー(図4)を表示制御部18を介してディスプレイ18aに表示させる。また設定部16は、入力受付部14が受け付けた設定内容を設定格納部36に格納する。
The input receiving unit 14 receives input from the user 2 via the keyboard 14a and the mouse 14b.
The setting unit 16 displays (1) the start point P S , (2) the predicted point P P , and (3) a point detailed setting menu (FIG. 4) for accepting the setting of the program state on the display 18 a via the display control unit 18. Display. The setting unit 16 stores the setting content received by the input receiving unit 14 in the setting storage unit 36.

表示制御部18はディスプレイ18aに各種表示を行わせる。
実行部22は、ソースプログラム20を実行する。実行の際には、ターゲット装置100のメモリ104やレジスタ106に値の読み書きを行う。
仮想実行部28は、ソースプログラム20を実行する。実行部22とは異なり、実行の際には、記憶部38(記憶部38には、メモリ104およびレジスタ106の情報が実行前に予め複写される。)に値の読み書きを行う。
The display control unit 18 causes the display 18a to perform various displays.
The execution unit 22 executes the source program 20. During execution, values are read from and written to the memory 104 and the register 106 of the target device 100.
The virtual execution unit 28 executes the source program 20. Unlike the execution unit 22, values are read and written in the storage unit 38 (information in the memory 104 and the register 106 is copied to the storage unit 38 in advance before execution) during execution.

実行位置判定部24は、実行部22または仮想実行部28により実行されているプログラムの位置を示すプログラムカウンタ(PC)を監視し、プログラムカウンタが開始ポイントPまたは予測ポイントPに達したかどうかを判定する。
状態判定部26は、仮想実行部28がプログラムを実行している間、記憶部38を監視し、記憶部38の状態が設定格納部36に設定されたプログラムの状態と一致するかどうか判定する。
Executing position determination unit 24 monitors the program counter indicating the position of the program being executed by the execution unit 22 or the virtual execution unit 28 (PC), or the program counter reaches the starting point P S or prediction point P P Determine if.
The state determination unit 26 monitors the storage unit 38 while the virtual execution unit 28 executes the program, and determines whether the state of the storage unit 38 matches the state of the program set in the setting storage unit 36. .

I/F部30は、データのやりとりを行うインターフェイスであり、ターゲット装置100のI/F部108と各種データを送受する。
設定格納部36は、例えばHDD(Hard Disk Drive)から構成されており、設定内容としての(1)開始ポイントPs、(2)予測ポイントP、(3)プログラムの状態を格納する。
The I / F unit 30 is an interface for exchanging data, and exchanges various data with the I / F unit 108 of the target device 100.
The setting storage unit 36 includes, for example, an HDD (Hard Disk Drive), and stores (1) a start point Ps, (2) a predicted point P P , and (3) a program state as setting contents.

記憶部38は、例えばRAMから構成されており、ターゲット装置100のメモリ104およびレジスタ106から複写したメモリ情報(メモリ104のアドレスおよびアドレスに対応する値を含む。)、レジスタ情報を記憶する。
ターゲット装置100は、MPU(Micro Processing Unit)102、メモリ104、レジスタ106、そしてインターフェイスを担うI/F部108を備える。
The storage unit 38 includes, for example, a RAM, and stores memory information copied from the memory 104 and the register 106 of the target device 100 (including the address of the memory 104 and a value corresponding to the address) and register information.
The target device 100 includes an MPU (Micro Processing Unit) 102, a memory 104, a register 106, and an I / F unit 108 that serves as an interface.

ターゲット装置100の具体例としては、組み込みシステム(例えば、携帯電話、テレビ、デジタルテレビなど)に搭載される回路基板が挙げられる。
図2は、ソースプログラム20のソースコード21を示す図である。
このソースコード21は、C言語で記述されており、a,b,cを引数とした関数の宣言をし(101行目)、a=3ならば値aを出力する(103行目〜105行目)。
Specific examples of the target device 100 include a circuit board mounted on an embedded system (for example, a mobile phone, a television, a digital television, etc.).
FIG. 2 is a diagram showing the source code 21 of the source program 20.
This source code 21 is written in C language, declares a function with a, b, and c as arguments (line 101), and outputs a value a if a = 3 (lines 103-105). Line).

b=4ならば値bを出力し、b=4以外ならば(b≠4ならば)、値cを出力する(107行目〜112行目)。
このようにソースコード21は、プログラムの経路(処理の流れ)が分岐するif,if else文を含んでいる。
<動作>
図3は、デバッガ10における処理の流れを示すフローチャートである。
If b = 4, the value b is output. If b = 4 is not satisfied (if b ≠ 4), the value c is output (lines 107 to 112).
Thus, the source code 21 includes an if, if else statement that branches the program path (processing flow).
<Operation>
FIG. 3 is a flowchart showing the flow of processing in the debugger 10.

設定部26は表示制御部18を介してディスプレイ18aにポイント詳細設定メニューを表示させる(S11)。
そして、設定部16は、(1)開始ポイントPs、(2)予測ポイントP、(3)プログラムの状態の設定を受け付け(S12)、受け付けた内容を設定格納部36に格納する(S13)。
The setting unit 26 displays a point detail setting menu on the display 18a via the display control unit 18 (S11).
The setting unit 16 receives (1) the start point Ps, (2) the predicted point P P , (3) the setting of the program state (S12), and stores the received content in the setting storage unit 36 (S13). .

ステップS11〜S13に対応するポイント詳細設定メニューを図4に示す。
ウインドウ40は、開始ポイントPを設定するボックス50、予測ポイントPを設定するボックス60、プログラムの状態を指定するボックス70を含む。
ボックス50は、開始ポイントPを設定するためのボックスであり、イベント指定タイプのボックス52と、行指定タイプのボックス54とから構成される。
FIG. 4 shows a point detail setting menu corresponding to steps S11 to S13.
Window 40 includes box 50 to set the starting point P S, Box 60 to set the prediction point P P, the box 70 to specify the state of the program.
Box 50 is a box for setting the starting point P S, the box 52 of the event specified type, and a row type specified in box 54.

ボックス52は、イベント1からイベント8の8つのチェックボックスを有する。このチェックボックスを選択/非選択とすることにより、開始ポイントPとすべきイベントが設定可能である。なお、各イベントはソースプログラム20においてそれぞれ予め定義されたものである。
ボックス54は、テキストボックス56を含む。設定部26は、このテキストボックス56内に入力された番号を開始ポイントPの設定すべき行番号として受け付ける。図4の例では、テキストボックス56内に「101」の番号が入力されているので、設定部26は101行目を開始ポイントPの行番号として設定する。
Box 52 has eight check boxes from event 1 to event 8. By the selection / non-selection of this check box, an event should be the starting point P S can be set. Each event is previously defined in the source program 20.
Box 54 includes a text box 56. Setting unit 26 receives the row number to be set in the Numbers entered this text box 56 the starting point P S. In the example of FIG. 4, the number "101" in the text box 56 is entered, setting unit 26 sets a line number of the start point P S 101 line.

ボックス60は、予測ポイントPを設定するためのボックスであり、テキストボックス62を含む。設定部26は、このテキストボックス62内に入力された番号を予測ポイントPの行番号として設定する。図4の例では、111行目が予測ポイントPとして設定される。なお、ソースコード行を指定する代わりに、ニーモニックコード行を指定できるようにしてもよい。 Box 60 is a box for setting a prediction point P P, including a text box 62. Setting unit 26 sets the Numbers entered this text box 62 as the row number of the prediction point P P. In the example of FIG. 4, line 111 is set as the prediction point P P. Instead of designating the source code line, a mnemonic code line may be designated.

ボックス70は、チェックボックス71、状態リストのボックス72、状態の追加・変更のボックス73を備える。
チェックボックス71が選択されている間は、設定部26はボックス74、76を設定可能な状態とする。対して、非選択の間は、設定部26はボックス74、76を薄暗く表示し(dimmed)、設定不可能な状態とする。このようにプログラムの状態の指定を利用するかどうかは任意である。
The box 70 includes a check box 71, a state list box 72, and a state addition / change box 73.
While the check box 71 is selected, the setting unit 26 keeps the boxes 74 and 76 settable. On the other hand, during the non-selection, the setting unit 26 displays the boxes 74 and 76 in a dimmed state so that they cannot be set. In this way, whether or not to specify the program state is arbitrary.

状態リストのボックス72における各状態は、メモリのアドレスを示す「開始アドレス」および「終了アドレス」、値の指定を示す「データ」を含む。
ボックス73は、状態リストの追加を受け付ける追加ボタン78、変更を受け付ける変更ボタン79を含む。状態の追加の場合には、設定部26は追加ボタン78の押下を受け付けると、「開始アドレス」、「終了アドレス」、「データ」のそれぞれテキストボックス77〜79に入力された値を、新しい状態として設定格納部36に格納すると共に、ボックス72内の状態リストに追加する。
Each state in the box 72 of the state list includes “start address” and “end address” indicating memory addresses, and “data” indicating value specification.
The box 73 includes an add button 78 for accepting addition of a state list and a change button 79 for accepting a change. In the case of adding a state, when the setting unit 26 accepts pressing of the add button 78, the values input in the text boxes 77 to 79 of “start address”, “end address”, and “data” are changed to the new state. Are stored in the setting storage unit 36 and added to the state list in the box 72.

状態の変更の場合には、設定部26は、ボックス72内の状態リストのひとつが選択状態となると、ボックス73内のテキストボックス77〜79に選択状態である状態の各値を設定格納部26から読み出して表示し、値の変更後、変更ボタン76の押下により変更を受け付ける。
図3に戻って、入力内容の設定を終えた後に、実行部22がソースプログラム20を実行を開始する(S14)。開始のトリガは例えばユーザ2の指示に基づく。
When the state is changed, the setting unit 26 sets each value of the selected state in the text boxes 77 to 79 in the box 73 when one of the state lists in the box 72 is selected. Are read and displayed, and after the value is changed, the change is accepted by pressing the change button 76.
Returning to FIG. 3, after the setting of the input content is completed, the execution unit 22 starts executing the source program 20 (S14). The start trigger is based on an instruction from the user 2, for example.

そして、開始後、実行位置判定部24によりプログラムカウンタ(PC)が開始ポイントPSに到達したと判定されると(S15:Yes)、制御部12は、実行部22によるソースプログラム20の実行を一旦停止させる(S16)。そして、仮想実行部28による仮想実行に移行させる(S17)。
図5に示すように、仮想実行においては、仮想実行部28は、設定格納部36から(1)開始ポイントPs、(2)予測ポイントP、(3)プログラムの状態を複写して準備する(S31)。
Then, after the start, when the execution position determination unit 24 determines that the program counter (PC) has reached the start point PS (S15: Yes), the control unit 12 once executes the source program 20 by the execution unit 22. Stop (S16). Then, the virtual execution unit 28 shifts to virtual execution (S17).
As shown in FIG. 5, in the virtual execution, the virtual execution unit 28 prepares by copying (1) the start point Ps, (2) the predicted point P P , and (3) the program state from the setting storage unit 36. (S31).

そして、制御部12は、ターゲット装置100のメモリ104およびレジスタ108からそれぞれメモリ情報、レジスタ情報を複写して(取得して)記憶部38に記憶させる(S32)。
続いて、制御部12は、仮想実行部28に、開始ポイントPからプログラム18の仮想実行を開始させる(S33)。
Then, the control unit 12 copies (acquires) the memory information and the register information from the memory 104 and the register 108 of the target device 100 and stores them in the storage unit 38 (S32).
Subsequently, the control unit 12, the virtual execution unit 28, to start the virtual execution program 18 from the starting point P S (S33).

仮想実行の開始後、実行位置判定部24によりプログラムカウンタ(PC)が予測ポイントPに到達したと判定されると(S34:Yes)、プログラム状態の設定の有無を判定する(S37)。
設定が無ければ(S37:No)、状態判定部26は、条件成立フラグを立てる(S39)。
After starting the virtual execution, the program counter (PC) it is determined to have reached the predicted point P P by executing the position determining unit 24 (S34: Yes), determines the presence or absence of setting of the programmed state (S37).
If there is no setting (S37: No), the state determination unit 26 sets a condition satisfaction flag (S39).

設定が有れば(S37:Yes)、状態判定部26は、設定されたプログラムの状態を満足するかどうか判定する(S38)。この判定は、記憶部38内のメモリ情報またはレジスタ情報が設定格納部36に格納されたプログラムの状態と一致するかどうかに基づいて行われる。具体的には、例えば図4のNo.1の状態が設定されているならば、記憶部38内のメモリ情報において、開始アドレス「0x000000」から終了アドレス「0x000FFF」までのアドレスが付された値をサーチし、a=1を満たす値があれば設定されたプログラムの状態を満足したと判定する。   If there is a setting (S37: Yes), the state determination unit 26 determines whether the state of the set program is satisfied (S38). This determination is made based on whether the memory information or register information in the storage unit 38 matches the state of the program stored in the setting storage unit 36. Specifically, for example, if the state of No. 1 in FIG. 4 is set, a value in which the addresses from the start address “0x000000” to the end address “0x000FFF” are added in the memory information in the storage unit 38. If there is a value satisfying a = 1, it is determined that the set program state is satisfied.

状態判定部28により設定された状態を満足したと判定すると(S38:Yes)、条件成立フラグを立てる(S39)。
仮想実行の開始(S33)の後、PCが予測ポイントPに到達したと判定されない場合(S34:No)には、終了要件を満足するまで仮想実行は継続される(S35)。
終了要件としては、例えば、予測ポイントPが指定されている関数から抜け出した(関数の終端に達した)ことを要件とする。
If it is determined that the state set by the state determination unit 28 is satisfied (S38: Yes), a condition satisfaction flag is set (S39).
After the start of virtual execution (S33), if the PC is not determined to have reached the predicted point P P (S34: No), the continues virtual run to satisfy the end requirements (S35).
As the termination requirement, for example, it is a requirement that the prediction point P P escapes from the specified function (has reached the end of the function).

条件成立フラグの処理(S36,S39)を終えると、制御部12は、仮想実行部28による仮想実行を終了させる。
そして、条件成立フラグが1であれば(S18:1)、制御部12は、プログラムの実行を中断(ブレーク)させ、実行部22によるソースプログラム20の実行を停止させる(S20)。同時に、制御部12は表示制御部18に、結果表示を示すウインドウを表示させる(S21)。
When the processing of the condition satisfaction flag (S36, S39) is completed, the control unit 12 ends the virtual execution by the virtual execution unit 28.
If the condition satisfaction flag is 1 (S18: 1), the control unit 12 interrupts (breaks) the execution of the program and stops the execution of the source program 20 by the execution unit 22 (S20). At the same time, the control unit 12 causes the display control unit 18 to display a window indicating the result display (S21).

図6は、ステップS21に対応する結果表示のウインドウの例を示す図である。
図6の(a)と(b)は、結果表示の前と後のウインドウ80を示す。
ウインドウ内には、100行目から112行目までのソースコードが表示されている。開始ポイントPである101行目、予測ポイントPの111行目は背景色が他と異なる色となっており、一目で両ポイントがわかるようになっている。
FIG. 6 is a diagram showing an example of a result display window corresponding to step S21.
6A and 6B show the window 80 before and after the result display.
The source code from the 100th line to the 112th line is displayed in the window. Line 101 is the starting point P S, 111 line of the prediction point P P is a color different background color to another, so that it is clear both points at a glance.

ダイアログ90内には、「予測ポイントPに達したため、実行を中断しました。値:a=1,b=2」というメッセージが表示されている。このメッセージを見たユーザ2は、予測ポイントPに達したことがわかる。また、表示された値a=1,b=2を参考に、プログラムのソースコードの修正を行うことができる。
なお、両ポイントP,Pに対応する101行目,111行目の左型には、それぞれPマーク81,Pマーク82が付されており、マウスカーソル88をマーク81(またはマーク82)に重ねて行方向にドラッグさせることで、開始ポイントP(または予測ポイントP)とすべき行番号の設定を変更することができる。
The dialog 90, "because it reached a prediction point P P, it suspends execution value:. A = 1, b = 2 " message is displayed. The user 2 who sees this message knows that the prediction point PP has been reached. Further, the source code of the program can be corrected with reference to the displayed values a = 1 and b = 2.
Incidentally, both points P S, 101 row corresponding to P P, the left type 111 line, are denoted by P S mark 81, P P mark 82 respectively, mark the mouse cursor 88 81 (or mark 82), the setting of the row number to be the start point P S (or the prediction point P P ) can be changed by dragging in the row direction.

ステップS18において、条件成立フラグが0であれば(S18:0)、制御部12は、ステップS16で開始ポイントPで停止させていた実行部22による実行を、同じ開始ポイントPから再開させる(S19)。
本実施の形態の効果を図7を参照しながら説明する。図7は、ソースプログラム20の実行経路や流れを示すフローチャートである。
In step S18, if the condition flag is 0 (S18: 0), the control unit 12, the execution by the execution unit 22 which has stopped at the starting point P S in the step S16, and resumes from the same starting point P S (S19).
The effect of this embodiment will be described with reference to FIG. FIG. 7 is a flowchart showing the execution path and flow of the source program 20.

ステップS101〜S106は、ソースコード21(図2参照)の101行目から113行目までに対応している。
上述のように、本実施の形態によれば、開始ポイントPを101行目(S101)に設定し、予測ポイントPを111行目(S106)に設定した上で、ステップS104がfalseで予測ポイントPに達するときにだけプログラムの実行を停止させることができる。
Steps S101 to S106 correspond to the 101st to 113th lines of the source code 21 (see FIG. 2).
As described above, according to this embodiment, the starting point P S is set to 101 line (S101), after having set the prediction point P P 111 line (S106), step S104 is false the execution of programmed only when it reaches the predicted point P P can be stopped.

まず、開始ポイントPに至るまでの実行は、実行部22によりターゲット装置100のメモリ104やレジスタ106に値を書き込みながらの実行であるので、実際の環境下での実行結果を得ることができる。
そして、開始ポイントPから予測ポイントPに至るまでの実行は、仮想実行部28による仮想実行であり、値を書き込む対象は、ターゲット装置100のメモリ104・レジスタ106ではなく、デバッガ10内部の記憶部38であるので、予測ポイントPに達した場合に起因するターゲット装置104やこのターゲット装置104の周辺機器への悪影響を抑えることができる。
First, the execution up to the starting point P S, since it is performed while writing a value to the memory 104 and register 106 of the target device 100 by the execution unit 22, it is possible to obtain the execution result under real environment .
Then, the execution of the starting point P S up to the prediction point P P, a virtual execution by the virtual execution unit 28, the target to write the value in the memory 104, register 106 of the target device 100 without the debugger 10 internal since a storage unit 38, it is possible to suppress the adverse effect on the peripheral devices of the target device 104 and the target device 104 caused when it reaches the predicted point P P.

また、"a==1"(図4)などのプログラムの状態を条件として指定することで、予測ポイントPに達し、かつ予測ポイントPでのプログラムの状態が指定したものと一致した場合にのみプログラムを停止することができる。これにより、プログラムの実行を何度も繰り返して、デバッグしたい特定のプログラムの状態を構築するという操作の手間を削減できる。 Further, "a == 1" (FIG. 4) that specifies the state of the program, such as a condition reached prediction point P P, and if the state of the program in predicting the point P P were consistent with those specified Only the program can be stopped. As a result, it is possible to reduce the time and effort required to construct a state of a specific program to be debugged by repeatedly executing the program.

さらに、ステップS104がtrueで予測ポイントPに達しないときには(ポイントPを通るときには)、仮想実行部28による仮想実行を終了させ、実行部22により開始ポイントPからの実行を再開する。上記仮想実行部28による仮想実行の間は、ターゲット装置のメモリ104およびレジスタ106に値が書き込まれておらず開始ポイントPの時点の値が確保されているので、円滑に実行部22による実行の再開が可能となり、むやみにプログラムを停止させてデバッグ作業を停滞させるようなこともない。
<補足>
以上、本発明の実施形態について説明したが、本発明は上記の内容に限定されず、本発明の目的とそれに関連または付随する目的を達成するための各種形態においても実施可能であり、例えば、以下であってもよい。
Furthermore, when step S104 is true and the predicted point P P is not reached (when passing through the point P X ), the virtual execution by the virtual execution unit 28 is terminated, and the execution unit 22 resumes execution from the start point P S. Above between the virtual execution by the virtual execution unit 28, the value of the time of the starting point P S not the value in the memory 104 and the register 106 of the target device is written is secured, smoothly executed by the execution unit 22 Can be resumed, and there is no need to stop the program and stop the debugging work.
<Supplement>
As mentioned above, although embodiment of this invention was described, this invention is not limited to said content, It can implement also in the various forms for achieving the objective of this invention, the objective related to it, or an incidental, for example, It may be the following.

1.終了要件
実施の形態では、終了要件として、予測ポイントPが指定されている関数から抜け出したことを例に挙げたが、例えば、(1)予測ポイントが存在するモジュールから抜け出したこと、(2)指定したソースの行番号に達したこと、を条件としても構わない。さらには、(3)終了要件を指定しない、つまり、予測ポイントPを通過しない場合でも停止しないとしてもよい。
1. In the end requirements embodiment, as the end requirements, but an example that the exit from a function prediction point P P is specified, for example, it is slipped out from the module to the presence of (1) the prediction point, (2 ) It may be a condition that the line number of the specified source has been reached. Further, (3) the termination requirement is not specified, that is, it may not be stopped even when the predicted point PP is not passed.

これらの終了要件の指定ができるように、図4のポイント詳細設定メニュー内のようなメニューを表示してユーザから受け付けるようにしてもよい。
2.開始ポイントP
実施の形態では、図4のように、開始ポイントPの指定と材料として、イベント指定と行番号指定を例に挙げたが、これらに限らず、(1)関数名で指定したり、(2)アドレス(シンボルのアドレス)で指定できるようにポイント詳細設定メニューに項目を関連付けてもよい。
In order to be able to specify these end requirements, a menu such as the point detailed setting menu in FIG. 4 may be displayed and accepted from the user.
2. Starting point P S
In the embodiment, as shown in FIG. 4, as specified with the material of the starting point P S, it is taken as an example event specified and line number specified is not limited to, or specified by (1) a function name, ( 2) An item may be associated with the point detailed setting menu so that it can be designated by an address (symbol address).

3.プログラムの状態
実施の形態では、プログラムの状態を示す状態リストは、「開始アドレス」、「終了アドレス」、「データ」の構造(図4)であったが、さらに、この「データ」のサイズの指定の項目(1バイト、2バイト、4バイト、Don't Care)を指定できるようにしたり、この「データ」を条件式(例えば、(d<=4)||(e>=5)などとC言語風にする。)で指定できるようにしてもよい。
3. Program Status In the embodiment, the status list indicating the program status has the structure of “start address”, “end address”, and “data” (FIG. 4). The specified item (1 byte, 2 bytes, 4 bytes, Don't Care) can be specified, or this "data" can be specified as a conditional expression (for example, (d <= 4) || (e> = 5) And C language style).

また、プログラムの状態として、メモリの値を例に挙げたが、これに限らず、(1)レジスタの値や(2)I/O(Input / Output Device)の状態をプログラムの状態として指定できるようにしてもよい。
4.プログラムの所在
実施の形態では、デバッガ10内に格納されたプログラムを実行する例について説明したが、これに限らず、例えば、ターゲット装置内に組み込まれたプログラムを走らせる形であってもよい。
In addition, the value of the memory is given as an example of the program status. However, the present invention is not limited to this, and (1) a register value or (2) an I / O (Input / Output Device) status can be designated as the program status. You may do it.
4). Location of Program In the embodiment, the example in which the program stored in the debugger 10 is executed has been described. However, the present invention is not limited to this. For example, the program incorporated in the target device may be run.

5.プログラムの言語
実施の形態では、分岐の命令の例として、if,if else文を挙げて説明したが、これに限らず例えばswitch文を用いてもよい。また、プログラムの言語はC言語に限らず各種のプログラム言語に適用することができる。
6.複写の対象
実施の形態では、複写の対象はターゲット装置100のメモリ104およびレジスタ106であったが、メモリまたはレジスタのいずれか一方から複写することもあり得る。また例えば、メモリ104において、仮想実行中のプログラムがアクセスする範囲のアドレスに限って複写の対象とし、アクセスしない範囲のアドレスは複写しないとしてもよい。
5). The language of the program In the embodiment, an example of an if, if else statement has been described as an example of a branch instruction. The language of the program is not limited to the C language, and can be applied to various program languages.
6). In the embodiment, the target of copying is the memory 104 and the register 106 of the target device 100. However, copying may be performed from either the memory or the register. Further, for example, in the memory 104, only addresses in a range that is accessed by a program being virtually executed may be copied, and addresses in a range not accessed may not be copied.

7.記録媒体、プログラム
上述の実施の形態で示した動作、処理(図3,図5)をデバッグ装置のプロセッサ、及びそのプロセッサに接続された各種回路に実行させるためのプログラムコードからなる制御プログラムを、記録媒体に記録すること、又は各種通信路を介して流通させ頒布することもできる。
7). Recording medium, program A control program comprising program code for causing the processor of the debugging device and various circuits connected to the processor to execute the operations and processes (FIGS. 3 and 5) shown in the above-described embodiment, It can be recorded on a recording medium, or distributed and distributed via various communication channels.

このような記録媒体には、ICカード、ハードディスク、光ディスク、フレキシブルディスク、ROM等がある。
流通、頒布された制御プログラムは、プロセッサに読み出され得るメモリ等に格納されることにより利用に供され、そのプロセッサがその制御プログラムを実行することにより実施の形態で示したような各種機能が実現されるようになる。
Such recording media include IC cards, hard disks, optical disks, flexible disks, ROMs, and the like.
The distributed and distributed control program is used by being stored in a memory or the like that can be read by the processor, and the processor executes the control program to perform various functions as shown in the embodiment. It will be realized.

本発明に係るデバッグ装置は、効率的なデバッグ作業の支援に貢献でき有用である。   The debugging device according to the present invention is useful because it can contribute to support of efficient debugging work.

1 デバッグシステム
2 ユーザ
10 デバッガ(デバッグ装置)
12 制御部
14 入力受付部
16 設定部
18 表示制御部
18a ディスプレイ
20 プログラム
21 ソースコード
22 実行部
24 実行位置判定部
26 状態判定部
36 設定格納部
38 記憶部
40,80 ウインドウ
90 ダイアログ
100 ターゲット装置
104 メモリ
106 レジスタ
開始ポイント(予測開始ポイント)
予測ポイント
1 Debug System 2 User 10 Debugger (Debug Device)
DESCRIPTION OF SYMBOLS 12 Control part 14 Input reception part 16 Setting part 18 Display control part 18a Display 20 Program 21 Source code 22 Execution part 24 Execution position determination part 26 State determination part 36 Setting storage part 38 Storage part 40, 80 Window 90 Dialog 100 Target apparatus 104 memory 106 registers P S starting point (prediction starting point)
P P prediction point

Claims (8)

ターゲット装置上で実行すべきプログラムのデバッグを行うデバッグ装置であって、
前記プログラム上の位置を示す第1ポイントと、
前記第1ポイントとは異なるプログラム上の位置を示す第2ポイントと
を設定する設定手段と、
前記プログラムを、前記ターゲット装置が備える第1記憶部に値の書き込みを行いながら実行する実行手段と、
前記実行手段による実行中のプログラムの位置が前記第1ポイントに達すると、その時点で前記第1記憶部に記憶されている値を複写し、複写した記憶内容を第2記憶部に記憶させる複写手段と、
前記実行手段は、複写後、前記第1ポイントを開始位置として第2記憶部に値の書き込みを行いながら、第1記憶部には値の書き込みを行わないで、前記プログラムを実行し、
前記複写後に前記実行手段が実行するプログラムの位置が前記第2ポイントに達するかどうか判定する判定手段と
を備えることを特徴とするデバッグ装置。
A debugging device for debugging a program to be executed on a target device,
A first point indicating a position on the program;
Setting means for setting a second point indicating a position on the program different from the first point;
Execution means for executing the program while writing a value in a first storage unit included in the target device;
When the position of the program being executed by the execution means reaches the first point, the value stored in the first storage unit at that time is copied, and the copied storage content is stored in the second storage unit Means,
The execution means, after copying, executes the program without writing a value to the first storage unit while writing a value to the second storage unit with the first point as a start position.
A debugging device comprising: a determination unit that determines whether or not a position of a program executed by the execution unit after the copying reaches the second point.
前記実行手段は、前記判定手段により前記第2ポイントに達したと判定されると、プログラムの実行を停止する
ことを特徴とする請求項1に記載のデバッグ装置。
The debugging apparatus according to claim 1, wherein the execution unit stops execution of the program when the determination unit determines that the second point has been reached.
前記実行手段によるプログラムの実行停止に伴い、前記第2記憶部に書き込まれた値を出力する出力手段を備える
ことを特徴とする請求項2に記載のデバッグ装置。
The debugging apparatus according to claim 2, further comprising an output unit that outputs a value written in the second storage unit when the execution unit stops executing the program.
前記設定手段は、前記第2ポイントに達した時点におけるプログラムの状態を設定し、
前記判定手段は、前記第2ポイントに達した時点におけるプログラムの状態を判定し、
前記実行手段は、
前記判定手段により前記第2ポイントに達したと判定され、かつ、設定されたプログラムの状態と判定されたプログラムの状態とが一致したと判定されたときに、プログラムの実行を停止し、
前記判定手段により前記第2ポイントに達したと判定されないか、または、設定されたプログラムの状態と判定されたプログラムの状態とが一致しないと判定されたときには、プログラムの実行を停止しない
ことを特徴とする請求項2に記載のデバッグ装置。
The setting means sets the state of the program when the second point is reached,
The determination means determines the state of the program at the time when the second point is reached,
The execution means includes
When it is determined by the determination means that the second point has been reached and it is determined that the set program state matches the determined program state, the execution of the program is stopped,
The program execution is not stopped when it is determined by the determination means that the second point has not been reached, or when it is determined that the set program state and the determined program state do not match. The debugging device according to claim 2.
前記第2ポイントに達しないと判定されると、
前記実行手段は、
前記複写後の前記プログラムの実行を終了するとともに、
前記第1ポイントを開始位置として、前記第1記憶部に値の書き込みを行いながらのプログラムの実行を再開する
ことを特徴とする請求項1に記載のデバッグ装置。
If it is determined that the second point is not reached,
The execution means includes
Ending execution of the program after the copying,
The debugging apparatus according to claim 1, wherein execution of a program is resumed while writing a value to the first storage unit with the first point as a start position.
ターゲット装置上で実行すべきプログラムのデバッグを行うデバッグ装置において実行されるデバッグ方法であって、
プログラム上の位置を示す第1ポイントと、前記第1ポイントとは異なるプログラム上の位置を示す第2ポイントとを設定する設定ステップと、
前記プログラムを、前記ターゲット装置が備える第1記憶部に値の書き込みを行いながら実行する第1実行ステップと、
前記第1実行ステップにおける実行中のプログラムの位置が前記第1ポイントに達すると、その時点で前記第1記憶部に記憶されている値を第2記憶部に複写する複写ステップと、
複写後、前記第1ポイントを開始位置として第2記憶部に値の書き込みを行いながら、第1記憶部には値の書き込みを行わないで、前記プログラムを実行する第2実行ステップと、
前記第2実行ステップにおける実行中のプログラムの位置が前記第2ポイントに達するかどうか判定する判定ステップと
を含むことを特徴とするデバッグ方法。
A debugging method executed in a debugging device for debugging a program to be executed on a target device,
A setting step for setting a first point indicating a position on the program and a second point indicating a position on the program different from the first point;
A first execution step of executing the program while writing a value in a first storage unit included in the target device;
When the position of the program being executed in the first execution step reaches the first point, a copying step of copying the value stored in the first storage unit at that time to the second storage unit;
A second execution step of executing the program without copying a value to the first storage unit while writing a value to the second storage unit with the first point as a start position after copying;
And a determination step of determining whether or not the position of the program being executed in the second execution step reaches the second point.
ターゲット装置上で実行すべき他のプログラムのデバッグ処理をデバッグ装置に実行させるデバッグ支援プログラムであって、
前記デバッグ処理は、
前記他のプログラム上の位置を示す第1ポイントと、前記第1ポイントとは異なる前記他のプログラム上の位置を示す第2ポイントとを設定する設定ステップと、
前記他のプログラムを、前記ターゲット装置が備える第1記憶部に値の書き込みを行いながら実行する第1実行ステップと、
前記第1実行ステップにおける実行中の前記他のプログラムの位置が前記第1ポイントに達すると、その時点で前記第1記憶部に記憶されている値を第2記憶部に複写する複写ステップと、
複写後、前記第1ポイントを開始位置として第2記憶部に値の書き込みを行いながら、第1記憶部には値の書き込みを行わないで、前記他のプログラムを実行する第2実行ステップと、
前記第2実行ステップにおける実行中のプログラムの位置が前記第2ポイントに達するかどうか判定する判定ステップと
を含むことを特徴とするデバッグ支援プログラム。
A debugging support program for causing a debugging device to execute debugging processing of another program to be executed on a target device,
The debugging process includes
A setting step for setting a first point indicating a position on the other program and a second point indicating a position on the other program different from the first point;
A first execution step of executing the other program while writing a value in a first storage unit included in the target device;
When the position of the other program being executed in the first execution step reaches the first point, a copy step of copying the value stored in the first storage unit at that time to the second storage unit;
After copying, a second execution step of executing the other program without writing a value to the first storage unit while writing a value to the second storage unit with the first point as a start position;
And a determination step of determining whether or not the position of the program being executed in the second execution step reaches the second point.
ターゲット装置上で実行すべきプログラムのデバッグを行うデバッグ装置であって、
プログラムの実行位置を示す第1ポイントと、
前記第1ポイントとは異なる実行位置を示す第2ポイントと
を設定する設定手段と、
前記プログラムを実行する実行手段と、
前記実行手段によるプログラムの実行位置が前記第1ポイントに達した後、さらに前記第2ポイントに達すると実行を停止させ、
前記第1ポイントに達した後、前記第2ポイントに達しないなら実行を停止させない実行制御手段と、
を備えることを特徴とするデバッグ装置。
A debugging device for debugging a program to be executed on a target device,
A first point indicating the execution position of the program;
Setting means for setting a second point indicating an execution position different from the first point;
Execution means for executing the program;
After the execution position of the program by the execution means reaches the first point, the execution stops when the second point is further reached,
Execution control means for not stopping execution if the second point is not reached after reaching the first point;
A debugging device comprising:
JP2009141489A 2009-06-12 2009-06-12 Debugging device, debugging method, and debugging support program Withdrawn JP2010287120A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009141489A JP2010287120A (en) 2009-06-12 2009-06-12 Debugging device, debugging method, and debugging support program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009141489A JP2010287120A (en) 2009-06-12 2009-06-12 Debugging device, debugging method, and debugging support program

Publications (1)

Publication Number Publication Date
JP2010287120A true JP2010287120A (en) 2010-12-24

Family

ID=43542760

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009141489A Withdrawn JP2010287120A (en) 2009-06-12 2009-06-12 Debugging device, debugging method, and debugging support program

Country Status (1)

Country Link
JP (1) JP2010287120A (en)

Similar Documents

Publication Publication Date Title
EP3338179B1 (en) Graphical representation of data in a program code editor
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
US8595702B2 (en) Simultaneously displaying multiple call stacks in an interactive debugger
US8370810B2 (en) Debugging device and debugging method
US9092565B2 (en) Synchronization point visualization for modified program source code
US20130219366A1 (en) Stepping and application state viewing between points
JPH11194957A (en) Debugging support device, parallel execution information generation device, and recording medium recording program applied thereto
US9792198B2 (en) Debugger with method restart capability
US11042466B2 (en) Exception prediction before an actual exception during debugging
US20100313186A1 (en) Developer-managed debugger data records
TW201301173A (en) Terminal device and method for demonstrating software product at the same
JP2010287120A (en) Debugging device, debugging method, and debugging support program
JP5550578B2 (en) Entry rewriting device and entry rewriting program
US20100175007A1 (en) Semiconductor storage device and control method for a semiconductor storage device
JP4295912B2 (en) Debug system
JP2008158882A (en) Information processor, pop-up window display control method, program, and recording medium
Selvaraj Flutter Overview and New Features
JP2004078268A (en) Information processing apparatus, information processing method, and program
JPH05250221A (en) Simulator execution system
US20070265821A1 (en) Simulation apparatus, simulation method, and computer-readable recording medium storing simulation program
CN112307380A (en) Content display control method and device
JP2003263340A (en) Debug device
CN120804202A (en) Method, apparatus, device, medium, and article for data presentation
JP2009070270A (en) Debugging apparatus and debugging method
JP2012088798A (en) Debugging device, debugging method, and program for debugging

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20120904