JP6534814B2 - INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND INFORMATION PROCESSING PROGRAM - Google Patents
INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND INFORMATION PROCESSING PROGRAM Download PDFInfo
- Publication number
- JP6534814B2 JP6534814B2 JP2015003081A JP2015003081A JP6534814B2 JP 6534814 B2 JP6534814 B2 JP 6534814B2 JP 2015003081 A JP2015003081 A JP 2015003081A JP 2015003081 A JP2015003081 A JP 2015003081A JP 6534814 B2 JP6534814 B2 JP 6534814B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- search
- address
- symbol
- extraction
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、情報を検索及び抽出して出力する情報処理装置、情報処理方法及び情報処理プログラムに関する。 The present invention relates to an information processing apparatus, an information processing method, and an information processing program which search, extract and output information.
ソフトウェア開発の際には、そのソフトウェアを動作させ又は組み込むハードウェアの構成要素に関する情報が必要な場合がある。 In software development, information on hardware components that operate or incorporate the software may be required.
ハードウェアの構成要素に関する情報として、代表的なものに、RAM(ランダムアクセスメモリ)に入力された値(以下、「RAM値」という。)がある。RAM値を取得する際に、システムやハードウェアの制約により、指定したアドレスのRAM値のみが取得できる簡易なRAMモニタ(以下、RAM値をモニタする装置をいう。)しか利用できないことがしばしばある。この場合、システム上で動作しているソフトウェアの状態をRAMモニタから取得するには、RAMに配置される変数のアドレスとサイズ等を、正しく設定する必要がある。 As representative information on hardware components, there is a value (hereinafter referred to as a "RAM value") input to a RAM (random access memory). When acquiring a RAM value, due to system or hardware restrictions, often only a simple RAM monitor (hereinafter referred to as a device for monitoring a RAM value) that can acquire only a RAM value at a specified address can be used. . In this case, in order to obtain the state of software operating on the system from the RAM monitor, it is necessary to correctly set the address, size, etc. of the variable arranged in the RAM.
また、変数のアドレスとサイズは、プログラムが正しくコンパイルできているか否かの確認にも使用される。例えば、変数サイズが正しいサイズとなっていることの確認や、構造体メンバが指定したアラインに配置(構造体メンバのアドレスを処理系にとって最適な境界に整列)されていることの確認等である。 Also, the address and size of the variable are also used to check if the program compiles correctly. For example, confirmation that the variable size is the correct size, confirmation that the structure member is arranged at the specified alignment (arrangement of the structure member address to the optimum boundary for the processing system), etc. .
そのため、変数に関するアドレスやサイズ等の情報を確実に求めることが重要になる。 Therefore, it is important to reliably obtain information such as the address and size of a variable.
一般的に、C言語によるプログラム開発では、静的領域に宣言された変数のアドレスとサイズは、プログラムリンク時にマップファイルを出力することで知ることができる。マップファイルにはプログラムに定義されている変数のアドレスとサイズが記述されており、変数の型がchar、int、longといった単純型の場合は、マップファイルから変数のアドレスとサイズを得ることができる。 Generally, in C program development, the address and size of a variable declared in a static area can be known by outputting a map file at program link time. The map file describes the addresses and sizes of the variables defined in the program, and when the variable type is a simple type such as char, int or long, the address and size of the variable can be obtained from the map file .
一方、特許文献1には、値の四則演算手段をデバッガに持たせることにより、変数が構造を持つ場合でも、変数シンボル名称、タイプシンボル名称、タイプフィールド名称を使い、最終アクセス対象のアドレスを計算式の形で記述できるということが述べられている。
On the other hand, according to
ここで、本発明に関連して、正規表現を用いた文字列のパターンマッチングについて以下に説明する。例えば非特許文献1に記述されているように、正規表現とは、文字列の集合を一つの文字列で表現する方法の一つであり、テキストエディタ、ワードプロセッサをはじめとするアプリケーションソフトでパターンマッチ文字列を表すために使用されている。ほとんどのプログラミング言語では、構文又はライブラリによって正規表現を使うことができるようになっている。構文やライブラリに正規表現を備えたプログラミング言語やユーティリティとして、grep、AWK、sed、Perl、Tcなどがある。また、プログラミング言語の開発などに用いるlexも正規表現を使う。正規表現を用いた文字列はパターンマッチングにより検索することができる。
Here, in the context of the present invention, pattern matching of character strings using regular expressions will be described below. For example, as described in Non-Patent
また、本明細書中における「シンボル」という語は、情報工学やソフトウェア工学で用いられる用語であり、シンボル名という名前の付けられた、データに含まれる一塊の記号やプログラミングで用いられる内容を表わす。 In addition, the term "symbol" in the present specification is a term used in information engineering and software engineering, and represents a block of symbols included in data or content used in programming, named as a symbol name. .
しかし、前述の、一般的にC言語によるプログラム開発において用いられる上記方法では、変数の型が構造体、共用体、ビットフィールド又は配列の場合、マップファイルには変数の先頭アドレスと変数全体のサイズのみが出力される。そのため、変数に含まれている各要素(構造体や共用体のメンバ、並びに配列要素)のアドレスとサイズをマップファイルから知ることはできない。そのため、このような場合は、ソースコードを読み解き、各要素のオフセットアドレス(相対的アドレス)を手計算で算出し、マップファイルに出力される変数の先頭アドレスとオフセットアドレスを加算して求めなければならなかった。 However, in the above-described method generally used in C program development described above, when the type of the variable is a structure, union, bit field or array, the map file contains the start address of the variable and the size of the entire variable. Is output. Therefore, the address and size of each element (members of structures and unions, and array elements) contained in variables can not be known from the map file. Therefore, in such a case, it is necessary to read the source code, manually calculate the offset address (relative address) of each element, and add the start address of the variable to be output to the map file and the offset address. did not become.
また、特許文献1に記述された方法においては、変数が構造を持つ場合において、最終アクセス対象のアドレスを演算式の形でシンボリックに指定することができるとしても、この作業は技術的にハードルが高い難しい作業である。
Further, in the method described in
本発明は、変数等のシンボルについての情報を、確実に、容易に、しかも短時間に取得することができる情報処理装置、情報処理方法及び情報処理プログラムを提供することにある。 An object of the present invention is to provide an information processing apparatus, an information processing method, and an information processing program capable of acquiring information about symbols such as variables reliably, easily, and in a short time.
入力されたデバッグ情報を以降の処理用の信号にするデバッグ情報入力手段と、入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にする検索条件入力手段を備える。そして、前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成する前処理手段を備える。さらに、前記検索条件により、前記デバッグ情報について前記検索をし、前記項目について、前記検索により検索された内容に対応する抽出情報の抽出をする検索抽出手段と、前記抽出情報の出力をする抽出情報出力手段を備える。 The apparatus comprises debug information input means for converting the input debug information into a signal for subsequent processing, and search condition input means for converting the input search condition used when performing a search into a signal for subsequent processing. Then, from the offset address for the symbol contained in the debug information, an address for the symbol is obtained, and preprocessing is provided to generate address information including information in which the address is associated with the symbol. Furthermore, search extraction means for performing the search for the debug information according to the search condition and for extracting the extraction information corresponding to the contents searched for by the search for the item; and extraction information for outputting the extraction information It has an output means.
本実施形態の情報処理装置により、変数等のシンボルについての情報を、確実に、容易に、しかも短時間に取得することができる。 The information processing apparatus according to the present embodiment can reliably and easily obtain information on symbols such as variables in a short time.
第一実施形態は、本発明の最小構成の情報処理装置に関する実施形態である。
[構成と動作]
図1は、本実施形態の情報処理装置の構成と動作を表わす概念図である。
The first embodiment is an embodiment related to the information processing apparatus with the minimum configuration of the present invention.
[Configuration and operation]
FIG. 1 is a conceptual diagram showing the configuration and operation of the information processing apparatus of this embodiment.
本実施形態の情報処理装置1は、抽出情報出力装置90を備える。
The
抽出情報出力装置90は、デバッグ情報入力部100と、検索条件入力部110と、抽出項目指定部160と、前処理部150と、検索抽出部120と、抽出情報出力部140とを備える。
The extraction
デバッグ情報入力部100は、図示しないコンパイラ/リンカによるコンパイル/リンクにより出力される、図示しないデバッガによるデバッグのために用いる情報(以下、「デバッグ情報」という。)を、以降の処理用の信号にする。デバッグ情報を含む信号は、前処理部150に送られる。
The debug
検索条件入力部110は、入力された検索条件を以降の処理用の信号にする。検索条件を含む信号は、検索抽出部120に送られる。
The search
前処理部150は、デバッグ情報入力部100中に含まれる、シンボルのオフセットアドレスを用いて、そのシンボルのアドレスを求め、そのシンボルと関連付ける。そして、そのシンボルと関連付けたアドレスを含むアドレス情報を生成する。アドレス情報を含む信号は、検索抽出部120に送られる。
The preprocessing
検索抽出部120は、検索条件入力部110から送られた検索条件により、前処理部150から送られたアドレス情報を検索し、検索した内容について、該当する情報を抽出する。抽出された情報を含む信号は、抽出情報出力部140に送られる。
The
抽出情報出力部140は、検索抽出部120から送られた情報をもとに、抽出された情報を出力する。
[効果]
本実施形態の情報処理装置は、シンボルについての情報を、確実に、容易に、しかも短時間に取得することができる。
<第二実施形態>
第二実施形態は、デバッグ情報に含まれる文字列の中から検索条件として入力される正規表現により記述された文字列と一致するものを検索し、その検索された文字列に対応する情報を抽出する情報処理装置に関する実施形態である。
[構成と動作]
図2は、本実施形態の情報処理装置の構成を表わす概念図である。
The extraction
[effect]
The information processing apparatus according to the present embodiment can acquire information on symbols reliably, easily, and in a short time.
Second Embodiment
In the second embodiment, the character string included in the debug information is searched for one that matches the character string described by the regular expression input as the search condition, and the information corresponding to the searched character string is extracted This embodiment relates to an information processing apparatus.
[Configuration and operation]
FIG. 2 is a conceptual diagram showing the configuration of the information processing apparatus of the present embodiment.
本実施形態の情報処理装置1は、抽出情報出力装置90を備える。
The
抽出情報出力装置90は、デバッグ情報入力部100と、検索条件入力部110と、抽出項目指定部160と、前処理部150と、検索抽出部120と、処理部130と、抽出情報出力部140とを備える。
The extraction
デバッグ情報入力部100は、入力されたデバッグ情報を以降の処理用の信号にする。その信号は、前処理部150に送られる。
The debug
検索条件入力部110は、入力された検索条件を以降の処理用の信号にする。その信号はは、検索抽出部120に送られる。
The search
抽出項目指定部160は、検索抽出部120において、検索される内容について抽出する、オフセットアドレスを用いて算出したアドレスを含む抽出項目を指定する。指定された抽出項目を含む信号は検索抽出部120に送られる。
The extraction
前処理部150は、デバッグ情報入力部100から送られるデバッグ中に含まれる、シンボルのオフセットアドレスを用いて、そのシンボルのアドレスを求め、そのシンボルと関連付ける。また、デバッグ情報中に含まれるオフセットアドレス以外の情報の一部について、シンボルと関連付ける。これらの、シンボルと関連付けられた情報を含む信号は、検索抽出部120に送られる。
The
検索抽出部120は、検索条件入力部110から送られる検索条件により、前処理部150から送られたアドレス情報について検索する。そして、抽出項目指定部160において指定された抽出項目について、検索された内容に対応する情報を抽出する。抽出された情報は処理部130に送られる。
The
処理部130は、検索抽出部120から送られた情報を処理する。処理後の信号は、抽出情報出力部140に送られる。
The
抽出情報出力部140は、処理部130から送られた情報をもとに、抽出された情報を出力する。
The extraction
デバッグ情報入力部100から入力されるデバッグ情報は、図示しないデバッガや、やはり図示しないデバッガ情報を記録した記録装置等から入力される。
The debug information input from the debug
そのデバッグ情報は、使用するデバッガの種類により異なる。デバッグ情報は、シンボル名を利用してデバッグを行うシンボリックデバッガでデバッグを行う場合には、典型的には、シンボル情報、型情報及びソースコードと行番号情報である。シンボル情報は、シンボルの、シンボル名、アドレス、サイズ、種類及びスコープなどである。型情報は、型の、名前、種類、サイズ、リンクされている他の型、子供型、オフセット、関数の呼び出し規約等である。 The debugging information varies depending on the type of debugger used. The debugging information is typically symbol information, type information, source code, and line number information when debugging is performed using a symbolic debugger that performs debugging using symbol names. The symbol information includes the symbol name, address, size, type, and scope of the symbol. Type information includes type name, type, size, other linked types, child types, offsets, function calling conventions, and so on.
デバッグ情報は、基本的にバイナリ形式で記述されているが、シンボル名はデバッグ情報に文字列として格納されている。 The debugging information is basically described in binary format, but the symbol name is stored as a string in the debugging information.
検索条件入力部110から入力される検索条件は、コンピュータ等のキーボードにより作業者の操作により入力されても、検索条件を記録させておいた図示しない外部記録装置からの信号により入力されても構わない。
The search conditions input from the search
その検索条件における検索対象は文字列により記述される。検索対象は、出力させたいシンボルの名前(変数名、メンバ名、配列要素等)をC言語表記で正規表現により記述したものを用いる。図3は正規表現を用いた検索対象の入力例である。同図には、var1から始まる変数を正規表現により指定する場合の入力例を示してある。 The search target in the search condition is described by a character string. The search target uses the name (variable name, member name, array element, etc.) of the symbol to be output described by a regular expression in C language notation. FIG. 3 shows an example of search target input using a regular expression. The figure shows an example of input when a variable beginning with var1 is specified by a regular expression.
検索抽出部120における検索及び抽出は、デバッグ情報入力部100から送られるデバッグ情報、検索条件入力部110から送られる検索条件及び抽出項目指定部160から送られる抽出項目のすべてがそろってから行う。これらの情報は、典型的には、図示しない記録部に記録させておき、その記録させておいた情報を読み込むことにより行う。
The search and extraction in the search and
検索抽出部120における検索は、検索対象を表わす文字列と、デバッグ情報に格納された文字列との一致を判定することにより行う。一致する場合に、その一致した文字列に対応する情報を抽出する。検索対象を表わす文字列を正規表現により記述することにより、ソフトウェア開発において共通化され広く一般的に用いられる、文字列の一致による検索プログラムを用いることができる。これにより、単なる情報の羅列に見えるデバッグ情報の中から、検索条件の文字列を容易に検索し、その文字列に対応する情報を抽出することができる。
The search in the
抽出項目についての抽出情報の抽出及び出力は、例えば、以下のように行うことができる。 Extraction and output of extraction information for an extraction item can be performed, for example, as follows.
変数の型が単純型の場合は、検索対象として入力された変数を表わす文字列のシンボル名と文字列が一致したシンボル名についてのアドレス等を抽出し、出力する。 If the type of the variable is a simple type, an address etc. is extracted and output for a symbol name whose character string matches the symbol name of the character string representing the variable input as the search target.
変数の型が構造体、共用体、ビットフィールドの場合には、これらについて抽出した情報よりこれらが持つメンバのオフセットアドレス(相対的アドレス)を取得し、メンバのアドレスを自動算出し出力する。構造体が構造体で構成され入れ子となっている場合には、さらにその子となる構造体のメンバとオフセットを取得しアドレスを自動算出し出力する。 If the type of the variable is a structure, union or bit field, the offset address (relative address) of the member they possess is obtained from the information extracted about them, and the address of the member is automatically calculated and output. If the structure is composed of structures and is nested, then the members and offsets of the child structures are obtained, and the address is automatically calculated and output.
また、変数やそのメンバが配列の場合には、配列要素毎にアドレスを出力する。 If the variable or its member is an array, an address is output for each array element.
メンバ名や配列の要素名(シンボル名)はC言語表記で出力し、各要素に対して詳細アドレス情報(アドレスとサイズ、ビットフィールドの場合にはビット位置とビット幅)を出力し、開発者にとって直観的に理解できる形式とする。また抽出情報は膨大な量となることもある。このような場合は、シンボル名による検索、絞りこみ機能を持たせる方がより好ましい。この際の検索条件は正規表現で記述することがでる。絞りこみ機能により、必要な変数情報のみを絞り込んで出力することができる。構造体情報が幾重にも入れ子となっている場合でも、末端のメンバ名を検索条件として与えることで、そのメンバを含む変数の情報を取得することができる。 The member name and element name (symbol name) of the array are output in C language notation, detailed address information (address and size, bit position and bit width in the case of bit field) are output for each element, and the developer Form that can be intuitively understood. Also, the extraction information may be enormous. In such a case, it is more preferable to have a search by symbol name and a narrowing function. The search condition at this time can be described by a regular expression. The narrowing function can narrow down and output only necessary variable information. Even when the structure information is nested in multiple layers, information on variables including the members can be acquired by giving the member name at the end as a search condition.
抽出情報はバイナリ形式で記述されているので、文字列に変換されて出力される。この際の変換には、一般に広く用いられている変換ソフトウェアを用いる。 Since the extraction information is described in binary format, it is converted to a character string and output. For conversion at this time, generally used conversion software is used.
抽出項目指定部160において指定される抽出項目は、入力により指定しても、予め設定された値を用いてもよい。この際の入力は、コンピュータ等のキーボードにより作業者により行われても、予め抽出項目を記録させておいた、図示しない記録装置からの信号により行われても構わない。
[処理フロー]
図4は本実施形態の情報処理装置における情報処理のフローを表わす概念図である。
The extraction item designated in the extraction
Processing flow
FIG. 4 is a conceptual diagram showing the flow of information processing in the information processing apparatus of the present embodiment.
まず、デバッグ情報入力部100は、入力されたデバッグ情報を以降の処理用の信号Vaにする(S201)。信号Vaは、前処理部150に送られる。
First, the debug
次に、検索条件入力部110は、入力された検索条件を以降の処理用の信号Vbにする(S202)。信号Vbは検索抽出部120に送られる。
Next, the search
そして、抽出項目指定部160において、検索抽出部120における検索対象について抽出される抽出項目が指定される(S203)。指定された抽出項目を含む信号Vcは、検索抽出部120に送られる。
Then, the extraction
前処理部150は、デバッグ情報入力部100から送られるデバッグ中に含まれる、シンボルのオフセットアドレスを用いて、そのシンボルのアドレスを求め(S204)、そのシンボルと関連付ける。また、デバッグ情報中に含まれる、オフセットアドレス以外の情報の一部について、シンボルと関連付ける。そして、シンボルと関連付けたアドレスを含むアドレス情報を生成する。アドレス情報を含む信号Vdは、検索抽出部120に送られる。
The
検索抽出部120は、検索条件入力部110から送られた検索条件をもとに、前処理部150から送られたアドレス情報について検索し、検索条件に合致する内容を求める。合致する内容がある場合には、抽出項目指定部160より送られた抽出項目について、その合致した内容に対応する情報を抽出する。(S205)。抽出した情報を含む信号Veは、処理部130に送られる。
The
処理部130は、検索抽出部120から送られた情報を出力させるための信号Vfに処理する(S206)。信号Vfは抽出情報出力部140に送られる。
The
抽出情報出力部140は、処理部130から送られた上記信号をもとに、抽出された情報を出力する(S207)。
The extraction
同図において、S201乃至S203のステップは順番を入れ替えることもできる。
[効果]
本実施形態の情報処理装置は、まず、第一実施形態の情報処理装置と同様に、変数等のシンボルについての情報を、確実に、容易に、しかも短時間に取得することができる。
In the figure, the steps of S201 to S203 can be switched in order.
[effect]
The information processing apparatus according to the present embodiment can acquire information on symbols such as variables reliably and easily in a short time, as in the information processing apparatus according to the first embodiment.
本実施形態の情報処理装置は、手作業を必要とせず、また特許文献1に記載された方法のような作業の困難性もないので、これらの効果のうち、シンボルについての情報を容易に、短時間に取得することができる点については特に補足しない。以下には、これらの効果のうち、シンボルについての情報を確実に取得できる点について補足説明する。
The information processing apparatus according to the present embodiment does not require a manual operation and does not have the difficulty of operation as in the method described in
まず、本実施形態の情報処理装置は、シンボルである変数及びその要素が構造体である場合にも、そのアドレスを、確実に知ることができる。たとえば、構造体メンバのオフセットアドレスはコンパイル時のオプションに依存したアドレス境界へアライメントされることがある。この結果、メンバ間に予期せぬパディングが発生することがあるが、ソースコードを読むだけではパディングの発生を予見することは難しい。本実施形態の情報処理装置で用いるデバッグ情報における構造体情報には、アライメント後のオフセットアドレスが記録されているため、確実なメンバアドレスを取得することができる。そのため、本実施形態の情報処理装置により取得されたアドレスは、従来の手作業より取得されたアドレスよりも、格段に高い信頼性を有する。 First, the information processing apparatus according to the present embodiment can reliably know the address of a variable that is a symbol and its address even when the element is a structure. For example, the offset addresses of structure members may be aligned to address boundaries depending on compile time options. As a result, unexpected padding may occur between members, but it is difficult to predict the occurrence of padding only by reading the source code. Since offset addresses after alignment are recorded in the structure information in the debug information used in the information processing apparatus of the present embodiment, a reliable member address can be acquired. Therefore, the address acquired by the information processing apparatus of the present embodiment has much higher reliability than the address acquired by the conventional manual operation.
それに加えて、本実施形態の情報処理装置は、文字列の一致により検索するので、構造体の情報がさらに構造体の情報を含み、幾重にも入れ子となっている場合でも、末端のメンバ名を検索条件とすることで、そのメンバを含む変数のアドレスを取得できる。 In addition to that, since the information processing apparatus according to the present embodiment performs a search based on a character string match, even when the structure information further includes structure information and is nested in multiple layers, the end member name By using as the search condition, it is possible to obtain the address of the variable including the member.
この効果を、特許文献1に記述された方法及び一般的なシンボリックデバッガを用いた場合と比較して具体的に説明すると下記のようになる。
The effects will be specifically described below in comparison with the method described in
一般的なシンボリックデバッガば、例えば、シンボルを表わす情報としてvar1.m_union.m_bitf.m_bitf1を入力すれば、そのシンボルのアドレス等情報を取得できる。また、var1が分かっていればそこから“var1”から“var1.m_union”を導き出し、それから“var1.m_union.m_bitf”を導き出し、さらにそれから“var1.m_union.m_bitf.m_bitf1”を導き出すことも可能である。しかし、“m_bitf1”のみが分かっている状況で、“var1.m_union.m_bitf.m_bitf1”を導き出すことはできない。そのため、該当するシンボルのアドレス等情報を求めることはできない。 In a general symbolic debugger, for example, var1. m_union. m_bitf. If m_bitf1 is input, the address etc. of the symbol can be acquired. Also, if var1 is known, it is possible to derive "var1.m_union" from "var1", derive "var1.m_union.m_bitf" from it, and further derive "var1.m_union.m_bitf.m_bitf1" from it. is there. However, in a situation where only "m_bitf1" is known, "var1.m_union.m_bitf.m_bitf1" can not be derived. Therefore, information such as the address of the corresponding symbol can not be obtained.
また、特許文献1に記述された方法では、例えばシンボルを表わす情報として“var1.m_union.m_bitf.m_bitf1”を指定すれば望みのアドレス0x0800010が取得できるとされている。しかしながら、この“var1.m_union.m_bitf.m_bitf1”を導き出すにはソースコードを読み解く必要があり、構造が複雑であればあるほどその作業が困難となる。
In the method described in
本実施形態の情報処理装置は、文字列の一致によりシンボルを検索し、そのシンボルに対応する情報を抽出する。そのため、シンボルを表わす情報として“m_bitf1”を指定するだけで容易に“var1.m_union.m_bitf.m_bitf1”を導き出し、それに対応する目的の情報の取得を確実に行うことができる。この効果は、上記の、一般的なシンボリックデバッガによる方法や特許文献1に記載された方法では得られない。
<第三実施形態>
第三実施形態は、シンボルのアドレス及びサイズを含む情報の詳細マップを生成する情報処理装置に関する実施形態である。
[構成と動作]
図5は、本実施形態の情報処理装置の構成を表わす概念図である。
The information processing apparatus according to the present embodiment searches for a symbol based on a character string match and extracts information corresponding to the symbol. Therefore, "var1.m_union.m_bitf.m_bitf1" can be easily derived simply by specifying "m_bitf1" as information representing a symbol, and acquisition of target information corresponding thereto can be reliably performed. This effect can not be obtained by the above-mentioned general symbolic debugger method or the method described in
Third Embodiment
The third embodiment is an embodiment relating to an information processing apparatus that generates a detailed map of information including the address and size of a symbol.
[Configuration and operation]
FIG. 5 is a conceptual diagram showing the configuration of the information processing apparatus of the present embodiment.
本実施形態の情報処理装置1は、抽出情報出力装置90を備える。
The
抽出情報出力装置90は、デバッグ情報入力部100と、前処理部150と、検索条件入力部110と、抽出項目指定部160と、検索抽出部120と、処理部130と、抽出情報出力部140とを備える。
The extraction
デバッグ情報入力部100は、入力されたデバッグ情報を以降の処理用の信号にする。その信号は、前処理部150に送られる。
The debug
前処理部150は、デバッグ情報入力部100から送られたデバッグ情報を、検索抽出部120における検索に適した情報に変換する。前処理部150は、例えば、プログラムに含まれる全変数のアドレスとサイズの情報を作成する。変数の型が構造体、共用体、ビットフィールド、配列の場合には、要素毎に詳細アドレス情報(アドレスとサイズ、ビットフィールドの場合はビット位置とビット幅)を作成する。作成された情報を含む信号は、検索抽出部120に送られる。
The
検索条件入力部110からは、後に例示する詳細マップファイルに出力させたいシンボルのシンボル名(変数名、メンバ名、配列要素)がC言語表記で記述され、入力される。このとき検索対象は正規表現により記述される。検索条件入力部110は、入力された検索条件を、以降の処理用の信号にする。その信号は、検索抽出部120に送られる。
From the search
抽出項目指定部160は、検索抽出部120において抽出する抽出項目を指定する。指定された抽出項目は検索抽出部120に送られる。
The extraction
抽出項目指定部160は、検索抽出部120において抽出する抽出項目を指定する。指定された抽出項目は検索抽出部120に送られる。
The extraction
検索抽出部120は、検索条件入力部110から送られた検索条件により、前処理部150から送られた情報を検索する。検索条件として設定されたシンボル名が検索された場合に、そのシンボル名について、抽出項目に該当する情報を抽出する。抽出項目を含む信号は処理部130に送られる。
The
処理部130は、検索抽出部120から送られた情報を処理し、後に例を示す詳細マップを出力するための信号にする。その信号は、抽出情報出力部140に送られる。
The
抽出情報出力部140は、処理部130から送られた情報をもとに、詳細マップを出力する。
The extraction
デバッグ情報、検索及び抽出、抽出情報の出力、検索条件及び抽出項目についての本実施形態における説明以外の説明は、第二実施形態の情報処理装置の説明と同様である。従い、その説明を省略する。
[処理フロー]
図6は、本実施形態の情報処理装置における情報処理のフローを表わす概念図である。
The explanation of the debug information, the search and extraction, the output of the extraction information, the search condition and the extraction item other than the explanation in the present embodiment is the same as the description of the information processing apparatus of the second embodiment. Therefore, I omit the explanation.
Processing flow
FIG. 6 is a conceptual diagram showing a flow of information processing in the information processing apparatus of the present embodiment.
まず、デバッグ情報入力部100は入力されたデバッグ情報を以降の処理用の信号Vaにする(S301)。信号Vaは、検索抽出部120に送られる。
First, the debug
次に、検索条件入力部110は、入力された検索条件を以降の処理用の信号Vbにする(S302)。信号Vbは検索抽出部120に送られる。
Next, the search
そして、抽出項目指定部160において、検索抽出部120における検索対象について抽出される抽出項目が指定される(S303)。指定された抽出項目を含む信号Vcは、検索抽出部120に送られる。
Then, the extraction
次に、前処理部150は、デバッグ情報入力部100から送られたデバッグ情報を、検索抽出部120における検索に適した情報に変換する(S304)。本処理については後述する。変換された情報を含む信号Vdは、検索抽出部120に送られる。
Next, the
検索抽出部120は、検索条件入力部110から送られた検索条件をもとに、前処理部120から送られた情報について検索し、検索条件に合致する内容を求める。合致する内容がある場合には、抽出項目指定部160より送られた抽出項目について、その合致した内容に対応する情報を抽出する。(S305)。抽出した情報を含む信号Veは、処理部130に送られる。
Based on the search condition sent from the search
処理部130は、検索抽出部120から送られた情報を出力させるための信号Veに処理する(S306)。信号Vfは抽出情報出力部140に送られる。
The
抽出情報出力部140は、処理部130から送られた上記信号をもとに、抽出された情報を出力する(S307)。
The extraction
同図において、S301乃至S304のステップは、S302がS301の後になるという条件のもとに、それらの順番を入れ替えることもできる。 In the same figure, in the steps of S301 to S304, their order can be switched under the condition that S302 is after S301.
図7は、図6のS304のステップにおける処理の例を表わす概念図である。ここでは、シンボルのすべてのメンバについて、アドレス、サイズ、ビット位置及びビット幅について表示する詳細情報一覧データを求める場合を示す。この場合の詳細情報一覧が、上述の、前処理部150が変換する、検索抽出部120における検索に適した情報である。
FIG. 7 is a conceptual diagram showing an example of processing in step S304 of FIG. Here, a case is shown where detailed information list data to be displayed for address, size, bit position and bit width is obtained for all members of a symbol. The detailed information list in this case is information suitable for the search in the
まず、シンボルの基本アドレス(シンボルのメンバではなく最上位のシンボルのアドレスをいう。)を、デバッグ情報を検索し、抽出する(S321)。 First, debug information is searched for and extracted (S321). The basic address of the symbol (the address of the highest symbol rather than the members of the symbol) is searched (S321).
次に、シンボルについて、1階層下のメンバがあるかを判定する(S322)。 Next, it is determined whether there is a member one level lower than the symbol (S322).
1階層下のメンバがある場合には、そのうちの一を特定する(S323)。1階層下のメンバがない場合には終了する。 If there is a member one level lower, one of them is identified (S323). If there is no member one level lower, the process ends.
そして、特定したメンバについて、オフセットアドレスとメンバの型を、デバッグ情報を検索し抽出する(S324)。 Then, with respect to the identified member, the offset address and the type of the member are searched and extracted for debugging information (S324).
次に、そのメンバについて、基本アドレスにオフセットアドレスを足し合わせて、アドレスを求める(S325)。アドレスは、そのメンバのシンボル名と関連付けて記録される。 Next, for the member, an offset address is added to the basic address to obtain an address (S325). The address is recorded in association with the symbol name of the member.
さらに、S322において求めたメンバの型が、ビットフィールドかを判定する(S326)。 Furthermore, it is determined whether the type of the member obtained in S322 is a bit field (S326).
メンバの型がビットフィールドであると判定した場合は、アドレス、サイズ、ビット位置及びビット幅を、そのメンバのシンボル名と関連づけて記録する(S327)。その後、S330に進む。 If it is determined that the type of the member is a bit field, the address, size, bit position and bit width are recorded in association with the symbol name of the member (S327). Then, it progresses to S330.
メンバの型がビットフィールドではないと判定した場合には、そのメンバの型が構造型かを判定する(S328)。 If it is determined that the type of the member is not a bit field, it is determined whether the type of the member is a structured type (S328).
そのメンバの型が構造型でない場合には、アドレス及びサイズを、そのメンバのシンボル名と関連付けて記録する(S329)。その後330に進む。 If the type of the member is not a structural type, the address and size are recorded in association with the symbol name of the member (S329). Then go to 330.
そのメンバの型が構造型の場合には、S323に進む。。 If the type of the member is a structural type, the process advances to step S323. .
次に、同じ階層のメンバについて、アドレスが未記録のメンバがあるか判定する(S330)。 Next, with respect to members of the same hierarchy, it is determined whether there is a member whose address is unrecorded (S330).
同じ階層のメンバについて、アドレスが未記録のメンバがあると判定された場合には、その未記録のメンバのうちの一を特定し、その特定したメンバについて以降の処理を行うことを決める(S331)。そして、S324に進む。 If it is determined that there is an unrecorded member in the address for a member of the same hierarchy, one of the unrecorded members is identified, and it is decided to perform the subsequent processing for the identified member (S331) ). Then, the process proceeds to S324.
同じ階層のメンバについて、アドレスが未記録のメンバがないと判定された場合には、一つ上の階層のメンバについて、アドレスが未記録のメンバがあるかを判定する(332)。 If it is determined that there is no unrecorded member for the address for the members of the same hierarchy, then it is determined whether there is an unrecorded member for the address for the next higher layer member (332).
一つ上の階層のメンバについて、アドレスが未記録のメンバがある場合には、そのメンバのうちの一を特定し、その特定されたメンバについて以降の処理を行うことを決める(S333)。そして、S323に進む。 If there is a member whose address is unrecorded for a member of the next higher hierarchy, one of the members is identified, and it is decided to carry out the subsequent processing for the identified member (S333). Then, the process proceeds to step S323.
一つ上の階層のメンバについて、アドレスが未記録のメンバがない場合には、さらに上の階層のメンバについて、アドレスが未記録のメンバがあるかを判定する(S334)。 If there is no member whose address is unrecorded for the member of the next higher hierarchy, it is determined whether or not there is a member whose address is not yet recorded for the members of the further higher hierarchy (S334).
さらに上の階層のメンバについて、アドレスが未記録のメンバがあると判定された場合には、その未記録のメンバのうちの一を特定し、その特定したメンバについて以降の処理を行うことを決める(S335)。そして、S323に進む。 Further, if it is determined that there is an unrecorded member in the address for the member of the upper hierarchy, one of the unrecorded members is identified, and it is decided to perform the subsequent processing for the identified member. (S335). Then, the process proceeds to step S323.
さらに上の階層のメンバについて、アドレスが未記録のメンバがないと判定された場合には、終了する。 If it is determined that there is no member whose address is not yet recorded for the member of the upper hierarchy, the processing is ended.
こうして、シンボルについてのすべてのメンバについて、アドレス及びサイズ、並びに型がビットフィールドの場合におけるビット位置及びビット幅が、シンボル名と関連づけて記録される。 Thus, for all members of the symbol, the address and size, and bit position and bit width in the case of type bit field, are recorded in association with the symbol name.
図8a乃至図8gは、図7に記載したいくつかの処理について、処理後のデータの状況の例を示す概念図である。このデータは出力されず前処理部150の図示しない記録部に記録されるだけのものでもよいが、ここでは理解容易のため、そのデータが出力された場合を示してある。
8a to 8g are conceptual diagrams showing an example of the status of data after processing for some of the processing described in FIG. This data may not be output but may only be recorded in a recording unit (not shown) of the
また、同図では、シンボルが以下の内容の場合について例示してある。 Also, in the figure, symbols are illustrated for the following contents.
・シンボル名var1のすべてのメンバについて、アドレス、サイズ、ビット位置及びビット幅について表示する詳細情報一覧を表示する。この詳細情報一覧が上述の「検索抽出部120における検索に適した情報」である。
Display a list of detailed information to be displayed for address, size, bit position and bit width for all members of the symbol name var1. This detailed information list is the above-mentioned "information suitable for search in the
・var1は、m_structとm_unionの2つのメンバをもつ。 Var1 has two members, m_struct and m_union.
・m_structはm_struct[0]とm_struct[1]の2つの配列を持つ。 M_struct has two arrays of m_struct [0] and m_struct [1].
・m_struct[0]は、m_str1、m_str2及びm_str3の3つのサブメンバをもつ。 M_struct [0] has three submembers m_str1, m_str2 and m_str3.
・m_struct[1]は、m_str1、m_str2及びm_str3の3つのサブメンバをもつ。 M_struct [1] has three submembers m_str1, m_str2 and m_str3.
・m_unionは、m_bitfとm_arrayの2つのサブメンバをもつ。 M_union has two submembers of m_bitf and m_array.
・m_bitfは、m_bitf1、m_bitf2及びm_bitf3の3個のビットフィールドで表されたサブメンバをもつ。 M_bitf has a sub-member represented by three bit fields of m_bit f1, m_bit f2 and m_bit f3.
・m_arrayは、m_array[0]、m_array[1]、m_array[2]及びm_array[3]の4つの配列をもつ。 M_array has four arrays of m_array [0], m_array [1], m_array [2] and m_array [3].
・var1.m_union.m_bitf.m_bitf3とvar1.m_union.m_array.m_array[0]は共用体を構成する。 ・ Var1. m_union. m_bitf. m_bitf3 and var1. m_union. m_array. m_array [0] constitutes a union.
図8aは、S321の処理後のデータの状況を表わす概念図である。シンボル名var1について基本アドレスが抽出されている。 FIG. 8a is a conceptual diagram showing the state of data after the process of S321. A basic address has been extracted for the symbol name var1.
図8bは、1回目のS324の処理後のデータの状況を表わす概念図である。シンボル名がvar1.m_struct[0]のメンバについて、オフセットアドレスと型が表示されている。 FIG. 8b is a conceptual diagram showing the state of data after the first processing of S324. The symbol name is var1. The offset address and type are displayed for the members of m_struct [0].
図8cは、1回目のS325の処理後のデータの状況を表わす概念図である。シンボル名がvar1.m_struct[0]のメンバについて、アドレスと型が表示されている。
FIG. 8 c is a conceptual diagram showing the state of data after the first processing of
図8dは、同図に示した時点でのデータの状況を表わす概念図である。var1.m_struct[0].m_str1、var1.m_struct[0].m_str2及びvar1.m_struct[0].m_str3のシンボル名をもつ3つのメンバについて、アドレスとサイズが表示されている。 FIG. 8 d is a conceptual diagram showing the state of data at the time shown in the figure. var1. m_struct [0]. m_str1, var1. m_struct [0]. m_str2 and var1. m_struct [0]. Addresses and sizes are displayed for three members with symbol names of m_str3.
図8eは、同図に示した時点でのデータの状況を表わす概念図である。さらに、var1.m_struct[1].m_str1、var1.m_struct[1].m_str2及びvar1.m_struct[1].m_str3のシンボル名をもつ3つのメンバについて、アドレスとサイズが表示されている。 FIG. 8 e is a conceptual diagram showing the state of data at the time shown in the figure. Furthermore, var1. m_struct [1]. m_str1, var1. m_struct [1]. m_str2 and var1. m_struct [1]. Addresses and sizes are displayed for three members with symbol names of m_str3.
図8fは、同図に示した時点でのデータの状況を表わす概念図である。3つのビットフィールドで表されたメンバについて、アドレス、サイズ、ビット位置及びビット幅が表示されている。 FIG. 8 f is a conceptual diagram showing the state of data at the point shown in the figure. The address, size, bit position and bit width are displayed for the members represented by the three bit fields.
こうして、図7に概念図を表わした処理を順次行うことにより、最終的には、図8gに概念図を表わした内容のデータが記録され、処理が終了する。 Thus, by sequentially performing the processing shown in the conceptual diagram in FIG. 7, finally, the data of the content representing the conceptual diagram in FIG. 8g is recorded, and the processing is completed.
なお、図8gに表わしたデータにおいて、var1.m_union.m_bitf.m_bitf3とvar1.m_union.m_array.m_array[0]とのアドレスが同じなのは、この2つのシンボルが同じ共用型のためである。 In the data shown in FIG. m_union. m_bitf. m_bitf3 and var1. m_union. m_array. The same address with m_array [0] is because these two symbols have the same shared type.
抽出情報出力部140において出力される詳細マップの内容は、次の場合には、同図(d)に記載した内容と同じになる。
・検索条件入力部110において、シンボル名var1のすべてのメンバについて検索を行うという条件を入力する。
・さらに、抽出項目指定部160において、シンボル名、アドレス、サイズ、ビット位置及びビット幅について抽出することを指定する。
The contents of the detailed map output by the extraction
In the search
Further, the extraction
もちろん、検索条件入力部110において入力される検索条件や、抽出項目指定部160において指定される抽出項目を絞って、限られた範囲の情報を出力することもできる。
[効果]
本実施形態の情報処理装置は、まず、第二実施形態の情報処理装置と同様の効果を奏する。
It is of course possible to narrow down the search condition input in the search
[effect]
The information processing apparatus of the present embodiment exhibits the same effects as the information processing apparatus of the second embodiment.
加えて、本実施形態の情報処理装置は、シンボルである変数に含まれる全要素のアドレスとサイズの抽出を、従来の手作業で行った場合と比較して、格段に容易かつ短時間に実施することができる。そのため、例えば、組み込みソフトウェア開発時の検査/デバッグ作業や、そのために必要なRAMモニタへの設定作業を大幅に短縮できる。 In addition, the information processing apparatus according to the present embodiment performs extraction of addresses and sizes of all elements included in variables that are symbols much more easily and in a short time as compared with the case where the conventional manual processing is performed. can do. Therefore, for example, inspection / debug work at the time of embedded software development and setting work for the RAM monitor necessary for that can be significantly shortened.
さらに、本実施形態の情報処理装置は、構造体が幾重にも入れ子となっているような変数であっても、候補となる全変数の一覧を確実に取得することができる。構造体が幾重にも入れ子となっているような変数の場合、末端のメンバ名から、その親となる変数名をソースコードから調査するのは大変な労力となり、作業ミスも生じやすい。しかし、本実施形態の情報処理装置において、メンバ名を検索条件として与えることにより、候補となる全変数の一覧を取得することができる。そのため、ソースコード内容を熟知することなく、検査対象となる変数のアドレス情報を取得することができ、作業員の技術的なハードルを飛躍的に下げることができる。
<第四実施形態>
本実施形態は、コンパイラ/リンカをさらに備える情報処理装置に関する実施形態である。
[構成と動作]
図9は、本実施形態の情報処理装置の構成を表わす概念図である。
Furthermore, the information processing apparatus according to the present embodiment can reliably acquire a list of all candidate variables, even for variables in which structures are nested in multiple layers. In the case of a variable in which structures are nested in multiple layers, it is very laborious to find the parent variable name from the source code from the end member name, and it is easy to make a work mistake. However, in the information processing apparatus according to the present embodiment, by giving the member name as the search condition, it is possible to obtain a list of all the candidate variables. Therefore, the address information of the variable to be inspected can be acquired without well knowing the source code contents, and the technical hurdles of the workers can be dramatically reduced.
Fourth Embodiment
The present embodiment is an embodiment related to an information processing apparatus further comprising a compiler / linker.
[Configuration and operation]
FIG. 9 is a conceptual diagram showing the configuration of the information processing apparatus of the present embodiment.
本実施形態の情報処理装置1は、コンパイラ/リンカ10と、抽出情報出力装置90を備える。
The
コンパイラ/リンカ10は、ソースコード入力部20と、コンパイル/リンク処理部30と、オブジェクトコード出力部40と、デバッグ情報出力部80とを備える。
The compiler /
抽出情報出力装置90は、デバッグ情報入力部100と、前処理部150と、検索条件入力部110と、抽出項目指定部160と、検索抽出部120と、処理部130と、抽出情報出力部140とを備える。
The extraction
コンパイラ/リンカ10のソースコード入力部20は、入力された処理対象となるソースコードを以降の処理用の信号にする。その信号はコンパイル/リンク処理部30に送られる。
The source
コンパイル/リンク処理部30は、ソースコード入力部20から送られたソースコードに対し、コンパイル/リンク処理を行い、オブジェクトコード及びデバッグ情報を生成する。生成されたオブジェクトコードは、オブジェクトコード出力部40に送られる。また、生成されたデバッグ情報はデバッグ情報出力部80に送られる。
The compile /
オブジェクトコード出力部40は、コンパイル/リンク処理部30から送られたオブジェクトコードを出力する。
The object
デバッグ情報出力部80は、コンパイル/リンク処理部30から送られたデバッグ情報を、抽出情報出力装置90のデバッグ情報入力部100に出力する。
The debug
図10は、ソースコード入力部20から入力されるソースコードの例を示す概念図である。ソースコードは、シンボルである変数の定義に関する部分を示してある。
FIG. 10 is a conceptual diagram showing an example of source code input from the source
抽出情報出力装置90についての説明は、第三実施形態における説明と同様であるので、ここではその説明を省略する。
[処理フロー]
図11は、本実施形態の情報処理装置の情報処理のフローを表わす概念図である。
The description of the extraction
Processing flow
FIG. 11 is a conceptual diagram showing the flow of information processing of the information processing apparatus of this embodiment.
まず、コンパイラ/リンカ10のソースコード入力部20に、処理対象となるソースコードが入力される(S401)。ソースコードを含む信号Vgはコンパイル/リンク処理部30に送られる。
First, source code to be processed is input to the source
コンパイル/リンク処理部30は、ソースコード入力部20から送られたソースコードに対し、コンパイル/リンク処理を行い、オブジェクトコード及びデバッグ情報を生成する(S402)。生成されたオブジェクトコードを含む信号Vhは、オブジェクトコード出力部40に送られる。また、生成されたデバッグ情報はデバッグ情報出力部80に送られる。
The compile /
オブジェクトコード出力部40は、コンパイル/リンク処理部30から送られたオブジェクトコードを出力する(S403)。
The object
デバッグ情報出力部80は、コンパイル/リンク処理部30から送られたデバッグ情報を含む信号Viを、抽出情報出力装置90のデバッグ情報入力部100に出力する(S404)。
The debug
S405以降のステップについての説明は第三実施形態における図6についての説明と同様なので、ここではその説明を省略する。
[効果]
本実施形態の情報処理装置は、まず第三実施形態の情報処理装置と同じ効果を奏する。
The description of the steps after S405 is the same as the description of FIG. 6 in the third embodiment, and thus the description thereof is omitted here.
[effect]
The information processing apparatus of the present embodiment exhibits the same effects as the information processing apparatus of the third embodiment.
加えて、本実施形態の情報処理装置は、対象となるソースコードのコンパイル/リンク処理を行う作業とともに、詳細マップを作成することができる。 In addition, the information processing apparatus according to the present embodiment can create a detailed map as well as the task of compiling / linking the target source code.
以上好ましい実施形態をあげて本発明を説明したが、本発明は必ずしも上記実施形態に限定されるものではなく、その技術的思想の範囲内において様々に変形し実施することが出来る。 Although the present invention has been described above with reference to the preferred embodiments, the present invention is not necessarily limited to the above embodiments, and can be variously modified and implemented within the scope of the technical idea thereof.
また、上記の実施形態の一部又は全部は、以下の付記のようにも記述され得るが、以下には限られない。
(付記1)
入力されたデバッグ情報を以降の処理用の信号にするデバッグ情報入力手段と、
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にする検索条件入力手段と、
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成する前処理手段と、
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により検索された内容に対応する抽出情報の抽出をする検索抽出手段と、
前記抽出情報の出力をする抽出情報出力手段と、
を備える情報処理装置。
(付記2)
前記検索条件における検索対象が正規表現で記述されている付記1に記載された情報処理装置。
(付記3)
前記検索の検索対象がシンボル名である付記1又は2に記載された情報処理装置。
(付記4)
前記デバッグ情報が、文字列により記述された文字列シンボル名を格納し、
前記検索条件における検索対象が文字列により入力された文字列検索対象であり、
前記検索が、前記文字列検索対象と、前記文字列シンボル名との一致についての検索であり、
前記一致をした前記文字列シンボル名に対応する情報について前記抽出をする
付記3に記載された情報処理装置。
(付記5)
前記シンボル名が変数又はその変数のメンバについてのシンボル名である付記3又は4に記載された情報処理装置。
(付記6)
前記変数の型が構造体または共用体である前記変数の前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスにより前記メンバのアドレスを算出する
付記5に記載された情報処理装置。
(付記7)
前記変数のすべての前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスによりすべての前記メンバのアドレスを算出する
付記6に記載された情報処理装置。
(付記8)
前記メンバの型がビットフィールドである前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスにより前記メンバのアドレスを算出する
付記5に記載された情報処理装置。
(付記9)
すべての前記メンバの前記オフセットアドレスの前記抽出をし、そのオフセットアドレスによりすべての前記メンバのアドレスを算出する
付記8に記載された情報処理装置。
(付記10)
前記変数やその変数のメンバが配列の場合において、その配列又はその配列のメンバについて前記抽出をする付記5乃至9に記載された情報処理装置。
(付記11)
前記抽出情報が、前記検索対象の、アドレス及びサイズを含む、付記1乃至10のうちのいずれか一に記載された情報処理装置。
(付記12)
前記抽出情報が、前記検索対象の、ビット位置及びビット幅をさらに含む付記11に記載された情報処理装置。
(付記13)
前記デバッグ情報を出力するコンパイラをさらに備える、付記1乃至12に記載された情報処理装置。
(付記14)
入力されたデバッグ情報を以降の処理用の信号にするステップと、
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にをするステップと、
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成するステップと、
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により検索された内容に対応する抽出情報の抽出をするステップと、
前記抽出情報の出力をするステップと、
を含む情報処理方法。
(付記15)
入力されたデバッグ情報を以降の処理用の信号にする処理と、
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にする処理と、
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成するステップと、
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により検索された内容に対応する抽出情報の抽出をする処理と、
前記抽出情報の出力をする処理と、
を含む処理をコンピュータに実行させる情報処理プログラム。
In addition, part or all of the above-described embodiment may be described as in the following appendices, but is not limited to the following.
(Supplementary Note 1)
Debug information input means for converting the input debug information into a signal for subsequent processing;
Search condition input means for converting the input search conditions used in the search into signals for subsequent processing;
Pre-processing means for obtaining an address for the symbol from an offset address for the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
Search extraction means for performing the search for the address information according to the search condition and for extracting extraction information corresponding to the contents searched for by the search;
Extraction information output means for outputting the extraction information;
An information processing apparatus comprising:
(Supplementary Note 2)
The information processing apparatus according to
(Supplementary Note 3)
The information processing apparatus according to
(Supplementary Note 4)
The debug information stores a string symbol name described by a string,
The search target in the search condition is a character string search target input by a character string,
The search is a search for a match between the character string search target and the character string symbol name,
The information processing apparatus according to
(Supplementary Note 5)
The information processing apparatus according to
(Supplementary Note 6)
The information processing apparatus according to appendix 5, wherein the extraction of the offset address of the member of the variable whose type is a structure or a union is performed, and the address of the member is calculated by the offset address.
(Appendix 7)
The information processing apparatus according to appendix 6, wherein the extraction of the offset addresses of all the members of the variable is performed, and the addresses of all the members are calculated by the offset addresses.
(Supplementary Note 8)
The information processing apparatus according to appendix 5, wherein the extraction of the offset address of the member whose type is the bit field is performed, and the address of the member is calculated by the offset address.
(Appendix 9)
The information processing apparatus according to
(Supplementary Note 10)
The information processing apparatus according to any one of appendices 5 to 9, wherein, when the variable or the member of the variable is an array, the array or the member of the array is extracted.
(Supplementary Note 11)
The information processing apparatus according to any one of
(Supplementary Note 12)
11. The information processing apparatus according to appendix 11, wherein the extraction information further includes a bit position and a bit width of the search target.
(Supplementary Note 13)
The information processing apparatus according to any one of
(Supplementary Note 14)
Converting the input debug information into a signal for subsequent processing;
Converting the input search conditions used for the search into a signal for subsequent processing;
Obtaining an address for the symbol from an offset address for the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
Performing the search for the address information according to the search condition, and extracting extraction information corresponding to the content searched for by the search;
Outputting the extraction information;
Information processing method including:
(Supplementary Note 15)
Processing to make input debug information a signal for subsequent processing;
A process of converting the input search conditions used for the search into a signal for subsequent processing;
Obtaining an address for the symbol from an offset address for the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
A process of performing the search on the address information according to the search condition, and extracting extraction information corresponding to the content searched by the search;
A process of outputting the extraction information;
An information processing program that causes a computer to execute processing including
1 情報処理装置
10 コンパイラ/リンカ
20 ソースコード入力部
30 コンパイル/リンク処理部
40 オブジェクトコード出力部
80 デバッグ情報出力部
90 抽出情報出力装置
100 デバッグ情報入力部
110 検索条件入力部
120 検索抽出部
130 処理部
140 抽出情報出力部
150 前処理部
160 抽出項目指定部
DESCRIPTION OF
Claims (10)
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にする検索条件入力手段と、
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成する前処理手段と、
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により特定された内容に対応する抽出情報の抽出をする検索抽出手段と、
前記抽出情報の出力をする抽出情報出力手段と、
を備え、
前記検索の検索対象がシンボル名であり、
前記シンボル名が変数又はその変数のメンバについてのものであり、
前記変数の型が構造体または共用体である前記変数の前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスにより前記メンバのアドレスを算出する
情報処理装置。 Debug information input means for converting the input debug information into a signal for subsequent processing;
Search condition input means for converting the input search conditions used in the search into signals for subsequent processing;
Pre-processing means for obtaining an address for the symbol from an offset address for the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
Search extraction means for performing the search for the address information according to the search condition and for extracting extraction information corresponding to the content specified by the search;
Extraction information output means for outputting the extraction information;
Equipped with
The search target of the search is a symbol name,
The symbol name is for a variable or a member of that variable,
An information processing apparatus for extracting the offset address of the member of the variable whose type is a structure or a union, and calculating the address of the member by the offset address .
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にする検索条件入力手段と、 Search condition input means for converting the input search conditions used in the search into signals for subsequent processing;
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成する前処理手段と、 Pre-processing means for obtaining an address for the symbol from an offset address for the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により特定された内容に対応する抽出情報の抽出をする検索抽出手段と、 Search extraction means for performing the search for the address information according to the search condition and for extracting extraction information corresponding to the content specified by the search;
前記抽出情報の出力をする抽出情報出力手段と、 Extraction information output means for outputting the extraction information;
を備え、 Equipped with
前記検索の検索対象がシンボル名であり、 The search target of the search is a symbol name,
前記シンボル名が変数又はその変数のメンバについてのものであり、 The symbol name is for a variable or a member of that variable,
前記メンバの型がビットフィールドである前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスにより前記メンバのアドレスを算出する、 The extraction of the offset address of the member whose type is the bit field is performed, and the address of the member is calculated by the offset address.
情報処理装置。 Information processing device.
前記検索条件における検索対象が文字列により入力された文字列検索対象であり、
前記検索が、前記文字列検索対象と、前記文字列シンボル名との一致についてのものであり、
前記一致をした前記文字列シンボル名に対応する情報について前記抽出をする
請求項1乃至請求項3のうちのいずれか一に記載された情報処理装置。 The debug information stores a string symbol name described by a string,
The search target in the search condition is a character string search target input by a character string,
The search, and the character string search target, is for the match with the character string symbol name,
Extracting the information corresponding to the matched character string symbol name
An information processing apparatus according to any one of claims 1 to 3 .
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にするステップと、
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成するステップと、
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により特定された内容に対応する抽出情報の抽出をするステップと、
前記抽出情報の出力をするステップと、
を含み、
前記検索の検索対象がシンボル名であり、
前記シンボル名が変数又はその変数のメンバについてのものであり、
前記変数の型が構造体または共用体である前記変数の前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスにより前記メンバのアドレスを算出する、
情報処理方法。 Converting the input debug information into a signal for subsequent processing;
Using the input search conditions to be used for the search as a signal for subsequent processing;
Obtaining an address for the symbol from an offset address for the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
Performing the search for the address information according to the search condition, and extracting extraction information corresponding to the content specified by the search;
Outputting the extraction information;
Only including,
The search target of the search is a symbol name,
The symbol name is for a variable or a member of that variable,
The extraction of the offset address of the member of the variable whose type is the structure or union is performed, and the address of the member is calculated by the offset address.
Information processing method.
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にするステップと、 Using the input search conditions to be used for the search as a signal for subsequent processing;
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成するステップと、 Obtaining an address for the symbol from an offset address for the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により特定された内容に対応する抽出情報の抽出をするステップと、 Performing the search for the address information according to the search condition, and extracting extraction information corresponding to the content specified by the search;
前記抽出情報の出力をするステップと、 Outputting the extraction information;
を含み、Including
前記検索の検索対象がシンボル名であり、 The search target of the search is a symbol name,
前記シンボル名が変数又はその変数のメンバについてのものであり、 The symbol name is for a variable or a member of that variable,
前記メンバの型がビットフィールドである前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスにより前記メンバのアドレスを算出する、 The extraction of the offset address of the member whose type is the bit field is performed, and the address of the member is calculated by the offset address.
情報処理方法。 Information processing method.
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にする処理と、
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成する処理と、
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により特定された内容に対応する抽出情報の抽出をする処理と、
前記抽出情報の出力をする処理と、
を含む処理をコンピュータに実行させ、
前記検索の検索対象がシンボル名であり、
前記シンボル名が変数又はその変数のメンバについてのものであり、
前記変数の型が構造体または共用体である前記変数の前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスにより前記メンバのアドレスを算出する、
情報処理プログラム。 Processing to make input debug information a signal for subsequent processing;
A process of converting the input search conditions used for the search into a signal for subsequent processing;
A process of obtaining an address of the symbol from an offset address of the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
A process of performing the search for the address information according to the search condition, and extracting extraction information corresponding to the content specified by the search;
A process of outputting the extraction information;
Let the computer execute the process including
The search target of the search is a symbol name,
The symbol name is for a variable or a member of that variable,
The extraction of the offset address of the member of the variable whose type is the structure or union is performed, and the address of the member is calculated by the offset address.
Information processing program.
入力された、検索をする際に用いられる検索条件を、以降の処理用の信号にする処理と、
前記デバッグ情報に含まれる、シンボルについてのオフセットアドレスから、そのシンボルについてのアドレスを求め、そのアドレスをそのシンボルと関連付けた情報を含むアドレス情報を生成する処理と、
前記検索条件により、前記アドレス情報について前記検索をし、前記検索により特定された内容に対応する抽出情報の抽出をする処理と、
前記抽出情報の出力をする処理と、
を含む処理をコンピュータに実行させ、
前記検索の検索対象がシンボル名であり、
前記シンボル名が変数又はその変数のメンバについてのものであり、
前記メンバの型がビットフィールドである前記メンバのオフセットアドレスの前記抽出をし、そのオフセットアドレスにより前記メンバのアドレスを算出する、
情報処理プログラム。 Processing to make input debug information a signal for subsequent processing;
A process of converting the input search conditions used for the search into a signal for subsequent processing;
A process of obtaining an address of the symbol from an offset address of the symbol included in the debug information, and generating address information including information in which the address is associated with the symbol;
A process of performing the search for the address information according to the search condition, and extracting extraction information corresponding to the content specified by the search;
A process of outputting the extraction information;
Let the computer execute the process including
The search target of the search is a symbol name,
The symbol name is for a variable or a member of that variable,
The extraction of the offset address of the member whose type is the bit field is performed, and the address of the member is calculated by the offset address.
Information processing program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015003081A JP6534814B2 (en) | 2015-01-09 | 2015-01-09 | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND INFORMATION PROCESSING PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015003081A JP6534814B2 (en) | 2015-01-09 | 2015-01-09 | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND INFORMATION PROCESSING PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016128961A JP2016128961A (en) | 2016-07-14 |
JP6534814B2 true JP6534814B2 (en) | 2019-06-26 |
Family
ID=56384346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015003081A Active JP6534814B2 (en) | 2015-01-09 | 2015-01-09 | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND INFORMATION PROCESSING PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6534814B2 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06231001A (en) * | 1993-02-01 | 1994-08-19 | Nec Corp | Symbol name input device |
JPH07230393A (en) * | 1994-02-17 | 1995-08-29 | Canon Inc | Information processing system and program debugging method therefor |
-
2015
- 2015-01-09 JP JP2015003081A patent/JP6534814B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016128961A (en) | 2016-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9389849B2 (en) | Test case pattern matching | |
JP4148527B2 (en) | Functional test script generator | |
US9141350B2 (en) | Embedded system performance | |
US9582396B2 (en) | Techniques for generating an executable debugger script | |
US5862382A (en) | Program analysis system and program analysis method | |
JP2012190219A (en) | Information processing device and trace log acquisition method | |
Sargsyan et al. | Grammar-based fuzzing | |
US20150331783A1 (en) | Debugging data format conversion | |
JP5303795B2 (en) | Application analysis method, analysis system, and analysis program | |
Guana et al. | Chaintracker, a model-transformation trace analysis tool for code-generation environments | |
JP2017027375A5 (en) | ||
JP6486574B2 (en) | Program code generating apparatus, program code generating method, and program code generating program | |
CN102141959A (en) | Test case generation method restrained by context-free grammar | |
Yu et al. | From sub-patterns to patterns: an approach to the detection of structural design pattern instances by subgraph mining and merging | |
Fauzi et al. | Reverse engineering of source code to sequence diagram using abstract syntax tree | |
JP2018073054A (en) | Object analyzing device, object analyzing method, and program | |
JP6534814B2 (en) | INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING METHOD, AND INFORMATION PROCESSING PROGRAM | |
JP6955162B2 (en) | Analytical equipment, analysis method and analysis program | |
JP7380851B2 (en) | Test script generation device, test script generation method and program | |
Szalay et al. | Towards better symbol resolution for C/C++ programs: A cluster-based solution | |
JP2010055293A (en) | Verification assisting program, verification assisting apparatus, and verification assisting method | |
Frick et al. | Diffviz: A diff algorithm independent visualization tool for edit scripts | |
JP2016051367A (en) | Data analysis device, data analysis method, and program | |
US20170103011A1 (en) | Information processing apparatus and system | |
Farah et al. | Analysis of intercrossed open-source software repositories data in GitHub |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180820 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180918 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181102 |
|
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: 20190507 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190530 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6534814 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |