JP4909877B2 - Debugging apparatus and debugging method - Google Patents

Debugging apparatus and debugging method Download PDF

Info

Publication number
JP4909877B2
JP4909877B2 JP2007309260A JP2007309260A JP4909877B2 JP 4909877 B2 JP4909877 B2 JP 4909877B2 JP 2007309260 A JP2007309260 A JP 2007309260A JP 2007309260 A JP2007309260 A JP 2007309260A JP 4909877 B2 JP4909877 B2 JP 4909877B2
Authority
JP
Japan
Prior art keywords
code
debugging
display
internally generated
generated code
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.)
Expired - Fee Related
Application number
JP2007309260A
Other languages
Japanese (ja)
Other versions
JP2009134462A (en
Inventor
雄一 小田
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007309260A priority Critical patent/JP4909877B2/en
Priority to US12/273,934 priority patent/US8370810B2/en
Publication of JP2009134462A publication Critical patent/JP2009134462A/en
Application granted granted Critical
Publication of JP4909877B2 publication Critical patent/JP4909877B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3628Software debugging of optimised code

Description

本発明は、デバッグ装置及びデバッグ方法に関し、特に、プログラムのデバッグを行うデバッグ装置及びデバッグ方法に関する。   The present invention relates to a debugging device and a debugging method, and more particularly to a debugging device and a debugging method for debugging a program.

従来、プログラムの作成にあたって、そのプログラムが正常に動作するかを確認するためデバッグ装置を用いてデバッグが行われる。デバッグ装置は、コンパイル装置により生成されたオブジェクトプログラムを入力とし、対応するソースコード又はアセンブリコードをグラフィカルユーザインターフェース(以下、GUIという)に表示する。   Conventionally, in creating a program, debugging is performed using a debugging device to confirm whether the program operates normally. The debugging device receives the object program generated by the compiling device as input, and displays the corresponding source code or assembly code on a graphical user interface (hereinafter referred to as GUI).

また、デバッグ装置には、ブレークポイントの設定及びステップ実行等を行う機能がある。例えば、デバッグ実行者が、GUIを利用しステップ実行を行うと、デバッグ装置は、ソースコードの1行又はアセンブリコードの1命令を実行する。更に、デバッグ装置は、ソースコード又はアセンブリコードの1命令を実行した結果、エラーの発生につながるような問題となるコードが存在すると、問題となる箇所を強調表示したり、そのエラー内容を示す補助的なコード又はメッセージ等の表示を行う。この結果、デバッグ実行者は、問題となるコードの発見が容易となっていた。   The debug device also has functions for setting breakpoints and executing steps. For example, when a debug executor performs step execution using a GUI, the debug device executes one line of source code or one instruction of assembly code. Furthermore, if there is a problem code that may cause an error as a result of executing one instruction of the source code or assembly code, the debug device highlights the problem part or displays the error content. Display a typical code or message. As a result, the debug executor can easily find the problematic code.

このようなデバッグ装置は、数多く提案されており、例えば、デバッグ実行者がデバッグを行う際に、ソースコード又はアセンブリコード中に補助的なコード又はメッセージ等の表示を行うデバッグ装置が提案されている(例えば、特許文献1参照)。   Many such debugging apparatuses have been proposed. For example, a debugging apparatus that displays auxiliary code or messages in source code or assembly code when a debug executor performs debugging is proposed. (For example, refer to Patent Document 1).

この提案によると、デバッグ実行者がソースレベルのステップ実行を行う場合、コンパイラの最適化によりソースコードの実行順序に変更があると、デバッグ実行者に注意を促すためのメッセージの表示を行う。   According to this proposal, when the debug executor performs source level step execution, if the execution order of the source code is changed due to optimization of the compiler, a message is displayed to alert the debug executor.

しかしながら、従来のデバッグ装置は、上述したような問題となるコードに補助的なメッセージを表示することはできるが、デバッグ中にコンパイラの最適化に伴い生成された、デバッグの不要なコードの情報と、デバッグの必要なコードの情報とを区別することができなかった。   However, the conventional debugging device can display ancillary messages on the problematic code as described above, but information on the code that is not required to be debugged and is generated along with optimization of the compiler during debugging. I couldn't distinguish it from the code information that needed debugging.

また、従来のデバッグ装置は、このように区別されたデバッグ不要なコードの開始位置及び終了位置にメッセージを付加する、あるいは、デバッグ不要なコード自体を隠蔽することができなかった。
特許第3107151号公報
Further, the conventional debugging apparatus cannot add a message to the start position and end position of the code that does not require debugging as described above or hide the code that does not require debugging.
Japanese Patent No. 3107151

そこで、本発明は、デバッグの不要なコードの情報をデバッグの必要なコードの情報と区別することができるデバッグ装置及びデバッグ方法を提供することを目的とする。   Therefore, an object of the present invention is to provide a debugging apparatus and a debugging method that can distinguish information on code that does not require debugging from information on code that requires debugging.

また、本発明は、デバッグ不要なコードの開始位置及び終了位置にメッセージを付加する、あるいは、デバッグ不要なコード自体を隠蔽することによりデバッグの効率を向上させることができるデバッグ装置及びデバッグ方法を提供することを目的とする。   In addition, the present invention provides a debugging apparatus and a debugging method that can improve the efficiency of debugging by adding messages to the start position and end position of code that does not require debugging, or by hiding the code that does not require debugging. The purpose is to do.

本発明の一態様によれば、プログラムのデバッグを行うデバッグ装置であって、前記プログラムのソースコードに対して、コンパイラの最適化に伴い生成された、所定の処理命令が記述されているデバッグ不要なコードの情報を解析する解析部と、解析して得られた前記デバッグ不要なコードの、処理内容の情報、開始アドレス、終了アドレスを出力する出力部と、を有するデバッグ装置を提供することができる。   According to one aspect of the present invention, there is provided a debugging apparatus for debugging a program, in which a predetermined processing instruction generated by optimization of a compiler is described with respect to the source code of the program. Providing a debugging device comprising: an analysis unit for analyzing information on a correct code; and an output unit for outputting processing content information, a start address, and an end address of the code that is not required to be debugged obtained by analysis it can.

本発明の一態様によれば、プログラムのデバッグを行うデバッグ装置であって、前記プログラムのソースコードに対して、コンパイラの最適化に伴い生成された、所定の処理命令が記述されているデバッグ不要なコードの表示又は非表示を選択する表示選択部と、前記デバッグ不要なコードの表示が選択された場合、前記デバッグ不要なコードの直前及び直後に前記デバッグ不要なコードの開始及び終了を示す第1の所定のメッセージを表示し、前記デバッグ不要なコードの非表示が選択された場合、前記デバッグ不要なコードを隠蔽し、前記デバッグ不要なコードが隠蔽されていることを示す第2の所定のメッセージのみを表示する表示処理部と、を有するデバッグ装置を提供することができる。   According to one aspect of the present invention, there is provided a debugging apparatus for debugging a program, in which a predetermined processing instruction generated by optimization of a compiler is described with respect to the source code of the program. A display selection section for selecting display or non-display of the correct code and a display indicating the start and end of the code not required for debugging immediately before and immediately after the code not required for debug when the display of the code not required for debug is selected. 1 is displayed, and when the non-debugging code non-display is selected, the debugging unnecessary code is concealed, and the second predetermined message indicating that the debugging unnecessary code is concealed It is possible to provide a debugging device having a display processing unit that displays only messages.

本発明のデバッグ装置によれば、デバッグの不要なコードの情報をデバッグの必要なコードの情報と区別することができる。   According to the debugging device of the present invention, it is possible to distinguish information on code that does not require debugging from information on code that requires debugging.

また、本発明のデバッグ装置によれば、デバッグ不要なコードの開始位置及び終了位置にメッセージを付加する、あるいは、デバッグ不要なコード自体を隠蔽することによりデバッグの効率を向上させることができる。   In addition, according to the debugging device of the present invention, it is possible to improve debugging efficiency by adding messages to the start position and end position of code that does not require debugging, or by concealing code that does not require debugging.

以下、図面を参照して本発明の実施の形態を詳細に説明する。
まず図1及び図2に基づき、本発明の一実施の形態に係るデバッグ装置の構成を説明する。図1は、本実施の形態に係るデバッグ装置が含まれるプログラム生成装置の構成を示す構成図である。
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
First, based on FIG.1 and FIG.2, the structure of the debugging apparatus which concerns on one embodiment of this invention is demonstrated. FIG. 1 is a configuration diagram showing a configuration of a program generation device including a debugging device according to the present embodiment.

プログラム生成装置100は、中央処理装置(CPU)、主メモリ等を搭載した本体装置101と、各種データを記憶する記憶装置102と、各種データを表示する表示装置103とを有して構成されている。   The program generation device 100 includes a main body device 101 equipped with a central processing unit (CPU), a main memory, and the like, a storage device 102 that stores various data, and a display device 103 that displays various data. Yes.

本体装置101は、パーソナルコンピュータ等のコンピュータ装置本体であり、入力装置として、キーボード104及びマウス105が接続されている。本体装置101は、これらの入力装置からの指示に基づいて、各種プログラムを実行する。   The main body device 101 is a main body of a computer device such as a personal computer, and a keyboard 104 and a mouse 105 are connected as input devices. The main device 101 executes various programs based on instructions from these input devices.

記憶装置102には、コンパイル機能のプログラムを有するコンパイラ106と、デバッグ機能のプログラムを有するデバッガ107とが記憶されている。   The storage device 102 stores a compiler 106 having a compile function program and a debugger 107 having a debug function program.

ユーザは、プログラミング言語により記述されたソースプログラムを入力とし、コンパイラ106を本体装置101上において実行することにより、オブジェクトプログラムを得ることができる。即ち、本体装置101とコンパイラ106とにより、コンパイル装置が構成されている。   A user can obtain an object program by inputting a source program described in a programming language and executing the compiler 106 on the main unit 101. That is, the main device 101 and the compiler 106 constitute a compiling device.

また、ユーザは、コンパイル装置により得られたオブジェクトプログラムを入力とし、デバッガ107を本体装置101上おいて実行することにより、後述する各デバッグを実行することができる。即ち、本体装置101とデバッガ107とにより、デバッグ装置が構成されている。   Further, the user can execute each debug described later by inputting the object program obtained by the compiling device and executing the debugger 107 on the main body device 101. That is, the main body apparatus 101 and the debugger 107 constitute a debugging apparatus.

ここで、このように構成される本実施の形態に係るデバッグ装置について説明する。図2は、本実施の形態に係るデバッグ装置の構成を説明するためのブロック図である。   Here, the debug device according to the present embodiment configured as described above will be described. FIG. 2 is a block diagram for explaining the configuration of the debugging device according to the present embodiment.

デバッグ装置1は、内部生成コード情報解析部11と、デコード部12と、コマンド実行部13と、表示処理部14とを有して構成されている。   The debugging device 1 includes an internally generated code information analysis unit 11, a decoding unit 12, a command execution unit 13, and a display processing unit 14.

上述したコンパイル装置2は、後述する内部生成コード情報を内部生成コード情報解析部11に出力すると共に、ビットマップの命令列、即ち、オブジェクトコードをデコード部12に出力する。なお、説明を簡単にするために図2では、内部生成コード情報とオブジェクトコードとを別々に出力するように示しているが、内部生成コード情報は、オブジェクトコードを含むオブジェクトファイルの所定の領域オブジェクトに格納されている。   The compiling device 2 described above outputs internally generated code information, which will be described later, to the internally generated code information analysis unit 11, and outputs a bit string instruction sequence, that is, an object code, to the decoding unit 12. In order to simplify the explanation, FIG. 2 shows that the internally generated code information and the object code are output separately, but the internally generated code information is a predetermined area object of the object file including the object code. Stored in

内部生成コード情報解析部11は、入力された内部生成コード情報を解析し、解析した内部生成コード情報解析結果をコマンド実行部13及び表示処理部14に出力する。   The internal generation code information analysis unit 11 analyzes the input internal generation code information and outputs the analyzed internal generation code information analysis result to the command execution unit 13 and the display processing unit 14.

デコード部12は、入力されたオブジェクトコードをデコード処理し、機械命令の命令列、即ち、アセンブリコードに変換し、表示処理部14に出力する。   The decoding unit 12 decodes the input object code, converts it into a machine instruction sequence, that is, an assembly code, and outputs it to the display processing unit 14.

コマンド実行部13には、ユーザからのデバッグ用のコマンドが入力される。ユーザが、表示装置103上に表示されるGUIを操作することにより、対応するデバッグ用のコマンドがコマンド実行部13に入力される。コマンド実行部13は、入力されたデバッグ用のコマンドを解析し、コマンド実行結果を表示処理部14に出力する。また、コマンド実行部13は、入力された内部生成コード情報解析結果を解析し、後述する内部生成コードの表示又は非表示に応じて、ブレークポイントの設定の処理を行う。   A command for debugging is input from the user to the command execution unit 13. When the user operates the GUI displayed on the display device 103, a corresponding debugging command is input to the command execution unit 13. The command execution unit 13 analyzes the input debug command and outputs the command execution result to the display processing unit 14. Further, the command execution unit 13 analyzes the input internal generation code information analysis result, and performs a breakpoint setting process according to the display or non-display of the internal generation code described later.

表示処理部14は、入力されたアセンブリコード、内部生成コード解析結果及びコマンド実行結果に基づいて、表示処理を実行し、処理結果を表示装置103に出力する。表示処理部14は、内部生成コードの表示又は非表示の処理を実行する。表示処理部14は、内部生成コードの表示又は非表示を選択する表示選択部を構成する。内部生成コードの表示が選択された場合、内部生成コードの開始行の直前に内部生成コードの処理内容と開始位置であることを示すメッセージを表示し、内部生成コードの終了行の直後に内部生成コードの処理内容と終了位置であることを示すメッセージを表示する。内部生成コードの非表示が選択された場合、内部生成コードの処理内容と内部生成コード自体は隠蔽されていることを示すメッセージを表示し、内部生成コード自体は隠蔽される。   The display processing unit 14 executes display processing based on the input assembly code, internally generated code analysis result, and command execution result, and outputs the processing result to the display device 103. The display processing unit 14 executes processing for displaying or not displaying the internally generated code. The display processing unit 14 constitutes a display selection unit that selects display or non-display of the internally generated code. When the display of the internally generated code is selected, a message indicating the processing content and start position of the internally generated code is displayed immediately before the start line of the internally generated code, and the internally generated code is immediately after the end line of the internally generated code. Displays a message indicating the processing contents of the code and the end position. When non-display of the internally generated code is selected, a message indicating that the processing content of the internally generated code and the internally generated code itself are hidden is displayed, and the internally generated code itself is hidden.

また、表示処理部14は、内部生成コードの表示又は非表示に依存して、ステップ系コマンドの処理を切り換えることができる。ステップ系コマンドが実行されると、内部生成コードの表示が選択されている場合、内部生成コードにおいてもプログラムは1ステップずつ進む。ステップ系コマンドが実行されると、内部生成コードの非表示が選択されている場合、プログラムは内部生成コードの最後まで進む。このステップ系コマンドには、stepコマンド及びstepiコマンドが存在する。以下、stepコマンドは、ソースコードの1行を実行し、stepiコマンドは、アセンブリコードの1命令を実行するものとする。   Further, the display processing unit 14 can switch the processing of the step command depending on whether or not the internally generated code is displayed. When the step-type command is executed, if the display of the internally generated code is selected, the program advances one step at a time in the internally generated code. When the step-related command is executed, if non-display of the internally generated code is selected, the program proceeds to the end of the internally generated code. The step commands include a step command and a stepi command. Hereinafter, it is assumed that the step command executes one line of source code, and the stepi command executes one instruction of assembly code.

ここで、コンパイル装置2の処理について説明する。図3は、コンパイル装置の処理の流れの例を示すフローチャートである。   Here, the processing of the compiling device 2 will be described. FIG. 3 is a flowchart illustrating an example of a processing flow of the compiling device.

まず、コンパイル装置2は、ソースプログラムを読み込み(ステップS1)、コンパイルを実行する(ステップS2)。ステップS2におけるコンパイルの実行は、最適化、デバッグ情報の付加及び後述する内部生成コード情報の付加等である。次に、コンパイル装置2は、アセンブリコードを生成し(ステップS3)、オブジェクトプログラムを出力する(ステップS4)。最後に、コンパイル装置2は、上述した処理により生成された複数のオブジェクトプログラムをリンクし(ステップS5)、1つの実行可能なオブジェクトプログラム、即ち、実行モジュールを生成する。   First, the compiling device 2 reads a source program (step S1) and executes compilation (step S2). The execution of compilation in step S2 includes optimization, addition of debug information, and addition of internally generated code information to be described later. Next, the compiling device 2 generates assembly code (step S3) and outputs an object program (step S4). Finally, the compiling device 2 links a plurality of object programs generated by the above-described processing (step S5), and generates one executable object program, that is, an execution module.

コンパイラの最適化の機能を適用すると、ユーザにとってデバッグしにくい又はデバッグ不要なアセンブリコードが生成されることがある。例えば、コンパイラが並列化技術の1つである自動SIMD(Single Instruction Multiple Data)最適化を行う場合、以下の3つのアセンブリコードが生成されることがある。1つ目は、SIMD化可能か否かを動的に判定するコードである。2つ目は、SIMD化コードであり、3つ目は、非SIMD化コードである。   When the optimization function of the compiler is applied, assembly code that is difficult or unnecessary to debug for the user may be generated. For example, when the compiler performs automatic single instruction multiple data (SIMD) optimization, which is one of parallelization techniques, the following three assembly codes may be generated. The first is a code that dynamically determines whether SIMD is possible. The second is a SIMD code, and the third is a non-SIMD code.

自動SIMD最適化が実行され、上述した3つのコードが生成された場合、まずSIMD化可能か否かを動的に判定するコードが実行される。このSIMD化可能か否かを動的に判定するコードによりSIMD化可能と判定されるとSIMD化コードが実行され、SIMD化不可能と判定されると非SIMD化コードが実行される。   When automatic SIMD optimization is executed and the above three codes are generated, first, code for dynamically determining whether or not SIMD conversion is possible is executed. The SIMD code is executed when it is determined that the SIMD can be converted by the code for dynamically determining whether or not SIMD can be performed, and the non-SIMD code is executed when it is determined that the SIMD cannot be converted.

ここで、ユーザが注目するポイントは、SIMD化可能か否かを動的に判定するコードではなく、判定の結果どちらのコード、即ち、SIMD化コード又は非SIMD化コードが実行されるかである。つまり、デバッグ対象コードは、SIMD化コード又は非SIMD化コードになり、SIMD化可能か否かを動的に判定するコードは、デバッグ不要なコードになる。このコンパイラの最適化に伴い生成されるデバッグ不要なコードを内部生成コードと定義する。   Here, the point to which the user pays attention is not the code that dynamically determines whether or not SIMD conversion is possible, but which code, that is, the SIMD conversion code or the non-SIMD conversion code is executed as a result of the determination . That is, the code to be debugged is a SIMD code or a non-SIMD code, and the code that dynamically determines whether or not SIMD is possible is a code that does not require debugging. Code that does not require debugging, generated along with the optimization of the compiler, is defined as internally generated code.

例えば、デバッグ不要なコードの1つの例として、SIMD化可能か否かを動的に判定するコードをあげているが、このコードはプログラムを正常に実行するために、コンパイル装置が暗黙的に生成するコードである。そのため、このコードに不具合が混入した場合は、コンパイル装置自体の不具合の可能性が高いと考えられる。即ち、プログラマは、このコードをケアする必要が低いと推測される。   For example, one example of code that does not require debugging is code that dynamically determines whether or not SIMD is possible, but this code is implicitly generated by the compiling device to execute the program normally. It is a code to do. Therefore, if a defect is mixed in this code, it is considered that there is a high possibility that the compiling device itself is defective. That is, it is assumed that the programmer is less likely to care for this code.

ただし、注意すべき点は、全てコンパイル装置の不具合であると決め付けられる訳ではなく、プログラマが記述したソースコードとコンパイル装置との相互作用により、上記の暗黙的に生成されたコードに不具合が混入する可能性もある。そのため、デバッグ不要なコードも表示できるようになっている。   However, the points to be noted are not all problems with the compiling device, and the above-mentioned implicitly generated code has a problem due to the interaction between the source code written by the programmer and the compiling device. There is a possibility of mixing. Therefore, it is possible to display code that does not require debugging.

自動SIMD最適化の例では、SIMD化可能か否かを動的に判定するコードが内部生成コードに相当する。この内部生成コードは、入力データ等に基づいて、SIMDの処理を実行するか、非SIMDの処理を実行するかを判定するためのプログラムである。言い換えると、内部生成コードは、コンパイラがソースコードに対して複数の実行命令群を生成する場合に、コンパイラの内部において生成されるコードである。   In the example of automatic SIMD optimization, the code that dynamically determines whether SIMD is possible corresponds to the internally generated code. This internally generated code is a program for determining whether to perform SIMD processing or non-SIMD processing based on input data or the like. In other words, the internally generated code is code generated inside the compiler when the compiler generates a plurality of execution instruction groups for the source code.

内部生成コード情報の付加では、最適化により生成された内部生成コードから内部生成コード情報が生成され、生成された内部生成コード情報は、所定のフォーマットにより暗号化されオブジェクトプログラム内の所定の領域に付加される。   In addition to the internally generated code information, internally generated code information is generated from the internally generated code generated by optimization, and the generated internally generated code information is encrypted in a predetermined format and stored in a predetermined area in the object program. Added.

コンパイラの最適化に伴い生成されるデバッグ対象ではない内部生成コードがGUI上に表示されると、デバッグの妨げとなり効率の悪化が予想される。   If internally generated code that is not a debug target generated along with compiler optimization is displayed on the GUI, debugging is hindered and efficiency is expected to deteriorate.

そこで、本実施の形態では、内部生成コード情報を解析し、デバッグ対象ではない内部生成コードに対して内部生成コードの処理内容等を示すメッセージを付加する、又は、内部生成コード自体をユーザから隠蔽することにより、デバッグ効率を向上させることを特徴とする。   Therefore, in this embodiment, the internally generated code information is analyzed, and a message indicating the processing content of the internally generated code is added to the internally generated code that is not the debug target, or the internally generated code itself is hidden from the user. This improves the debugging efficiency.

ここで、内部生成コード情報解析部11の処理について説明する。図4は、内部生成コード情報解析部の処理の例を説明するための説明図である。   Here, the process of the internally generated code information analysis unit 11 will be described. FIG. 4 is an explanatory diagram for explaining an example of processing of the internally generated code information analysis unit.

内部生成コード情報解析部11には、所定のフォーマットにより暗号化された内部生成コード情報が入力される。内部生成コード情報解析部11は、この内部生成コード情報を解析し、内部生成コード情報解析結果を得る。   Internally generated code information encrypted in a predetermined format is input to the internally generated code information analysis unit 11. The internally generated code information analysis unit 11 analyzes this internally generated code information and obtains an internally generated code information analysis result.

内部生成コード情報解析部11により得られる内部生成コード情報解析結果は、内部生成コードの処理内容、開始アドレス、終了アドレス及び終了後に実行されうる命令アドレスを含む。図4の例では、内部生成コード情報解析結果は、内部生成コードの処理内容は、align checkとalias checkであり、内部生成コードの開始アドレスは、0x8102b0であり、内部生成コードの終了アドレスは、0x810320であり、内部生成コードの終了後に実行されうる命令アドレスは、0x810328又は0x810386であることを示す情報である。内部生成コードの終了後に実行されうる命令アドレスとは、SIMD化コードの先頭のアドレス又は非SIMD化コードの先頭のアドレスである。コマンド実行部13は、ステップ実行時に、次に処理が行われる命令のアドレスへ、ブレークポイントの設定を行うことによって、後述するような内部生成コードの表示又は非表示に応じた処理を行う。   The internally generated code information analysis result obtained by the internally generated code information analysis unit 11 includes the processing content of the internally generated code, the start address, the end address, and the instruction address that can be executed after the end. In the example of FIG. 4, the internally generated code information analysis result shows that the processing contents of the internally generated code are align check and alias check, the start address of the internally generated code is 0x8102b0, and the end address of the internally generated code is 0x810320 is information indicating that the instruction address that can be executed after the end of the internally generated code is 0x810328 or 0x810386. The instruction address that can be executed after the end of the internally generated code is the start address of the SIMD code or the start address of the non-SIMD code. The command execution unit 13 performs a process according to display or non-display of the internally generated code as described later by setting a breakpoint at the address of the instruction to be processed next during step execution.

内部生成コード情報解析部11により解析して得られた内部生成コード情報解析結果は、コマンド実行部13及び表示処理部14に入力され、コマンド実行部13及び表示処理部14のそれぞれは、この内部生成コード情報解析結果に基づいて上述した処理を実行する。   The internally generated code information analysis result obtained by analysis by the internally generated code information analysis unit 11 is input to the command execution unit 13 and the display processing unit 14, and each of the command execution unit 13 and the display processing unit 14 The processing described above is executed based on the generated code information analysis result.

なお、内部生成コード情報解析部11は、解析した内部生成コード情報解析結果を表示装置103に表示するようにしてもよい。内部生成コード情報解析部11は、内部生成コード情報を解析して得られた内部生成コードの、処理内容の情報、開始アドレス、終了アドレスを出力する出力部を構成する。この結果、ユーザは、内部生成コードの処理内容、開始位置及び終了位置等を認識することができるため、デバッグの効率を向上することができる。   Note that the internally generated code information analysis unit 11 may display the analyzed internally generated code information analysis result on the display device 103. The internally generated code information analysis unit 11 constitutes an output unit that outputs information on the processing content, start address, and end address of the internally generated code obtained by analyzing the internally generated code information. As a result, the user can recognize the processing content of the internally generated code, the start position, the end position, and the like, so that the debugging efficiency can be improved.

図5は、内部生成コードの表示又は非表示が選択された場合の処理の流れの例を示すフローチャートである。この処理は、ユーザが表示装置103のGUIを操作し、内部生成コードを表示するか否かを選択すると開始される。   FIG. 5 is a flowchart illustrating an example of a processing flow when the display or non-display of the internally generated code is selected. This process is started when the user operates the GUI of the display device 103 and selects whether to display the internally generated code.

まず、コマンド実行部13は、入力されたコマンドの解析を行い、コマンド実行結果を表示処理部14に出力する(ステップS11)。表示処理部14は、コマンド実行結果を解析し、内部生成コードを表示するか否かを判定する(ステップS12)。内部生成コードを表示する場合、YESとなり、内部生成コードの開始直前及び終了直後に、内部生成コードの処理内容と開始位置又は終了位置とを示す所定のメッセージを表示する(ステップS13)。   First, the command execution unit 13 analyzes the input command and outputs the command execution result to the display processing unit 14 (step S11). The display processing unit 14 analyzes the command execution result and determines whether or not to display the internally generated code (step S12). When displaying the internally generated code, the answer is YES, and a predetermined message indicating the processing content of the internally generated code and the start position or end position is displayed immediately before and after the start of the internally generated code (step S13).

このステップS13における処理は、内部生成コード情報解析結果に基づいて、アセンブリコードに対し行われる。表示処理部14には、コマンド実行結果が入力されると共に、内部生成コード情報解析部11からの内部生成コード情報解析結果とデコード部12からのアセンブリコードが入力される。表示処理部14は、内部生成コード情報解析結果から上述した内部生成コードの開始アドレス及び終了アドレス等を解析し、対応するアセンブリコードのアドレスの位置に所定のメッセージを付加する。このように処理されたアセンブリコードは、表示装置103に出力され、表示装置103に表示される。   The processing in step S13 is performed on the assembly code based on the internally generated code information analysis result. A command execution result is input to the display processing unit 14, and an internal generation code information analysis result from the internal generation code information analysis unit 11 and an assembly code from the decoding unit 12 are input. The display processing unit 14 analyzes the above-described start address and end address of the internally generated code from the internally generated code information analysis result, and adds a predetermined message to the position of the corresponding assembly code address. The assembly code processed in this way is output to the display device 103 and displayed on the display device 103.

一方、内部生成コードを非表示にする場合、NOとなり、内部生成コードを隠蔽し、内部生成コードの処理内容と内部生成コードを隠蔽したことを示す所定のメッセージのみを表示する(ステップS14)。このステップS14における処理は、ステップS13と同様に、内部生成コード情報解析結果に基づいて、アセンブリコードに対し行われる。   On the other hand, when the internally generated code is not displayed, the result is NO, the internally generated code is concealed, and only the predetermined message indicating that the internally generated code processing content and the internally generated code are concealed is displayed (step S14). The processing in step S14 is performed on the assembly code based on the internally generated code information analysis result, as in step S13.

図6は、内部生成コードの表示又は非表示に基づいて、ステップ系コマンドの処理を切り換える処理の流れの例を示すフローチャートである。この処理は、ユーザが表示装置103のGUIを操作し、ステップ系コマンドであるstepiを実行すると開始される。   FIG. 6 is a flowchart showing an example of the flow of processing for switching the processing of the step command based on the display or non-display of the internally generated code. This process is started when the user operates the GUI of the display device 103 and executes stepi command, which is a step command.

まず、コマンド実行部13は、入力されたコマンドの解析を行い、コマンド実行結果を表示処理部14に出力する(ステップS21)。表示処理部14は、コマンド実行結果を解析すると共に、内部生成コードが表示されているか否かを検出する(ステップS22)。内部コードが表示されている場合、YESとなり、内部生成コードを1ステップずつ実行する(ステップS23)。内部生成コードが表示されていない場合、NOとなり、内部生成コードの最後まで実行する(ステップS24)。   First, the command execution unit 13 analyzes the input command and outputs the command execution result to the display processing unit 14 (step S21). The display processing unit 14 analyzes the command execution result and detects whether an internally generated code is displayed (step S22). If the internal code is displayed, the answer is YES, and the internally generated code is executed step by step (step S23). If the internally generated code is not displayed, NO is determined and the process is executed up to the end of the internally generated code (step S24).

図7は、図5のステップS13における、内部生成コードの表示が選択された場合の画面の表示例を示す図である。図7では、アドレス0x891a68からアドレス0x891b00の区間が内部生成コードに相当する。内部生成コードの表示が選択された場合、内部生成コードの先頭のアドレス0x891a68の直前に点線により囲まれた部分21が付加され、内部生成コードの終了のアドレス0x891b99の直後に点線により囲まれた部分22が付加される。   FIG. 7 is a diagram showing a display example of the screen when the display of the internally generated code is selected in step S13 of FIG. In FIG. 7, the section from address 0x891a68 to address 0x891b00 corresponds to the internally generated code. When display of the internally generated code is selected, a portion 21 surrounded by a dotted line is added immediately before the first address 0x891a68 of the internally generated code, and a portion surrounded by a dotted line immediately after the end address 0x891b99 of the internally generated code 22 is added.

点線により囲まれた部分21は、内部生成コードの処理内容と開始位置であることを示すサポートメッセージであり、点線により囲まれた部分22は、内部生成コードの処理内容と終了位置であることを示すサポートメッセージである。なお、プログラムカウンタ(以下、PCという)は、アドレス0x891a60に停止している。PCの停止位置は、図7において、三角印30であり、以下の説明でも同様とする。3つの三角印30が存在するのは、3つの命令を同時に実行することが可能であることを示している。   A portion 21 surrounded by a dotted line is a support message indicating the processing content and start position of the internally generated code, and a portion 22 surrounded by a dotted line indicates the processing content and end position of the internally generated code. This is a support message. Note that the program counter (hereinafter referred to as PC) stops at address 0x891a60. The stop position of the PC is a triangular mark 30 in FIG. 7, and the same applies to the following description. The presence of three triangle marks 30 indicates that three instructions can be executed simultaneously.

図8は、図5のステップS13における、内部生成コードの非表示が選択された場合の画面の表示例を示す図である。内部生成コードの非表示が選択された場合、図7の内部生成コードが隠蔽され、点線により囲まれた部分23が付加される。   FIG. 8 is a diagram illustrating a display example of a screen when the non-display of the internally generated code is selected in step S13 of FIG. When non-display of the internally generated code is selected, the internally generated code of FIG. 7 is hidden and a portion 23 surrounded by a dotted line is added.

点線により囲まれた部分23は、内部生成コードの処理内容と内部生成コード自体は隠蔽されていることを示すサポートメッセージである。なお、PCは、アドレス0x891a60に停止している。   A portion 23 surrounded by a dotted line is a support message indicating that the processing content of the internally generated code and the internally generated code itself are hidden. Note that the PC stops at address 0x891a60.

図9は、内部生成コードが表示されている状態においてstepiコマンドを実行した場合の画面の表示例を示す図である。内部生成コードが表示されている場合、即ち、図7ではPCはアドレス0x891a60に停止している。この状態において、stepiコマンドを1度実行すると、内部生成コードの直前のコードが実行された後、PCは、内部生成コードの先頭、即ち、アドレス0x891a68において停止する。その後も、stepiコマンドを実行すると、内部生成コードを1ステップずつ実行する。   FIG. 9 is a diagram illustrating a display example of the screen when the stepi command is executed in a state where the internally generated code is displayed. When the internally generated code is displayed, that is, in FIG. 7, the PC stops at the address 0x891a60. In this state, when the stepi command is executed once, after the code immediately before the internally generated code is executed, the PC stops at the head of the internally generated code, that is, at address 0x891a68. Thereafter, when the stepi command is executed, the internally generated code is executed step by step.

図10は、内部生成コードが表示されていない状態においてstepiコマンドを実行した場合の画面の表示例を示す図である。内部生成コードが表示されていない場合、即ち、図8ではPCはアドレス0x891a60に停止している。この状態において、stepiコマンドを1度実行すると、内部生成コードの直前のコードが実行された後、内部生成コードの最後まで実行する。この結果、PCは、内部生成コードの終了直後、即ち、アドレス0x891b08において停止する。このPCが内部生成コードの終了直後において停止する処理は、上述したコマンド設定部13により設定されたブレークポイントに跳ぶことにより実行される。   FIG. 10 is a diagram illustrating a display example of the screen when the stepi command is executed in a state where the internally generated code is not displayed. When the internally generated code is not displayed, that is, in FIG. 8, the PC stops at address 0x891a60. In this state, when the stepi command is executed once, the code immediately before the internally generated code is executed and then executed to the end of the internally generated code. As a result, the PC stops immediately after the end of the internally generated code, that is, at address 0x891b08. The process in which the PC stops immediately after the end of the internally generated code is executed by jumping to the break point set by the command setting unit 13 described above.

以上のように、デバッグ装置1は、オブジェクトファイルの所定の領域に格納されている内部生成コード情報を解析し、デバッグ対象ではない内部生成コードに対して、内部生成コードの処理内容と開始位置又は終了位置とを示すサポートメッセージを付加するようにした。また、デバッグ装置1は、デバッグ対象ではない内部生成コードを隠蔽し、内部生成コードの処理内容と内部生成コードを隠蔽したことを示すサポートメッセージを付加するようにした。この結果、ユーザは、デバッグ対象ではない内部生成コードの処理内容、開始位置及び終了位置を認識する、あるいは、デバッグ対象ではない内部生成コード自体を隠蔽することができる。   As described above, the debugging device 1 analyzes the internally generated code information stored in a predetermined area of the object file, and processes the internal generated code and the start position or the internal generated code that is not the debug target. Added support message indicating end position. In addition, the debugging device 1 conceals the internally generated code that is not the debug target, and adds a support message indicating that the processing content of the internally generated code and the internally generated code are concealed. As a result, the user can recognize the processing content, start position, and end position of the internally generated code that is not the debug target, or hide the internally generated code that is not the debug target.

以上から、内部生成コードを表示する場合でも、内部生成コードの開始位置と終了位置にメッセージを付加することで、ユーザは、内部生成コードを深く読み解く必要がなくなる。また、内部生成コード自体をユーザから隠蔽することで、ユーザが読むべきアセンブリコード量を減らすことができる。   From the above, even when displaying the internally generated code, by adding a message to the start position and end position of the internally generated code, the user does not need to read the internally generated code deeply. Also, by hiding the internally generated code itself from the user, the amount of assembly code that the user should read can be reduced.

よって、本実施の形態のデバッグ装置によれば、デバッグの不要なコードの情報をデバッグの必要なコードの情報と区別することができる。また、デバッグ不要なコードの開始位置及び終了位置にメッセージを付加する、あるいは、デバッグ不要なコード自体を隠蔽することによりデバッグの効率を向上させることができる。   Therefore, according to the debugging device of the present embodiment, it is possible to distinguish code information that does not require debugging from code information that requires debugging. Further, the efficiency of debugging can be improved by adding messages to the start position and end position of code that does not require debugging, or by concealing code that does not require debugging.

次に、本実施の形態の応用例について説明する。
上述した実施の形態では、自動SIMD最適化により生成される内部生成コードについて説明したが、自動SIMD最適化以外の内部生成コードについて適用してもよい。
Next, an application example of this embodiment will be described.
In the embodiment described above, the internally generated code generated by the automatic SIMD optimization has been described. However, the present invention may be applied to an internally generated code other than the automatic SIMD optimization.

図11は、ループ展開を行う場合に生成される内部生成コードを表示する画面の表示例を示す図である。図11では、アドレス0x8102a8からアドレス0x8102f0の区間が、ループ展開を行う場合に生成される内部生成コードに相当する。即ち、この内部生成コードは、ループ展開を実行できるか否かの判定するためのプログラムであり、デバッグ不要なコードである。内部生成コードの表示が選択された場合、内部生成コードの先頭のアドレス0x8102a8の直前に点線により囲まれた部分24が付加され、内部生成コードの終了のアドレス0x8102f0の直後に点線により囲まれた部分25が付加される。なお、PCは、アドレス0x8102a0に停止している。   FIG. 11 is a diagram illustrating a display example of a screen that displays an internally generated code generated when loop expansion is performed. In FIG. 11, the section from address 0x8102a8 to address 0x8102f0 corresponds to the internally generated code generated when loop expansion is performed. That is, this internally generated code is a program for determining whether or not loop expansion can be executed, and is a code that does not require debugging. When the display of the internally generated code is selected, a portion 24 surrounded by a dotted line is added immediately before the first address 0x8102a8 of the internally generated code, and a portion surrounded by a dotted line immediately after the end address 0x8102f0 of the internally generated code 25 is added. Note that the PC is stopped at the address 0x8102a0.

図12は、レジスタの退避を行う場合に生成される内部生成コードを表示する画面の表示例を示す図である。図12では、アドレス0x81016eからアドレス0x810178の区間が、レジスタの退避を行う場合にコンパイラにより生成される内部生成コードに相当し、デバッグ不要なコードの部分である。内部生成コードの表示が選択された場合、内部生成コードの先頭のアドレス0x81016eの直前に点線により囲まれた部分26が付加され、内部生成コードの終了のアドレス0x810178の直後に点線により囲まれた部分27が付加される。なお、PCは、アドレス0x81016cに停止している。   FIG. 12 is a diagram showing a display example of a screen that displays an internally generated code generated when register saving is performed. In FIG. 12, the section from address 0x81016e to address 0x810178 corresponds to the internally generated code generated by the compiler when register saving is performed, and is a part of code that does not require debugging. When display of the internally generated code is selected, a portion 26 surrounded by a dotted line is added immediately before the first address 0x81016e of the internally generated code, and a portion surrounded by a dotted line immediately after the end address 0x810178 of the internally generated code 27 is added. The PC is stopped at the address 0x81016c.

図13は、分岐テーブルの参照を行う場合に生成される内部生成コードを表示する画面の表示例を示す図である。図13では、アドレス0x81015eからアドレス0x810168の区間が、分岐テーブルの参照を行う場合にコンパイラにより生成される内部生成コードに相当し、デバッグ不要なコードの部分である。内部生成コードの表示が選択された場合、内部生成コードの先頭のアドレス0x81015eの直前に点線により囲まれた部分28が付加され、内部生成コードの終了のアドレス0x810168の直後に点線により囲まれた部分29が付加される。なお、PCは、アドレス0x81015cに停止している。   FIG. 13 is a diagram illustrating a display example of a screen that displays an internally generated code that is generated when referring to the branch table. In FIG. 13, the section from address 0x81015e to address 0x810168 corresponds to the internally generated code generated by the compiler when referring to the branch table, and is a portion of code that does not require debugging. When the display of the internally generated code is selected, a portion 28 surrounded by a dotted line is added immediately before the first address 0x81015e of the internally generated code, and a portion surrounded by a dotted line immediately after the end address 0x810168 of the internally generated code 29 is added. The PC is stopped at the address 0x81015c.

なお、応用例では、内部生成コードを表示する例について説明したが、上述した実施の形態と同様、内部生成コードを非表示にすることもできる。また、上述した実施の形態と同様、内部生成コードの表示又は非表示の状態に基づいて、ステップ系コマンドの処理を切換えることもできる。   In the application example, the example in which the internally generated code is displayed has been described. However, as in the above-described embodiment, the internally generated code can be hidden. Further, similarly to the above-described embodiment, the processing of the step command can be switched based on the display or non-display state of the internally generated code.

本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウエアやソフトウエア・ルーチンに1対1には対応しない。従って、本明細書では、実施の形態の各機能を有する仮想的回路ブロック(部)を想定して実施の形態を説明した。また、本明細書における各フローチャート中の各ステップは、その性質に反しない限り、実行順序を変更し、複数同時に実行し、あるいは実行毎に異なった順序で実行してもよい。   Each “unit” in this specification is a conceptual one corresponding to each function of the embodiment, and does not necessarily correspond to a specific hardware or software routine on a one-to-one basis. Therefore, in the present specification, the embodiment has been described assuming a virtual circuit block (unit) having each function of the embodiment. In addition, each step in each flowchart in the present specification may be executed in a different order for each execution by changing the execution order and executing a plurality of steps at the same time, as long as it does not contradict its nature.

なお、以上説明した動作を実行するプログラムは、コンピュータプログラム製品として、フレキシブルディスク、CD-ROM等の可搬媒体や、ハードディスク等の記憶装置等に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全体あるいは一部が実行される。あるいは、そのプログラムの全体あるいは一部を通信ネットワークを介して流通または提供することができる。利用者は、通信ネットワークを介してそのプログラムをダウンロードしてコンピュータにインストールしたり、あるいは記録媒体からコンピュータにインストールすることで、容易に本発明のデバッグ装置を実現することができる。   The program for performing the operations described above is recorded or stored in its entirety or in part as a computer program product on a portable medium such as a flexible disk or CD-ROM, or a storage device such as a hard disk. ing. The program is read by a computer, and all or part of the operation is executed. Alternatively, all or part of the program can be distributed or provided via a communication network. The user can easily realize the debugging device of the present invention by downloading the program via a communication network and installing the program on a computer, or installing the program from a recording medium on the computer.

本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。   The present invention is not limited to the above-described embodiments, and various changes and modifications can be made without departing from the scope of the present invention.

本実施の形態に係るデバッグ装置が含まれるプログラム生成装置の構成を示す構成図である。It is a block diagram which shows the structure of the program production | generation apparatus in which the debugging apparatus which concerns on this Embodiment is included. 本実施の形態に係るデバッグ装置の構成を説明するためのブロック図である。It is a block diagram for demonstrating the structure of the debugging apparatus which concerns on this Embodiment. コンパイル装置の処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of a process of a compilation apparatus. 内部生成コード情報解析部の処理の例を説明するための説明図である。It is explanatory drawing for demonstrating the example of a process of an internally generated code information analysis part. 内部生成コードの表示又は非表示が選択された場合の処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of a process when the display or non-display of an internally generated code is selected. 内部生成コードの表示又は非表示に基づいて、ステップ系コマンドの処理を切り換える処理の流れの例を示すフローチャートである。It is a flowchart which shows the example of the flow of a process which switches the process of a step type command based on the display or non-display of an internally generated code. 図5のステップS13における、内部生成コードの表示が選択された場合の画面の表示例を示す図である。It is a figure which shows the example of a display of a screen when the display of the internally generated code in step S13 of FIG. 5 is selected. 図5のステップS13における、内部生成コードの非表示が選択された場合の画面の表示例を示す図である。It is a figure which shows the example of a display of a screen when non-display of the internally generated code is selected in step S13 of FIG. 内部生成コードが表示されている状態においてstepiコマンドを実行した場合の画面の表示例を示す図である。It is a figure which shows the example of a display of a screen at the time of performing a stepi command in the state where the internally generated code is displayed. 内部生成コードが表示されていない状態においてstepiコマンドを実行した場合の画面の表示例を示す図である。It is a figure which shows the example of a display of a screen at the time of performing a stepi command in the state where the internally generated code is not displayed. ループ展開を行う場合に生成される内部生成コードを表示する画面の表示例を示す図である。It is a figure which shows the example of a display of the screen which displays the internally generated code produced | generated when performing a loop expansion. レジスタの退避を行う場合に生成される内部生成コードを表示する画面の表示例を示す図である。It is a figure which shows the example of a display of the screen which displays the internally generated code produced | generated when saving a register | resistor. 分岐テーブルの参照を行う場合に生成される内部生成コードを表示する画面の表示例を示す図である。It is a figure which shows the example of a display of the screen which displays the internally generated code produced | generated when referring to a branch table.

符号の説明Explanation of symbols

1 デバッグ装置、2 コンパイル装置、11 内部生成コード情報解析部、12 デコード部、13 コマンド実行部、14 表示処理部、100 プログラム生成装置、101 本体装置、102 記憶装置、103 表示装置、104 キーボード、105 マウス、106 コンパイラ、107 デバッガ DESCRIPTION OF SYMBOLS 1 Debugging apparatus, 2 Compiling apparatus, 11 Internally generated code information analysis part, 12 Decoding part, 13 Command execution part, 14 Display processing part, 100 Program generation apparatus, 101 Main body apparatus, 102 Storage apparatus, 103 Display apparatus, 104 Keyboard, 105 mouse, 106 compiler, 107 debugger

Claims (5)

プログラムのデバッグを行うデバッグ装置であって、
前記プログラムのソースコードに対して、コンパイラの最適化に伴い生成された、所定の処理命令が記述されているデバッグ不要なコードの情報を解析する解析部と、
解析して得られた前記デバッグ不要なコードの、処理内容の情報、開始アドレス、終了アドレスを出力する出力部と、
を有することを特徴とするデバッグ装置。
A debugging device for debugging a program,
An analysis unit that analyzes information of a code that does not require debugging, in which a predetermined processing instruction is generated, generated with optimization of the compiler, with respect to the source code of the program;
An output unit that outputs information of processing contents, start address, and end address of the debug-unnecessary code obtained by analysis;
A debugging device comprising:
プログラムのデバッグを行うデバッグ装置であって、
前記プログラムのソースコードに対して、コンパイラの最適化に伴い生成された、所定の処理命令が記述されているデバッグ不要なコードの表示又は非表示を選択する表示選択部と、
前記デバッグ不要なコードの表示が選択された場合、前記デバッグ不要なコードの直前及び直後に前記デバッグ不要なコードの開始及び終了を示す第1の所定のメッセージを表示し、前記デバッグ不要なコードの非表示が選択された場合、前記デバッグ不要なコードを隠蔽し、前記デバッグ不要なコードが隠蔽されていることを示す第2の所定のメッセージのみを表示する表示処理部と、
を有することを特徴とするデバッグ装置。
A debugging device for debugging a program,
A display selection unit that selects display or non-display of code that does not require debugging, in which a predetermined processing instruction is generated for the source code of the program, which is generated along with optimization of the compiler;
When display of the code not requiring debugging is selected, a first predetermined message indicating the start and end of the code not requiring debugging is displayed immediately before and immediately after the code not requiring debugging, and When non-display is selected, a display processing unit that hides the debug-unnecessary code and displays only a second predetermined message indicating that the debug-unnecessary code is hidden;
A debugging device comprising:
前記表示処理部は、ステップ実行の際に、前記デバッグ不要なコードの非表示が選択されている場合、前記デバッグ不要なコードの終了まで実行することを特徴とする請求項2に記載のデバッグ装置。   3. The debugging device according to claim 2, wherein the display processing unit executes until the end of the code that does not require debugging when the non-display of the code that does not require debugging is selected during the step execution. . プログラムのデバッグを行うデバッグ方法であって、
前記プログラムのソースコードに対して、コンパイラの最適化に伴い生成された、所定の処理命令が記述されているデバッグ不要なコードの情報を解析し、
解析して得られた前記デバッグ不要なコードの、処理内容の情報、開始アドレス、終了アドレスを出力することを特徴とするデバッグ方法。
A debugging method for debugging a program,
Analyzing the information of the code that does not need to be debugged in which the predetermined processing instruction is generated, which is generated with optimization of the compiler, with respect to the source code of the program,
A debugging method characterized by outputting processing content information, a start address, and an end address of the code that is not required to be debugged obtained by analysis.
プログラムのデバッグを行うデバッグ方法であって、
前記プログラムのソースコードに対して、コンパイラの最適化に伴い生成された、所定の処理命令が記述されているデバッグ不要なコードの表示又は非表示を選択し、
前記デバッグ不要なコードの表示が選択された場合、前記デバッグ不要なコードの直前及び直後に前記デバッグ不要なコードの開始及び終了を示す第1の所定のメッセージを表示し、前記デバッグ不要なコードの非表示が選択された場合、前記デバッグ不要なコードを隠蔽し、前記デバッグ不要なコードが隠蔽されていることを示す第2の所定のメッセージのみを表示することを特徴とするデバッグ方法。
A debugging method for debugging a program,
With respect to the source code of the program, select display or non-display of the code not required for debugging in which a predetermined processing instruction is generated generated by optimization of the compiler,
When display of the code not requiring debugging is selected, a first predetermined message indicating the start and end of the code not requiring debugging is displayed immediately before and immediately after the code not requiring debugging, and When non-display is selected, the debugging method is characterized in that the code not requiring debugging is concealed and only a second predetermined message indicating that the code not requiring debugging is concealed is displayed.
JP2007309260A 2007-11-29 2007-11-29 Debugging apparatus and debugging method Expired - Fee Related JP4909877B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007309260A JP4909877B2 (en) 2007-11-29 2007-11-29 Debugging apparatus and debugging method
US12/273,934 US8370810B2 (en) 2007-11-29 2008-11-19 Debugging device and debugging method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007309260A JP4909877B2 (en) 2007-11-29 2007-11-29 Debugging apparatus and debugging method

Publications (2)

Publication Number Publication Date
JP2009134462A JP2009134462A (en) 2009-06-18
JP4909877B2 true JP4909877B2 (en) 2012-04-04

Family

ID=40677089

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007309260A Expired - Fee Related JP4909877B2 (en) 2007-11-29 2007-11-29 Debugging apparatus and debugging method

Country Status (2)

Country Link
US (1) US8370810B2 (en)
JP (1) JP4909877B2 (en)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5303531B2 (en) * 2010-09-28 2013-10-02 株式会社日立製作所 Maintenance support device for embedded system
KR101962248B1 (en) * 2012-03-16 2019-03-27 삼성전자주식회사 Apparatus and method for supporting verification of reconfigurable processor
US9111033B2 (en) 2012-04-17 2015-08-18 International Business Machines Corporation Compiling source code for debugging with user preferred snapshot locations
US8910126B2 (en) 2012-04-18 2014-12-09 International Business Machines Corporation Compiling source code for debugging with variable value restoration based on debugging user activity
KR20140005526A (en) * 2012-07-04 2014-01-15 삼성전자주식회사 Apparatus and method for source level debugging of reconfigurable processor
US8826240B1 (en) * 2012-09-29 2014-09-02 Appurify, Inc. Application validation through object level hierarchy analysis
US9015832B1 (en) 2012-10-19 2015-04-21 Google Inc. Application auditing through object level code inspection
US9113358B1 (en) 2012-11-19 2015-08-18 Google Inc. Configurable network virtualization
US9268668B1 (en) 2012-12-20 2016-02-23 Google Inc. System for testing markup language applications
US9274935B1 (en) 2013-01-15 2016-03-01 Google Inc. Application testing system with application programming interface
US9021443B1 (en) 2013-04-12 2015-04-28 Google Inc. Test automation API for host devices
US9268670B1 (en) 2013-08-08 2016-02-23 Google Inc. System for module selection in software application testing including generating a test executable based on an availability of root access
US9367415B1 (en) 2014-01-20 2016-06-14 Google Inc. System for testing markup language applications on a device
US9491229B1 (en) 2014-01-24 2016-11-08 Google Inc. Application experience sharing system
US9170922B1 (en) 2014-01-27 2015-10-27 Google Inc. Remote application debugging
US10111099B2 (en) 2014-05-12 2018-10-23 Microsoft Technology Licensing, Llc Distributing content in managed wireless distribution networks
US9874914B2 (en) 2014-05-19 2018-01-23 Microsoft Technology Licensing, Llc Power management contracts for accessory devices
US9703681B2 (en) * 2014-05-29 2017-07-11 Microsoft Technology Licensing, Llc Performance optimization tip presentation during debugging
US9717006B2 (en) 2014-06-23 2017-07-25 Microsoft Technology Licensing, Llc Device quarantine in a wireless network
US9864655B2 (en) 2015-10-30 2018-01-09 Google Llc Methods and apparatus for mobile computing device security in testing facilities
US10095603B2 (en) 2017-01-09 2018-10-09 International Business Machines Corporation Pre-fetching disassembly code for remote software debugging

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03107151A (en) 1989-09-21 1991-05-07 Fuji Photo Film Co Ltd Image forming device
JPH04106633A (en) * 1990-08-27 1992-04-08 Nec Corp Disassembling system
JPH0863369A (en) * 1994-08-24 1996-03-08 Toshiba Corp Optimization information output system
JP3606654B2 (en) * 1995-10-30 2005-01-05 富士通株式会社 Compiler device
JP3107151B2 (en) 1997-04-14 2000-11-06 日本電気株式会社 Optimized code debugging method
JP2001060161A (en) * 1999-08-24 2001-03-06 Nec Ic Microcomput Syst Ltd Debugging device and method and recording medium
JP2001134462A (en) * 1999-11-08 2001-05-18 Matsushita Electric Ind Co Ltd Program debug device
JP2002288004A (en) * 2001-03-27 2002-10-04 Canon Inc Program source processing device and method, and program source processing program
JP3612294B2 (en) * 2001-08-06 2005-01-19 松下電器産業株式会社 Debugging method and debugging device
US7506313B2 (en) * 2002-03-04 2009-03-17 International Business Machines Corporation Debug of code with selective display of data
US6964036B2 (en) * 2002-05-21 2005-11-08 International Business Machines Corporation Descriptive variables while debugging
US6961924B2 (en) * 2002-05-21 2005-11-01 International Business Machines Corporation Displaying variable usage while debugging
US20040003383A1 (en) * 2002-06-28 2004-01-01 Microsoft Corporation Stripping of unnecessary information from source code
US20040030963A1 (en) * 2002-08-12 2004-02-12 Sun Microsystems, Inc., A Delaware Corporation Method and apparatus for debugging computer program
US7231633B2 (en) * 2003-07-15 2007-06-12 Lsi Corporation Debugging with set verbosity level during read and analysis of executable code and associated comments while logging according to set verbosity level
US7328426B2 (en) * 2003-08-13 2008-02-05 International Business Machines Corporation Editor with commands for automatically disabling and enabling program code portions
JP4106633B2 (en) 2004-02-18 2008-06-25 日本電気株式会社 Information processing system and information processing method
US7475392B2 (en) * 2004-06-07 2009-01-06 International Business Machines Corporation SIMD code generation for loops with mixed data lengths
US7644397B2 (en) * 2004-06-19 2010-01-05 Apple Inc. Software performance analysis using data mining
WO2006084357A1 (en) * 2005-02-10 2006-08-17 Tira Wireless Inc. Outputting debug messages for applications intended for mobile devices
US20070078538A1 (en) * 2005-09-30 2007-04-05 Omron Corporation Debug device
JP2008269529A (en) * 2007-04-25 2008-11-06 Toshiba Corp Debug support device

Also Published As

Publication number Publication date
US8370810B2 (en) 2013-02-05
US20090144705A1 (en) 2009-06-04
JP2009134462A (en) 2009-06-18

Similar Documents

Publication Publication Date Title
JP4909877B2 (en) Debugging apparatus and debugging method
US7266809B2 (en) Software debugger and software development support system for microcomputer operable to execute conditional execution instruction
JP4822817B2 (en) Compilation system
EP3338179B1 (en) Graphical representation of data in a program code editor
JPH11194957A (en) Debug supporting device, parallel execution information generation device and recording medium for recording program applied to the same
JP4718901B2 (en) Instruction execution device, debugging method, debugging device, and debugging program
CN101414278B (en) Method for debugging binary application program based on dynamic inverse compiling technique
US9489286B2 (en) Method and system for computer assisted hot-tracing mechanism
CN102279789A (en) Debugging system and debugging method for embedded system of production phase
US20090013313A1 (en) Debug device, debug method, and program
US20080209401A1 (en) Techniques for integrating debugging with decompilation
JP2007304840A (en) Compilation method, debugging method, compilation program, and debugging program
JP2008276735A (en) Program code converter and program code conversion method
JP6790869B2 (en) Compilation method, compilation program and information processing equipment
JP2004139458A (en) Program development support device, program execution device, compiling method, and debugging method
JP2013084112A (en) Programmable controller system, programming device thereof, programmable controller, program and debug method
JP2007034825A (en) Debugging device
JP2008269529A (en) Debug support device
JP2002055848A (en) Program execution procedure and storage medium with the program execution procedure stored therein
JPH11110256A (en) Device and method for debugging program, and computer readable recording medium recorded with the method for the same
JP2006146731A (en) Program, storage medium, assembler device, compiler device, simulator device and emulator device
JP2011090511A (en) Execution program, compiler, and device and method of correcting execution program operation
JP7163879B2 (en) Dataflow generator, its method, and its program
JP2004078268A (en) Information processor, information processing method and program
JPH05108372A (en) System for outputting compiler optimization processing content

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110517

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111220

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120116

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees