Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5848553B2 - Software analysis apparatus and program - Google Patents
[go: Go Back, main page]

JP5848553B2 - Software analysis apparatus and program - Google Patents

Software analysis apparatus and program Download PDF

Info

Publication number
JP5848553B2
JP5848553B2 JP2011189321A JP2011189321A JP5848553B2 JP 5848553 B2 JP5848553 B2 JP 5848553B2 JP 2011189321 A JP2011189321 A JP 2011189321A JP 2011189321 A JP2011189321 A JP 2011189321A JP 5848553 B2 JP5848553 B2 JP 5848553B2
Authority
JP
Japan
Prior art keywords
function
interrupt
variable
determination target
access
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
JP2011189321A
Other languages
Japanese (ja)
Other versions
JP2013050892A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2011189321A priority Critical patent/JP5848553B2/en
Publication of JP2013050892A publication Critical patent/JP2013050892A/en
Application granted granted Critical
Publication of JP5848553B2 publication Critical patent/JP5848553B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Description

本発明は、装置に組み込む制御ソフトウェアを解析するソフトウェア解析装置に関し、より詳しくは、割込みの発生時、メモリへのアクセスに問題が発生する可能性があるか否かを解析するソフトウェア解析装置に関する。   The present invention relates to a software analysis apparatus that analyzes control software incorporated in an apparatus, and more particularly to a software analysis apparatus that analyzes whether or not there is a possibility of a problem in accessing a memory when an interrupt occurs.

装置の制御ソフトウェアの実行において、割込みが発生する場合、割込みにより実行されるコードが、割り込まれた側のコードと同じ変数にアクセスする場合、問題が生じる可能性がある。以下、割込みにより実行されるコードが、割り込まれた側のコードと同じ変数にアクセスすることにより生じる問題を並行アクセスによる問題と呼ぶものとする。なお、以下の説明において、変数への書き込みアクセスとは、変数に値を設定する処理を意味し、変数への読み出しアクセスとは、変数に設定されている値を参照する処理を意味するものとする。また、変数へのアクセスとは、変数への値の設定処理と変数に設定されている値の参照処理の両方を包含する処理を意味するものとする。   If an interrupt occurs in the execution of the control software of the device, problems may arise if the code executed by the interrupt accesses the same variable as the code on the interrupted side. Hereinafter, a problem caused by the code executed by the interrupt accessing the same variable as the interrupted code is referred to as a problem due to parallel access. In the following description, write access to a variable means processing for setting a value in a variable, and read access to a variable means processing for referring to a value set in a variable. To do. Access to a variable means a process including both a process for setting a value for a variable and a process for referring to a value set for the variable.

特許文献1及び2は、この様な制御ソフトウェアのデバッグを、特別な専用のハードウェア基板上で行うための構成を開示している。   Patent Documents 1 and 2 disclose a configuration for performing debugging of such control software on a special dedicated hardware board.

特開2005−122329号公報JP 2005-122329 A 特開2008−152544号公報JP 2008-152544 A

しかしながら、特許文献1及び2に記載の方法では、特別なハードウェア基板を作成する必要がありコスト高となる。さらに、デバッグ期間中に、並行アクセスによる問題を発生させることができない可能性もある。   However, in the methods described in Patent Documents 1 and 2, it is necessary to create a special hardware substrate, which increases costs. Furthermore, there is a possibility that problems due to parallel access cannot be generated during the debugging period.

本発明は、装置の制御ソフトウェアに関し、特別なハードウェア基板を使用することなく、並行アクセスによる問題が生じる可能性があるか否かを解析するソフトウェア解析装置及びそのためのプログラムを提供するものである。   The present invention relates to device control software, and provides a software analysis device for analyzing whether or not there is a possibility of a problem due to parallel access without using a special hardware board, and a program therefor. .

本発明によるソフトウェア解析装置は、制御ソフトウェアを解析して、割込み要因と、当該割込み要因の発生により処理するコードの先頭アドレスから割込み関数を判定する割込み関数判定手段と、前記制御ソフトウェアを解析して、前記割込み関数判定手段により判定された前記割込み関数がアクセスする変数のうち、書き込みアクセスする変数を少なくとも1つ含む変数を判定対象変数とし、該判定対象変数にアクセスする関数である判定対象関数が、該判定対象変数に複数回のアクセスを行う間に前記割込み関数による割込みが可能であるか否かを判定して判定結果を出力する処理を行う処理手段と、を備えていることを特徴とする。
The software analysis apparatus according to the present invention analyzes the control software, analyzes an interrupt factor, an interrupt function determination unit that determines an interrupt function from a start address of a code to be processed when the interrupt factor occurs , and analyzes the control software. Among the variables accessed by the interrupt function determined by the interrupt function determination means, a variable including at least one variable to be written is set as a determination target variable, and a determination target function that is a function for accessing the determination target variable is And a processing means for performing a process of determining whether or not the interrupt by the interrupt function is possible while performing a plurality of accesses to the determination target variable and outputting a determination result, To do.

特別なハードウェア基板を使用することなく、並行アクセスによる問題が生じる可能性を判定することができる。   Without using a special hardware board, it is possible to determine the possibility of a problem due to parallel access.

一実施形態によるソフトウェア解析処理のフローチャート。The flowchart of the software analysis process by one Embodiment. 一実施形態によるソフトウェア解析装置を実現するハードウェア構成図。The hardware block diagram which implement | achieves the software analysis apparatus by one Embodiment. 第一実施形態の説明に使用するプログラムを示す図。The figure which shows the program used for description of 1st embodiment. 図3のプログラムに対応するアセンブラ・コードを示す図。The figure which shows the assembler code corresponding to the program of FIG. 一実施形態による制御レジスタを示す図。The figure which shows the control register by one Embodiment. 一実施形態によるソフトウェア解析装置の機能ブロック図。The functional block diagram of the software analysis apparatus by one Embodiment. 一実施形態による割込みベクタ・テーブルを示す図。The figure which shows the interruption vector table by one execution form. 一実施形態における関数ツリー情報作成のフローチャート。The flowchart of function tree information preparation in one Embodiment. 一実施形態における判定処理のフローチャート。The flowchart of the determination process in one Embodiment. 第二実施形態の説明に使用するプログラムを示す図。The figure which shows the program used for description of 2nd embodiment. 図10のプログラムに対応するアセンブラ・コードを示す図。The figure which shows the assembler code corresponding to the program of FIG. 第三実施形態の説明に使用するプログラムを示す図。The figure which shows the program used for description of 3rd embodiment. 図12のプログラムに対応するアセンブラ・コードを示す図。The figure which shows the assembler code corresponding to the program of FIG.

(第一実施形態)本発明においてソフトウェア解析装置は、コンピュータ・システム201上でプログラムを実行することで実現でき、そのハードウェア構成を図2に示す。図2の本体部202のハードディスク202cには、ソフトウェア解析装置の各機能を実現するためのプログラムが格納される。中央処理部(CPU)202aは、プログラム及び各種データを主記憶部202bにロードして実行することで、コンピュータ・システム201はソフトウェア解析装置として動作する。なお、表示装置203は、本体部202からの指示により画面表示を行う。また、キーボード204は、このコンピュータ・システム201にユーザの指示や文字情報を入力するためのものである。さらに、マウス205は、表示装置203上の任意の位置を指定することによりその位置に表示されていたアイコン等に応じた指示を入力するためのものである。   (First Embodiment) In the present invention, the software analysis apparatus can be realized by executing a program on the computer system 201, and its hardware configuration is shown in FIG. A program for realizing each function of the software analysis apparatus is stored in the hard disk 202c of the main body 202 in FIG. The central processing unit (CPU) 202a loads the program and various data into the main storage unit 202b and executes them, whereby the computer system 201 operates as a software analysis device. The display device 203 displays a screen in accordance with an instruction from the main body unit 202. A keyboard 204 is used to input user instructions and character information to the computer system 201. Further, the mouse 205 is for inputting an instruction corresponding to an icon or the like displayed at the position by designating an arbitrary position on the display device 203.

図3は、本実施形態の説明に使用するプログラムであり、図4は、図3のプログラムに対応するアセンブラ・コードを示している。図3のプログラムにおいては、関数mainと、割込みにより呼び出される関数int_00(以下、割込み関数と呼ぶ。)と、関数mainから呼び出される関数aの3つの関数が存在する。関数mainのC13行の処理は、割込みレベルの設定であり、C15行の処理は、割込み状態の設定である。   FIG. 3 shows a program used for explaining the present embodiment, and FIG. 4 shows an assembler code corresponding to the program shown in FIG. In the program of FIG. 3, there are three functions: a function main, a function int_00 called by an interrupt (hereinafter referred to as an interrupt function), and a function a called from the function main. The process on line C13 of the function main is an interrupt level setting, and the process on line C15 is an interrupt state setting.

以下、図5を用いて、割込みレベルと、割込み状態の設定について説明する。図5は、割込みに関する制御レジスタであり、IL0〜IL2ビットが割込みレベルを、ILM0〜ILM2とIEビットが割込み状態を示している。なお、ILM0〜ILM2ビットは割込みマスクを、IEビットは割込みの可/不可を示している。本実施形態においては、IEビットの設定値が0である場合は割込み不可を示し、設定値が1である場合は割込み可を示すものとする。また、割込みレベルについてはIL2が、割込み状態についてはILM2がMSBであるものとする。割込みは、IEビットが割込み可能を示し、かつ、割込みレベルの設定値が割込みマスクの設置値より高い(強い)値であるときのみ実行される。なお、本実施形態においては、値が小さい程、高い(強い)ものとする。つまり、割込みレベルが2で、割込みマスクが0である場合は、IEビットの値に拘わらず割込みは禁止となる。一方、割込みレベルが2で、割込みマスクが3である場合は、IEビットが割込み可を示している場合には割込みが可能であり、IEビットが割込み不可を示している場合には割込みが不可となる。図3のC13行の処理においては、割込みレベルに3を、つまり、IL2に0を、IL1に1を、IL0に0を設定している。また、C15行の処理においては、割込み状態に7を設定している。つまり、ILM2に0を、ILM1に1を、ILM0に1を、IEに1を設定しており、これは、割込みマスクに値3を設定し、割込み可/不可を“割込み可”に設定するものである。   Hereinafter, the setting of the interrupt level and the interrupt state will be described with reference to FIG. FIG. 5 is a control register related to an interrupt. The IL0 to IL2 bits indicate an interrupt level, and the ILM0 to ILM2 and IE bits indicate an interrupt state. The ILM0 to ILM2 bits indicate an interrupt mask, and the IE bit indicates whether or not interrupts are possible. In the present embodiment, when the setting value of the IE bit is 0, it indicates that interruption is impossible, and when the setting value is 1, it indicates that interruption is possible. Further, it is assumed that IL2 is the MSB for the interrupt level and ILM2 is the MSB for the interrupt state. The interrupt is executed only when the IE bit indicates that interrupt is possible and the set value of the interrupt level is higher (stronger) than the set value of the interrupt mask. In the present embodiment, the smaller the value, the higher (stronger). That is, when the interrupt level is 2 and the interrupt mask is 0, interrupts are prohibited regardless of the value of the IE bit. On the other hand, if the interrupt level is 2 and the interrupt mask is 3, interrupt is possible if the IE bit indicates that interrupt is possible, and interrupt is not possible if the IE bit indicates that interrupt is not possible. It becomes. In the processing of the C13 line in FIG. 3, the interrupt level is set to 3, that is, IL2 is set to 0, IL1 is set to 1, and IL0 is set to 0. Also, in the process of the C15 line, 7 is set as the interrupt state. That is, 0 is set in ILM2, 1 is set in ILM1, 1 is set in ILM0, and 1 is set in IE. This sets a value of 3 in the interrupt mask and sets interrupt enable / disable to "interrupt enabled". Is.

関数mainは、C14行の処理で変数xに3を設定して、C16行の処理で関数aを呼出す。関数aは、xが0であればyを1に設定し、xが3であればyを2に設定する。また、割込み関数int_00は、xを1だけ減ずる処理を行う。例えば、関数mainでxに3を設定後、関数aを呼び出すと、図4のA04行の処理、つまり、xが0であるか否かを判定する処理において、xが0ではないためA08行に移行する。その後、A11行において、xが3であるか否かの判定が行われる。xは3であるため、A12行の処理においてはA16行に移行せず、A13行及びA14行の処理においてyに2が設定される。しかしながら、A12行の実行後、A14行が実行されるまでの間に、割込み関数int_00が実行されると、x=2、y=2と言う値になり、誤動作を引き起こす可能性が生じる。つまり、例えば、割込み関数が、ある変数に書き込みアクセスを行い、かつ、割込まれる側の関数が当該変数に読み出しアクセスを複数回行う場合、割込み関数の呼び出しタイミングによっては、並行アクセスによる問題が生じる。本実施形態は、その様な可能性があるか否かを解析するものである。   The function main sets the variable x to 3 in the process of line C14 and calls the function a in the process of line C16. The function a sets y to 1 if x is 0, and sets y to 2 if x is 3. The interrupt function int_00 performs a process of reducing x by 1. For example, when function a is called after setting x to 3 in function main, line A08 in FIG. 4 is processed in line A04, that is, in the process of determining whether x is 0 or not. Migrate to Thereafter, in line A11, it is determined whether x is 3. Since x is 3, in the process of the A12 line, the process does not shift to the A16 line, and in the process of the A13 and A14 lines, 2 is set to y. However, if the interrupt function int_00 is executed after the execution of the A12 line and before the execution of the A14 line, the values become x = 2 and y = 2, which may cause a malfunction. In other words, for example, when an interrupt function performs write access to a variable and the interrupted function performs read access to the variable multiple times, a problem due to concurrent access may occur depending on the call timing of the interrupt function. . This embodiment analyzes whether or not there is such a possibility.

図6は、本実施形態におけるソフトウェア解析装置の機能ブロック成図であり、図1は、ソフトウェア解析装置が実行する解析処理のフローチャートである。割込関数判定部1は、S1において、制御ソフトウェアを解析して割込みベクタ・テーブルを生成し、割込み関数を判定する。割込みベクタ・テーブルとは、割込み要因と、その要因の発生により処理するコードの先頭アドレス、つまり割込み関数の対応関係を示すものである。図7に、例示的な、割込みベクタ・テーブルを示す。符号601で示す行のアドレスは、ハードウェア割込み要因に対応するアドレスで、このアドレスに対応する割込みが発生した場合に、符号602が示すラベル名に対応する処理、つまり、符号603で示す処理に分岐する。符号603は、符号604で示す行において、関数int_00を呼び出している。割込関数判定部1は、割込みベクタ・テーブルに基づき、割込み要因と、その割込み要因が発生した時に呼び出される関数、つまり、割込み関数についての情報を取得して記憶部5に保存する。   FIG. 6 is a functional block diagram of the software analysis apparatus according to the present embodiment, and FIG. 1 is a flowchart of analysis processing executed by the software analysis apparatus. In S1, the interrupt function determination unit 1 analyzes the control software, generates an interrupt vector table, and determines an interrupt function. The interrupt vector table indicates a correspondence relationship between an interrupt factor and a start address of a code to be processed when the factor occurs, that is, an interrupt function. FIG. 7 shows an exemplary interrupt vector table. The address of the row indicated by reference numeral 601 is an address corresponding to a hardware interrupt factor, and when an interrupt corresponding to this address occurs, processing corresponding to the label name indicated by reference numeral 602, that is, processing indicated by reference numeral 603 is performed. Branch. Reference numeral 603 calls the function int_00 in the row indicated by reference numeral 604. Based on the interrupt vector table, the interrupt function determination unit 1 acquires an interrupt factor and a function to be called when the interrupt factor occurs, that is, information on the interrupt function, and stores the information in the storage unit 5.

続いて、関数アクセス情報保存部2は、S2において、制御ソフトウェアの各関数について、関数がアクセスする変数と、その種別及び回数を判定する。なお、アクセス種別とは、変数に対する読み出し又は書き込みである。この処理は、アセンブラ・コードを解析することにより行うことができる。具体的には、データ転送命令や、1つの命令でデータの読み出し、値の変更及び書き込みを行う、インクリメント又はデクリメント操作といった更新命令や、変数の値により分岐する条件分岐命令等により、変数へのアクセスと、その種別を判定することができる。図4のアセンブラ・コードにおいて、A03行及びA09行は、変数xに対する読み出しアクセスであり、A06及びA14行の処理は、それぞれ、変数yに対する値1及び2の書き込みアクセスである。また、A23行の処理は、割込み制御レジスタの割込みレベルへの値2の書き込みアクセスであり、A25行の処理は変数xへの値3の書き込みアクセスであり、A26行の処理は、割込み制御レジスタの割込み状態への値7の書き込みアクセスである。さらに、A33行は、変数xを読み出した後、変数xを1だけ減ずる書き込みアクセスである。関数アクセス情報保存部2は、各関数がアクセスする変数、種別及びその回数を、関数アクセス情報として記憶部5に保存する。なお、本実施形態において、A33行に示す様なインクリメント又はデクリメント操作は書き込みアクセスとして取り扱う。   Subsequently, in S2, the function access information storage unit 2 determines, for each function of the control software, a variable accessed by the function, its type, and the number of times. The access type is reading or writing to a variable. This processing can be performed by analyzing the assembler code. Specifically, a data transfer instruction, an update instruction such as an increment or decrement operation that reads data, changes or writes a value with one instruction, a conditional branch instruction that branches according to the value of a variable, etc. Access and its type can be determined. In the assembler code of FIG. 4, lines A03 and A09 are read accesses to the variable x, and processes in lines A06 and A14 are write accesses of the values 1 and 2 to the variable y, respectively. Further, the process in line A23 is a write access of value 2 to the interrupt level of the interrupt control register, the process in line A25 is a write access of value 3 to variable x, and the process in line A26 is an interrupt control register. Write access of value 7 to the interrupt state. Further, line A33 is a write access in which the variable x is decremented by 1 after reading the variable x. The function access information storage unit 2 stores variables, types, and the number of times accessed by each function in the storage unit 5 as function access information. In this embodiment, an increment or decrement operation as shown in line A33 is handled as a write access.

続いて、関数ツリー情報保存部3は、S3において、制御ソフトウェアを解析して関数の呼び出し関係を判定して、関数の呼び出し関係を示す関数ツリー情報を作成して記憶部5に保存する。図8は、関数ツリー情報の作成処理のフローチャートである。S11において、関数ツリー情報保存部3は、制御ソフトウェアのコードから、関数を呼び出す呼出し処理を抽出する。S12において、関数ツリー情報保存部3は、呼出しが関数名により行われているか、ポインタにより行われているかを判定する。関数名で呼び出されている場合、関数ツリー情報保存部3は、S15において、関数と、その関数が呼び出す他の関数との関係を保存する。なお、S12において、ポインタで呼び出しが行われている場合、関数ツリー情報保存部3は、S13において、ポインタが関数ポインタ固定値テーブルを示しているか否かを判定する。ポインタが関数ポインタ固定値テーブルを示している場合、関数ツリー情報保存部3は、S15において、関数ポインタ固定値テーブルから呼び出される関数名を判定して保存する。また、S13において、ポインタが関数ポインタ固定値テーブルを示していない場合、関数ツリー情報保存部3は、S14において、ポインタが、関数ポインタテーブルが書き込まれるメモリを示しているか否かを判定する。関数ポインタテーブルが書き込まれるメモリを示している場合、関数ツリー情報保存部3は、S15において、メモリから呼び出される関数名を判定して保存する。以上の様に、関数と、その関数により呼び出される関数の関係を判定する。ある関数に呼び出される関数が、更に呼び出す関数を調べることにより、制御ソフトウェアの関数の呼び出し関係の全体を示すツリー情報を生成することができる。例えば、図3及び図4に示すコードから、関数mainが、関数aを関数名で呼び出すことと、割込み関数int_00は、他の関数を呼び出さないことが判定される。   Subsequently, in S3, the function tree information storage unit 3 analyzes the control software to determine the function call relationship, creates function tree information indicating the function call relationship, and stores the function tree information in the storage unit 5. FIG. 8 is a flowchart of a function tree information creation process. In S11, the function tree information storage unit 3 extracts a call process for calling a function from the code of the control software. In S12, the function tree information storage unit 3 determines whether the call is made by the function name or the pointer. If the function name is called by the function name, the function tree information storage unit 3 stores the relationship between the function and another function called by the function in S15. If the call is performed with a pointer in S12, the function tree information storage unit 3 determines in S13 whether the pointer indicates a function pointer fixed value table. When the pointer indicates the function pointer fixed value table, the function tree information storage unit 3 determines and stores the function name called from the function pointer fixed value table in S15. If the pointer does not indicate the function pointer fixed value table in S13, the function tree information storage unit 3 determines in S14 whether the pointer indicates a memory in which the function pointer table is written. When the function pointer table indicates the memory to be written, the function tree information storage unit 3 determines and stores the function name called from the memory in S15. As described above, the relationship between a function and a function called by the function is determined. When a function called by a certain function further examines the function to be called, tree information indicating the entire calling relationship of the function of the control software can be generated. For example, it is determined from the codes shown in FIGS. 3 and 4 that the function main calls the function a with the function name and that the interrupt function int_00 does not call another function.

図1に戻り、処理部4は、S4において、割込み関数が書き込みアクセスする変数を判定して、判定対象変数とする。この処理は、関数アクセス情報保存部2が生成した関数アクセス情報を利用することができる。例えば、図3及び図4に示すプログラムの割込み関数int_00においては、変数xが判定対象変数と判定される。なお、S4の処理において、割込み関数が他の関数を呼び出す場合には、呼び出した他の関数における処理も割込み関数による処理として扱う。続いて、処理部4は、判定対象変数に複数回読み出しアクセスする関数を、S5において判定して、判定対象関数とする。例えば、図3及び図4に示すプログラムにおいて関数aは変数xが0ではない場合、変数xに読み出しアクセスを2回行うので判定対象関数として判定される。なお、この処理も、関数アクセス情報保存部2が生成した関数アクセス情報を利用することができる。最後に、処理部4は、S5にて判定した判定対象関数それぞれについて、並行アクセスによる問題が生じる可能性を判定する。   Returning to FIG. 1, in S <b> 4, the processing unit 4 determines a variable to which the interrupt function writes and accesses and sets it as a determination target variable. This process can use the function access information generated by the function access information storage unit 2. For example, in the interrupt function int_00 of the program shown in FIGS. 3 and 4, the variable x is determined as a determination target variable. In the process of S4, when the interrupt function calls another function, the process in the called other function is also handled as the process by the interrupt function. Subsequently, the processing unit 4 determines, in S5, a function that reads and accesses the determination target variable a plurality of times, and sets it as a determination target function. For example, in the program shown in FIGS. 3 and 4, when the variable x is not 0, the function a is determined as a determination target function because the variable x is read and accessed twice. In this process, the function access information generated by the function access information storage unit 2 can be used. Finally, the processing unit 4 determines the possibility of a problem due to parallel access for each determination target function determined in S5.

図9は、処理部4が、S6において実行する判定処理のフローチャートである。まず、処理部4は、S22において、判定対象関数及び判定対象関数が呼び出す関数の処理を順に解析する。そして、判定対象関数が判定対象変数に複数回の読み出しアクセスを行う間に、判定対象変数に書き込みアクセスする割込み関数による割込みが可能であるか否かを判定する。つまり、判定対象関数が判定対象変数に読み出しアクセスし、次に判定対象関数が判定対象変数に読み出しアクセスするまでに、当該割込み関数による割込みが可能であるか否かを判定する。なお、判定対象関数からの処理に条件分岐がある場合には、各分岐のパターンに対してその処理を解析する。複数回の読み出しアクセスの間、当該割込み関数による割込みが可能である場合、処理部4は、並行アクセスによる問題が生じる可能性が有ると判定する。一方、当該割込み関数による割込みが不可である場合、処理部4は、並行アクセスによる問題が生じる可能性が無いと判定する。問題が生じる可能性の有無を判定できた場合、処理部4は、S23において、判定可能であると判定して、判定結果、つまり、問題が生じる可能性の有無を図示しない出力部経由で出力して処理を終了する。一方、連続する読み出しアクセスの間に当該割込み関数による割込みが可能である否かを判定できない場合、処理部4は、S23において判定不可と判定する。この場合、処理部4は、S24において、判定対象関数を呼び出す関数を、判定対象関数に変更してS23の処理を繰り返す。なお、このとき処理部4は、関数ツリー情報保存部3が生成した関数ツリー情報に基づき判定対象関数を呼び出す関数を判定する。   FIG. 9 is a flowchart of the determination process executed by the processing unit 4 in S6. First, in S22, the processing unit 4 sequentially analyzes the determination target function and the processing of the function called by the determination target function. Then, while the determination target function performs read access to the determination target variable a plurality of times, it is determined whether or not the interrupt by the interrupt function that performs write access to the determination target variable is possible. That is, it is determined whether or not an interrupt by the interrupt function is possible before the determination target function reads and accesses the determination target variable and then the determination target function reads and accesses the determination target variable. If there is a conditional branch in the process from the determination target function, the process is analyzed for each branch pattern. If an interrupt by the interrupt function is possible during a plurality of read accesses, the processing unit 4 determines that there is a possibility of a problem due to parallel access. On the other hand, when the interrupt by the interrupt function is impossible, the processing unit 4 determines that there is no possibility of a problem due to parallel access. If it is possible to determine whether or not there is a possibility of a problem, the processing unit 4 determines in S23 that determination is possible, and outputs a determination result, that is, whether or not a problem may occur, via an output unit (not shown). To finish the process. On the other hand, if it is not possible to determine whether or not an interrupt by the interrupt function is possible during successive read accesses, the processing unit 4 determines that determination is not possible in S23. In this case, in S24, the processing unit 4 changes the function that calls the determination target function to the determination target function, and repeats the process of S23. At this time, the processing unit 4 determines a function that calls the determination target function based on the function tree information generated by the function tree information storage unit 3.

例えば、図3及び図4のプログラムにおいて、S5の処理で関数aが判定対象関数として判定されているため、図4のA01行からA18行の処理を順に実行する。A01行からA18行の処理においては、変数xが0以外の値であると、判定対象変数である変数xに対する読み出しアクセスが2回続けて行われる。しかしながら、割込み制御レジスタに対する設定がなく、割込みレベル及び割込み状態共に未定義であるため、割込み関数int_00の実行が可能であるか否かが判定できない。したがって、S23では判定不可となり、処理部4は、S24において関数aを呼び出す関数mainを判定対象関数とする。関数mainにおいては、割込みレベルを値2に、割込みマスクを値3に、割込み可/不可を割込み可に設定しているため、処理部4は、関数aにおける変数xへの2回の読み出しアクセスの間、割込み関数int_00が実行され得ることを認識する。したがって、処理部4は、S23において、並行アクセスによる問題が生じ得ると判定する。   For example, in the program of FIGS. 3 and 4, since the function a is determined as the determination target function in the process of S5, the processes from the A01 line to the A18 line in FIG. 4 are executed in order. In the processing from the A01 line to the A18 line, when the variable x is a value other than 0, the read access to the variable x that is the determination target variable is performed twice in succession. However, since there is no setting for the interrupt control register and the interrupt level and the interrupt state are undefined, it cannot be determined whether or not the interrupt function int_00 can be executed. Accordingly, the determination becomes impossible in S23, and the processing unit 4 sets the function main that calls the function a in S24 as the determination target function. In the function main, the interrupt level is set to value 2, the interrupt mask is set to value 3, and interrupt enable / disable is set to enable interrupt. Therefore, the processing unit 4 performs two read accesses to the variable x in the function a. Recognize that the interrupt function int_00 can be executed during Therefore, the processing unit 4 determines in S23 that a problem due to parallel access may occur.

(第二実施形態)続いて、第二実施形態について第一実施形態との相違点を中心に説明する。第一実施形態は、判定対象変数に対する複数回の読み出しアクセスの間に、判定対象変数に書き込みアクセスを行う割込み関数の実行が可能であるか否かを判定するものであった。本実施形態は、判定対象変数に対する読み出しアクセス後、書き込みアクセスを行うまでの間に、割込み関数が判定対象変数への書き込みアクセスを実行し得るか否かを判定する。図10に本実施形態で使用するプログラムを、図11に図10のプログラムに対応するアセンブラ・コードを示す。   (Second Embodiment) Next, the second embodiment will be described focusing on the differences from the first embodiment. In the first embodiment, it is determined whether or not an interrupt function that performs write access to a determination target variable can be executed during a plurality of read accesses to the determination target variable. In the present embodiment, it is determined whether or not the interrupt function can execute the write access to the determination target variable after the read access to the determination target variable and before the write access is performed. FIG. 10 shows a program used in this embodiment, and FIG. 11 shows an assembler code corresponding to the program of FIG.

図10のプログラムにおいては、関数mainと、割込み関数int_00と、関数mainから呼び出される関数a及び関数bの4つの関数が存在する。関数mainのC10行及びC13行の処理は、第一実施形態と同じく、割込みレベル及び割込み状態の設定である。C14行の処理は、funcに関数bのアドレス情報を書き込むものであり、C16行のif文がTrueであるときの処理は、funcと言うRAMの値を用いたポインタ呼び出しである。また、C07行において、tableAに関数aを格納することが宣言されており、C17行の処理は、tableAを示すポインタ呼出しである。したがって、関数ツリー情報保存部3は、図8のS13の処理で、関数mainが関数bを呼び出すことを判定し、図8のS14の処理で、関数mainが関数aを呼び出すことを判定する。   In the program of FIG. 10, there are four functions: a function main, an interrupt function int_00, and a function a and a function b called from the function main. The processing of line C10 and line C13 of the function main is the setting of the interrupt level and the interrupt state, as in the first embodiment. The process on line C14 is to write the address information of function b to func, and the process when the if statement on line C16 is True is a pointer call using a RAM value called func. In line C07, it is declared that function a is stored in tableA, and the process in line C17 is a pointer call indicating tableA. Therefore, the function tree information storage unit 3 determines that the function main calls the function b in the process of S13 of FIG. 8, and determines that the function main calls the function a in the process of S14 of FIG.

関数mainは、C11行の処理で変数xに3を設定して、C16行及びC17行の処理で、変数xの値に応じて関数a又はbを呼出す。関数aは、xに2を設定し、関数bは、xに3を設定する。また、割込み関数int_00は、xを1だけ減ずる処理を行う。例えば、関数mainのif文により呼び出す関数を判定後、呼出した関数を実行するまでに、割込みが生じるものとする。この場合、割込み関数int_00が変数xを更新したとしても、割り込み前の変数xの値に基づき呼び出された関数が、さらに、その変数xを上書きすることになり問題が生じ得る。   The function main sets the variable x to 3 in the process of the C11 line, and calls the function a or b according to the value of the variable x in the process of the C16 line and the C17 line. The function a sets 2 to x, and the function b sets 3 to x. The interrupt function int_00 performs a process of reducing x by 1. For example, it is assumed that an interrupt occurs after the function to be called is determined by the if statement of the function main and before the called function is executed. In this case, even if the interrupt function int_00 updates the variable x, a function called based on the value of the variable x before the interrupt further overwrites the variable x, which may cause a problem.

なお、図11のアセンブラ・コードにおいて、変数への読み出しアクセスは、A23行、A25行及びA09行の処理であり、変数への書き込みアクセスは、それぞれ、A06、A12、A19、A21、A22、A24及びA41行の処理である。   In the assembler code of FIG. 11, the read access to the variable is the processing of the A23 line, the A25 line, and the A09 line, and the write access to the variable is A06, A12, A19, A21, A22, A24, respectively. And A41 line processing.

図11のプログラムにおいて、割込み関数int_00は変数xに対する書き込みアクセスをA41行で実行するため、図1のS4において判定対象変数は、変数xとなる。また、変数xに対して複数回のアクセスを行うのは関数mainであるため、図1のS5において判定対象関数は関数mainとなる。したがって、処理部4は、S6において、関数mainの処理を順に解析し、図9のif文の実行において変数xに対して読み出しアクセスを実行した後、関数a又はbを読み出して変数xに対する書き込みアクセスを行うことを認識する。さらに、割込みレベルを値2に、割込みマスクを値3に、割込み可/不可を割込み可に設定しているため、処理部4は、変数xへ読み出しアクセスから書き込みアクセスの間に、割込み関数int_00が実行され得ることを認識する。したがって、処理部4は、並行アクセスによる問題が生じ得ると判定する。   In the program of FIG. 11, since the interrupt function int_00 executes write access to the variable x in the A41 line, the determination target variable becomes the variable x in S4 of FIG. Further, since it is the function main that accesses the variable x a plurality of times, the determination target function is the function main in S5 of FIG. Therefore, in step S6, the processing unit 4 sequentially analyzes the processing of the function main, executes read access to the variable x in the execution of the if statement in FIG. 9, reads the function a or b, and writes to the variable x. Recognize access. Furthermore, since the interrupt level is set to value 2, the interrupt mask is set to value 3, and interrupt enable / disable is set to enable interrupt, the processing unit 4 interrupts the interrupt function int_00 between the read access and the write access to the variable x. Recognize that can be executed. Therefore, the processing unit 4 determines that a problem due to parallel access may occur.

(第三実施形態)続いて、第三実施形態について第一実施形態との相違点を中心に説明する。図12に本実施形態で使用するプログラムを、図13に図12のプログラムに対応するアセンブラ・コードを示す。図12のプログラムにおいては、関数mainと、割込み関数int_00と、関数mainから呼び出される関数aの3つの関数が存在する。関数mainのC08行及びC11行の処理は、第一実施形態と同じく、割込みレベル及び割込み状態の設定である。関数mainは、C09行の処理で変数xに3を設定し、C10行の処理で変数yに1を設定する。その後、C12行の処理で関数aを呼び出す。関数aは、C03行の処理で変数xに値2を、C04行の処理で変数yに0を設定する。また、割込み関数int_00は、yが0以外であれば、xに1を設定する処理を行う。   (Third Embodiment) Next, the third embodiment will be described focusing on the differences from the first embodiment. FIG. 12 shows a program used in this embodiment, and FIG. 13 shows an assembler code corresponding to the program of FIG. In the program of FIG. 12, there are three functions: a function main, an interrupt function int_00, and a function a called from the function main. The processing of lines C08 and C11 of the function main is the setting of the interrupt level and interrupt state, as in the first embodiment. The function main sets 3 to the variable x in the process of the C09 line, and sets 1 to the variable y in the process of the C10 line. Thereafter, the function a is called in the process of the C12 line. The function a sets the value 2 to the variable x in the process of the C03 line and sets 0 to the variable y in the process of the C04 line. Further, the interrupt function int_00 performs a process of setting 1 to x if y is other than 0.

例えば、関数mainで変数x及びyに値3及び1を設定後、関数aのC03行とC04行の処理の間に割込みが生じるものとする。この場合、割込み関数int_00が変数xを1に更新し、よって、変数x及びyは、それぞれ、値1及び0となり、これは、関数a及び割込み関数int_00のいずれの実行結果とも異なるものである。本実施形態はこの様な問題を検出するためのものである。したがって、本実施形態においては、判定対象変数は2つであり、一方が条件分岐の判定のために割込関数において読み出される第1の変数であり、他方は、その後に書き込みアクセスされる第2の変数である。なお、第2の変数は第1の変数とは異なる変数である。処理部4は、図1のS4において、条件分岐に使用される第1の変数に対する読み出しアクセス後に、第2の変数への書き込みアクセスを割込み関数が行う場合、その2つの変数を判定対象変数と判定する。この処理は、処理部4が割込み関数の処理を解析することにより行うことができる。また、問題が発生する可能性があるのは、第2の変数、第1の変数の順で書き込みアクセスを行う間に、割込みが発生することである。したがって、処理部4は、図1のS5において、関数アクセス情報に基づき、第1の変数及び第2の変数の両方に書き込みアクセスする関数を判定対象関数として選択する。   For example, assume that after setting values 3 and 1 to the variables x and y with the function main, an interrupt occurs between the processing of the C03 line and C04 line of the function a. In this case, the interrupt function int_00 updates the variable x to 1, so that the variables x and y have values 1 and 0, respectively, which are different from the execution results of the function a and the interrupt function int_00. . This embodiment is for detecting such a problem. Therefore, in the present embodiment, there are two determination target variables, one is the first variable read in the interrupt function for the determination of the conditional branch, and the other is the second variable that is subsequently accessed for writing. Variable. Note that the second variable is a variable different from the first variable. When the interrupt function performs write access to the second variable after the read access to the first variable used for the conditional branch in S4 of FIG. 1, the processing unit 4 uses the two variables as the determination target variables. judge. This processing can be performed by the processing unit 4 analyzing the processing of the interrupt function. A problem may occur when an interrupt occurs during write access in the order of the second variable and the first variable. Therefore, in S5 of FIG. 1, the processing unit 4 selects a function that performs write access to both the first variable and the second variable as a determination target function based on the function access information.

なお、図12のアセンブラ・コードにおいて、変数への読み出しアクセスはA23行の処理であり、変数への書き込みアクセスは、それぞれ、A04、A06、A12、A14、A16、A17及びA26行の処理である。   In the assembler code shown in FIG. 12, the read access to the variable is the process on line A23, and the write access to the variable is the process on line A04, A06, A12, A14, A16, A17, and A26, respectively. .

図12及び図13のプログラムにおいて、割込み関数int_00は変数yに対する読み出しアクセスをA23行で実行後、A26行で変数xに対する書き込みアクセスを実行する。したがって、図1のS4において、判定対象変数は、第1の変数y及び第2の変数xとなる。また、関数mainは、変数xに対する1回の書き込みアクセスと、変数yに対する1回の書き込みアクセス、つまり、判定対象変数に対する計2回のアクセスを行う。さらに、関数aも、変数xに対する1回の書き込みアクセスと、変数yに対する1回の書き込みアクセス、つまり、判定対象変数に対する計2回のアクセスを行う。したがって、図1のS5において、判定対象変数に複数回のアクセスを行う判定対象関数として、関数main及び関数aが判定される。しかしながら、関数ツリー情報により、関数mainが関数aを呼び出すことが分かるため、関数mainのみを判定対象関数とする。したがって、処理部4は、S6において、関数mainの処理を順に解析し、関数aの呼出し後、変数x、yの順で書き込みアクセスを行うことを認識する。さらに、第一実施形態と同様に、割込みレベルを値2に、割込みマスクを値3に、割込み可/不可を割込み可に設定しているため、処理部4は、並行アクセスによる問題が生じ得ると判定する。   In the programs of FIGS. 12 and 13, the interrupt function int_00 executes a read access to the variable y in the A23 line, and then executes a write access to the variable x in the A26 line. Therefore, in S4 of FIG. 1, the determination target variables are the first variable y and the second variable x. The function main performs one write access to the variable x and one write access to the variable y, that is, a total of two accesses to the determination target variable. Furthermore, the function a also performs one write access to the variable x and one write access to the variable y, that is, a total of two accesses to the determination target variable. Therefore, in S5 of FIG. 1, the function main and the function a are determined as determination target functions for accessing the determination target variable a plurality of times. However, since the function tree information indicates that the function main calls the function a, only the function main is set as a determination target function. Therefore, in S6, the processing unit 4 sequentially analyzes the processing of the function main, and recognizes that the write access is performed in the order of the variables x and y after the function a is called. Further, as in the first embodiment, since the interrupt level is set to value 2, the interrupt mask is set to value 3, and interrupt enable / disable is set to enable interrupt, the processing unit 4 may have a problem due to parallel access. Is determined.

上述した様に、特別なハードウェア基板を使用することなく、並行アクセスによる問題が生じる可能性を判定することができる。なお、判定対象変数は、第一及び第二実施形態においては、割込み関数が書き込みアクセスする変数であり、第三実施形態においては、条件分岐の判定のために読み出しアクセスする変数と、その後に書き込みアクセスする変数であった。しかしながら、割込み関数が変数に書き込みアクセスする場合には、並行アクセスにより問題が生じ得る。したがって、判定対象変数の選択基準は、書き込みアクセスする変数を少なくとも1つ含むものであれば、それ以外の任意の所定の選択基準を適用することができる。また、割込み関数による割込みを禁止すべき、判定対象関数による判定対象変数へのアクセス順序及びその種別についても、上記実施形態で述べた具体例以外にも種々のパターンが存在することは当業者には明らかである。   As described above, it is possible to determine the possibility of a problem due to parallel access without using a special hardware board. In the first and second embodiments, the determination target variable is a variable that the interrupt function writes and accesses, and in the third embodiment, the variable that is read and accessed for the determination of the conditional branch, and the write after that It was a variable to access. However, if the interrupt function has write access to a variable, problems can arise due to concurrent access. Therefore, as the selection criterion for the determination target variable, any other predetermined selection criterion can be applied as long as it includes at least one variable for write access. Further, it is understood by those skilled in the art that there are various patterns other than the specific examples described in the above embodiment regarding the order of access to the determination target variable by the determination target function and the type of the determination target function. Is clear.

さらに、上述した実施形態においては、図1のS5の処理に置いて、判定対象関数は、判定対象変数に複数回アクセスする関数としていた。このため、関数アクセス情報保存部2は、各関数がアクセスする変数、種別及びその回数を関数アクセス情報として記憶部5に保存していた。しかしながら、判定対象変数にアクセスする関数を、その回数に拘わりなく判定対象関数として選択する形態であっても良い。この場合、処理部4は、S6の処理において、判定対象関数が判定対象変数への所定のパターンでのアクセスを行うことを判定する。さらに、関数アクセス情報保存部2を設けず、よって、判定対象関数及び判定対象変数の判定に関数アクセス情報を使用しない形態とすることもできる。この場合、処理部4は、判定対象変数及び判定対象の関数の判定を制御ソフトウェを解析することで行う。   Furthermore, in the above-described embodiment, the determination target function is a function that accesses the determination target variable a plurality of times in the process of S5 of FIG. For this reason, the function access information storage unit 2 stores the variables, types, and the number of times accessed by each function in the storage unit 5 as function access information. However, the function for accessing the determination target variable may be selected as the determination target function regardless of the number of times. In this case, the processing unit 4 determines that the determination target function accesses the determination target variable in a predetermined pattern in the process of S6. Furthermore, the function access information storage unit 2 is not provided, and thus the function access information is not used for the determination of the determination target function and the determination target variable. In this case, the processing unit 4 performs determination of the determination target variable and the determination target function by analyzing the control software.

(その他の実施形態)また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。   (Other Embodiments) The present invention is also realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.

Claims (9)

制御ソフトウェアを解析して、割込み要因と、当該割込み要因の発生により処理するコードの先頭アドレスから割込み関数を判定する割込み関数判定手段と、
前記制御ソフトウェアを解析して、前記割込み関数判定手段により判定された前記割込み関数がアクセスする変数のうち、書き込みアクセスする変数を少なくとも1つ含む変数を判定対象変数とし、該判定対象変数にアクセスする関数である判定対象関数が、該判定対象変数に複数回のアクセスを行う間に前記割込み関数による割込みが可能であるか否かを判定して判定結果を出力する処理を行う処理手段と、
を備えていることを特徴とするソフトウェア解析装置。
Analyzing the control software, interrupt function determining means for determining the interrupt function from the interrupt factor and the start address of the code to be processed by the occurrence of the interrupt factor ,
Analyzing the control software, among the variables accessed by the interrupt function determined by the interrupt function determining means, a variable including at least one variable to be accessed for writing is set as a determination target variable, and the determination target variable is accessed. A processing unit that performs a process of determining whether or not an interrupt by the interrupt function is possible while the determination target function being a function accesses the determination target variable a plurality of times, and outputting a determination result;
A software analysis device comprising:
前記制御ソフトウェアを解析して各関数が呼び出す関数を判定し、関数ツリー情報として保存する関数ツリー情報保存手段をさらに備えており、
前記処理手段は、前記判定対象関数の処理を解析して、前記割込み関数による割込みが可能であるか否かを判定し、前記判定対象関数の処理から、前記割込み関数による割込みが可能であるか否かを判定できない場合、前記関数ツリー情報から前記判定対象関数を呼び出す関数を判定し、該呼び出す関数の処理を解析して前記割込み関数による割込みが可能であるか否かを判定することを特徴とする請求項1に記載のソフトウェア解析装置。
A function tree information storage means for analyzing the control software and determining a function called by each function and storing the function software as function tree information;
The processing means analyzes the process of the determination target function to determine whether or not the interrupt by the interrupt function is possible. From the process of the determination target function, can the interrupt by the interrupt function be possible? If it is not possible to determine whether or not, a function that calls the function to be determined is determined from the function tree information, and processing of the function to be called is analyzed to determine whether interruption by the interrupt function is possible. The software analysis apparatus according to claim 1.
前記処理手段は、前記割込み関数による割込みが可能であるか否かを示す割込み制御レジスタへの設定を行う前記制御ソフトウェアの命令から、前記割込み関数による割込みが可能であるか否かを判定することを特徴とする請求項1又は2に記載のソフトウェア解析装置。   The processing means determines whether or not an interrupt by the interrupt function is possible from an instruction of the control software for setting an interrupt control register indicating whether or not an interrupt by the interrupt function is possible The software analysis apparatus according to claim 1, wherein: 前記制御レジスタの設定は、割込みマスクおよび割込みレベルの設定を含み、前記割込みレベルの設定値が、前記割込みマスクの設定値より高い値である場合に、前記処理手段は、割込みが可能であると判定することを特徴とする請求項3に記載のソフトウェア解析装置。   The setting of the control register includes setting of an interrupt mask and an interrupt level, and when the set value of the interrupt level is higher than the set value of the interrupt mask, the processing means is capable of interrupting The software analysis apparatus according to claim 3, wherein the determination is performed. 前記制御レジスタの設定は、さらに、割込み可/不可の設定を含み、前記割込み可/不可の設定が割込み可能であることを示し、かつ、前記割込みレベルの設定値が、前記割込みマスクの設定値より高い値である場合に、前記処理手段は、割込みが可能であると判定することを特徴とする請求項4に記載のソフトウェア解析装置。   The setting of the control register further includes an interrupt enable / disable setting, the interrupt enable / disable setting indicates that interrupt is possible, and the interrupt level setting value is the interrupt mask setting value. The software analysis apparatus according to claim 4, wherein when the value is higher, the processing unit determines that an interrupt is possible. 前記処理手段は、前記割込み関数が書き込みアクセスする変数を前記判定対象変数と判定し、前記判定対象関数が、前記判定対象変数に読み出しアクセスし、その次に前記判定対象変数に読み出し又は書き込みアクセスするまでに、前記割込み関数による割込みが可能であるか否かを判定することを特徴とする請求項1から5のいずれか1項に記載のソフトウェア解析装置。   The processing means determines that the variable to which the interrupt function has write access is the determination target variable, and the determination target function has read access to the determination target variable, and then has read or write access to the determination target variable. 6. The software analysis apparatus according to claim 1, wherein it is determined whether or not an interrupt by the interrupt function is possible. 前記処理手段は、前記割込み関数が、条件分岐のために第1の変数に読み出しアクセスを行う場合、前記第1の変数および前記第1の変数への前記読み出しアクセスの後に書き込みアクセスをする第2の変数を前記判定対象変数と判定し、前記判定対象関数が、前記第2の変数に書き込みアクセスし、その次に前記第1の変数に書き込みアクセスするまでに、前記割込み関数による割込みが可能であるか否かを判定することを特徴とする請求項1から5のいずれか1項に記載のソフトウェア解析装置。   When the interrupt function performs read access to the first variable for conditional branching, the processing means performs second write access after the read access to the first variable and the first variable. Can be interrupted by the interrupt function until the determination target function has write access to the second variable and then has write access to the first variable. 6. The software analysis apparatus according to claim 1, wherein it is determined whether or not there is any. 前記制御ソフトウェアを解析して、各関数がアクセスする変数および該アクセスが書き込みアクセスであるか読み出しアクセスであるかを示す情報を含む関数アクセス情報を保存する関数アクセス情報保存手段をさらに備えており、
前記処理手段は、前記判定対象変数および前記判定対象関数の判定に、前記関数アクセス情報を利用することを特徴とする請求項1から7のいずれか1項に記載のソフトウェア解析装置。
Analyzing the control software, further comprising function access information storing means for storing function access information including a variable accessed by each function and information indicating whether the access is a write access or a read access;
The software analysis apparatus according to claim 1, wherein the processing unit uses the function access information for determining the determination target variable and the determination target function.
請求項1から8のいずれか1項に記載のソフトウェア解析装置としてコンピュータを機能させることを特徴とするプログラム。   A program that causes a computer to function as the software analysis apparatus according to claim 1.
JP2011189321A 2011-08-31 2011-08-31 Software analysis apparatus and program Expired - Fee Related JP5848553B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011189321A JP5848553B2 (en) 2011-08-31 2011-08-31 Software analysis apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011189321A JP5848553B2 (en) 2011-08-31 2011-08-31 Software analysis apparatus and program

Publications (2)

Publication Number Publication Date
JP2013050892A JP2013050892A (en) 2013-03-14
JP5848553B2 true JP5848553B2 (en) 2016-01-27

Family

ID=48012875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011189321A Expired - Fee Related JP5848553B2 (en) 2011-08-31 2011-08-31 Software analysis apparatus and program

Country Status (1)

Country Link
JP (1) JP5848553B2 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3458796B2 (en) * 1999-10-18 2003-10-20 株式会社デンソー Interruption instruction check device and recording medium
JP2002312196A (en) * 2001-04-09 2002-10-25 Denso Corp Interrupt instruction check device and program

Also Published As

Publication number Publication date
JP2013050892A (en) 2013-03-14

Similar Documents

Publication Publication Date Title
US9280451B2 (en) Testing device
US8286135B2 (en) Performance visualization including hierarchical display of performance data
US8607246B2 (en) Multiprocessor circuit using run-time task scheduling
US6096089A (en) Power simulation system, power simulation method and computer-readable recording medium for recording power simulation program
US20120174020A1 (en) Indication of active window when switching tasks in a multi-monitor environment
EP3635563B1 (en) Application analysis with flexible post-processing
US20100223600A1 (en) Thread execution analyzer
US20110154127A1 (en) Test support system, method and computer program product, which optimize test scenarios to minimize total test time
US9690682B2 (en) Program information generating system, method, and computer program product
US9830731B2 (en) Methods of a graphics-processing unit for tile-based rendering of a display area and graphics-processing apparatus
US20200241992A1 (en) System and method for dynamic domain-specific sequence diagram visualization
CN111382044A (en) Locating method, locating device, electronic device and storage medium for performance bottleneck
US8769498B2 (en) Warning of register and storage area assignment errors
CN112181853A (en) Program debugging method, device and system
EP3748528A1 (en) Information processing device, information processing method, and recording medium
JP5848553B2 (en) Software analysis apparatus and program
CN113094052A (en) Application construction method and device, computer equipment and storage medium
CN115905040B (en) Counter processing method, graphics processor, device and storage medium
JP4971679B2 (en) Processor system and performance measurement method for processor system
US7318228B2 (en) System and method for task arbitration in multi-threaded simulations
KR20150087982A (en) Method and appratus for processing image by thread
JP4870956B2 (en) Embedded program generation method, embedded program development system, and information table section
CN114296774A (en) Application program storage method, application program calling device and storage medium
JP2016029547A (en) Execution module generation device and electronic control device
WO2020262257A1 (en) Bug identification assistance device, bug identification assistance method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150409

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150417

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150612

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: 20151030

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151127

R151 Written notification of patent or utility model registration

Ref document number: 5848553

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees