JP2013254320A - 実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラム - Google Patents

実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラム Download PDF

Info

Publication number
JP2013254320A
JP2013254320A JP2012129015A JP2012129015A JP2013254320A JP 2013254320 A JP2013254320 A JP 2013254320A JP 2012129015 A JP2012129015 A JP 2012129015A JP 2012129015 A JP2012129015 A JP 2012129015A JP 2013254320 A JP2013254320 A JP 2013254320A
Authority
JP
Japan
Prior art keywords
pointer
execution
storage area
execution trace
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012129015A
Other languages
English (en)
Inventor
Naoto Maeda
直人 前田
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.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2012129015A priority Critical patent/JP2013254320A/ja
Publication of JP2013254320A publication Critical patent/JP2013254320A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ポインタの参照先の記憶領域の値を更新する命令を実行することにより生じる影響をユーザに提示できる実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラムを提供する。
【解決手段】実行トレース表示装置100は、プログラムの実行段階を示す識別子と、命令と、その実行段階における記憶領域の状態とを含む実行トレースを表示する。命令が、ポインタの参照先の記憶領域の値を更新するものである場合、そのポインタとエイリアス関係にある他のポインタの記憶領域の情報をさらに表示する。
【選択図】図1

Description

本発明は、実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラムに関し、例えばポインタの参照先の記憶領域の値を更新する命令を実行することにより生じる影響をユーザに提示する技術に関する。
プログラムの実行トレースとは、特定の入力に応じてプログラムを実行した際の当該プログラムの振る舞い示す情報であり、典型的には、プログラム開始状態から実行段階を経るごとに変化していく状態(状態とは、プログラムが計算機の記憶領域に格納するデータを指す)を記録したリストである。実行トレースは、その用途に応じて、いつ、どのような状態を記録するかが異なるのが一般的である。
なお、一般に、実行トレースとは、プログラムを実際に計算機上で動作させた際の状態の記録に限定されず、プログラム解析などにより模擬的に動作させた際の状態の記録をも含む。以降、実行トレースという際には、計算機上での実行によるものか、又は何らかの模擬的な手段等によるものかを区別しない。
このような実行トレースを表示する装置は、プログラムの実行時の振る舞いを理解するため、プログラムの性能上の問題を分析するため、プログラムの不具合を解析するため、またプログラム解析により検出された不具合を理解するためなどの目的に利用される。
非特許文献1には、プログラムの理解を促進するための実行トレース表示装置が記載されている。
非特許文献2には、プログラムの不具合を解析する(デバッグ)ための実行トレース表示装置が記載されている。
非特許文献3には、プログラムを解析することにより、不正なメモリアクセス等の不具合を発生させるような実行トレースの存在を検出し、そのような実行トレースを表示する実行トレース表示装置が記載されている。
図7に、これらの実行トレース表示装置200の構成を示す。実行トレース表示装置200は、入力部201、表示データ加工部202、表示部203、出力部204、記憶装置205を備える。記憶装置205はソースコードと実行トレースとを格納する。実行トレースはプログラムの実行に応じた状態を時系列に記録したものであり、例えば、実行ステップ数、当該ステップに対応するソースコード中の場所、当該ステップで実行された命令を示す抽象構文木、当該ステップにおける記憶領域の状態などを含む。状態は、例えば、アドレスと当該アドレスに記録されている値のペアから構成される表として示される。
実行トレース表示装置200は次のように動作する。表示データ加工部202は、キーボードやマウスなどの入力部201から特定の指示が入力されると、ソースコードおよび実行トレースを記憶装置205から読み込み、指示の内容に応じて、ソースコードを加工して表示部203に加工したソースコードを含む情報を送信する。入力部201からの指示の内容とは、たとえば、実行トレースの特定のステップに対応するソースコード行を表示する、実行トレースの次のステップを表示する、などである。表示データ加工部202によるソースコードの加工とは、たとえば、ソースコードの中から指定された実行トレースのステップに相当する行に色を付ける、ソースコードの中から指定された実行トレースのステップに相当する行が出力部204の中心あるいは見やすい位置に表示されるように指示を入れる、などの処理を行うことである。表示部203は、たとえば、ウェブブラウザ、プログラム開発環境のエディタなどであり、表示データ加工部202から受信した情報に従、たとえば色を付けるなどの加工がなされたソースコードをディスプレイなどの出力部204に表示する。なお、非特許文献1記載の実行トレース表示装置は、ソースコードではなく、実行トレースのステップに対応する抽象構文木に相当する情報を表示する。
寺田 実,「イーティービー、ア プログラム トレース プレーヤー フォー スツューデンツ」(ETV: a Program Trace Player for Students),アイティーアイシーエスイー05議事録(In Proc. of ITiCSE'05),2005年 櫻井 孝平,「トレースグラス(Traceglass):欠陥の効率よい発見手法を実現するトレースに基づくデバッガ」、情報処理学会論文誌 プログラミング3(3) 1−17,2010年06月16日 橋本 祐介,「形式手法によるC言語検証ツール「バーベル(VARVEL)」」,NEC技報Vol.60 No.2,2007年4月
しかしながら、これらの実行トレース表示装置では、実行トレースの中に含まれるステップの中に、ポインタの参照先の記憶領域の値を更新する命令が含まれる際に、この命令を実行することにより発生する影響を把握できないという問題点があった。
その原因は、当該更新される記憶領域の情報が表示されないこと、及び当該更新される記憶領域を参照する他のポインタ型の記憶領域の情報が表示されないことにある。
本発明は、このような問題点を解決するためになされたものであり、ポインタの参照先の記憶領域の値を更新する命令を実行することにより生じる影響をユーザに提示できる実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラムを提供することを目的とする。
本発明に係る実行トレース表示装置は、プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示する実行トレース表示装置であって、前記命令が、ポインタの参照先の記憶領域の値を更新するものである場合、前記ポインタとエイリアス関係にある他のポインタの記憶領域の情報をさらに表示するものである。
本発明に係る他の実行トレース表示装置は、プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示する実行トレース表示装置であって、前記命令が、ポインタの参照先の前記記憶領域の値を更新するものである場合、前記ポインタが参照する前記記憶領域の情報をさらに表示するものである。
本発明に係る実行トレース表示方法は、プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示する実行トレース表示方法であって、前記命令が、ポインタの参照先の記憶領域の値を更新するものである場合、前記ポインタとエイリアス関係にある他のポインタの記憶領域の情報をさらに表示するものである。
本発明に係る他の実行トレース表示方法は、プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示する実行トレース表示方法であって、前記命令が、ポインタの参照先の前記記憶領域の値を更新するものである場合、前記ポインタが参照する前記記憶領域の情報をさらに表示するものである。
本発明に係る実行トレース表示プログラムは、コンピュータに、プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示させる実行トレース表示プログラムであって、前記命令が、ポインタの参照先の記憶領域の値を更新するものである場合、前記ポインタとエイリアス関係にある他のポインタの記憶領域の情報をさらに表示させるものである。
本発明に係る他の実行トレース表示プログラムは、コンピュータに、プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示させる実行トレース表示プログラムであって、前記命令が、ポインタの参照先の前記記憶領域の値を更新するものである場合、前記ポインタが参照する前記記憶領域の情報をさらに表示させるものである。
本発明により、ポインタの参照先の記憶領域の値を更新する命令を実行することにより生じる影響をユーザに提示できる実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラムを提供することができる。
本発明の実施の形態1の実行トレース表示装置100の構成を示す図である。 本発明の実施の形態1の実行トレース表示装置100における静的記号表の例を示す図である。 本発明の実施の形態1の実行トレース表示装置100における動的記号表の例を示す図である。 本発明の実施の形態1の実行トレース表示装置100における関数表の例を示す図である。 本発明の実施の形態1の実行トレース表示装置100の動作を示す図である。 本発明の実施の形態1の実行トレース表示装置100の動作を示す図である。 従来の実行トレース表示装置200の構成を示す図である。
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
<実施の形態1>
まず、実施の形態1に係る実行トレース表示装置100の基本構成について説明する。実行トレース表示装置100は、入力部101、ポインタ情報計算部102、表示データ加工部103、記憶装置106を有する。
記憶装置106は、実行トレース、ソースコード、及び記号表を含む。記号表は、プログラムが利用する記憶領域のアドレスと当該アドレスに関連するソースコードに関する情報(変数名、変数の定義場所、変数の確保場所など)の組のリストを含む。実行トレースは、プログラムの実行段階を一意に識別する識別子(たとえばステップ数)と、当該実行段階で実行される命令と、当該実行段階に対応するソースコード中の場所と、当該実行段階における状態とを含む。状態とは、記憶領域のアドレスと、そのアドレスに格納された値とを対応付けた表である。ここでいうソースコードとは、当該実行トレースに対応するプログラムを構成するソースコードのほか、前記ソースコードに相当する記述(たとえばソースコードの中間表現など)であってよい。
表示データ加工部103は、入力部101から特定の実行段階を示す識別子を受け付けると、ポインタ情報計算部102に前記識別子を送信し、ポインタ情報計算部102から処理結果を示す情報を受信する。また、表示データ加工部103は、記憶装置106からソースコードを取得し、前記実行段階に対応するソースコードの場所を他の部分と区別できる形に加工する(たとえば色を付ける)。加えて、表示データ加工部103は、前記ポインタ情報計算部102から受信した情報が空ではない場合、加工したソースコードに加えて、受信した前記情報をも含む出力情報を生成する。
ポインタ情報計算部102は、表示データ加工部103から識別子を受け付けると、当該識別子に対応する実行トレースに関する情報を記憶装置106から読み込む。当該実行トレースに含まれる命令が、ポインタが参照する先の記憶領域の値を更新するものであった場合、ポインタ情報計算部102は、次の2つの処理のいずれか、あるいは両方を実行する:(1)ポインタ情報計算部102は、当該ポインタが参照する記憶領域に関連するソースコードに関する情報を、記憶装置106に含まれる前記記号表から取得する(以降、この情報を参照先情報と呼ぶ)。(2)ポインタ情報計算部102は、当該ポインタが参照する記憶領域と同じ記憶領域を参照する他のポインタ型の記憶領域を、記憶領域106に含まれる前記記号表から検索する。また、ポインタ情報計算部102は、このような他のポインタ型の記憶領域に関連するソースコードに関する情報を、記憶装置106に含まれる前記記号表から取得する(以降、この情報をエイリアス情報と呼ぶ)。これらの処理の後、ポインタ情報計算部102は、得られた情報、すなわち参照先情報やエイリアス情報を、表示データ加工部103に送信する。
つぎに、図1を用いて、実行トレース表示装置100のより具体的な実装例について説明する。
実行トレース表示装置100は、制御プログラムに従って動作する計算機107と、メモリやハードディスク等の記憶装置106とを備える。
計算機107は、キーボード、マウス等を有する入力部101と、モニタ等を有する出力部105とに接続される。計算機107は、ポインタ情報計算部102、表示データ加工部103、表示部104を備える。記憶装置106は、動的記号表、静的記号表、関数表、実行トレース、ソースコードを保持する。 図3に、動的記号表の例を示す。動的記号表は、プログラム実行中に動的に確保される記憶領域の情報を表し、アドレス、場所、ステップ数の3つの要素を含む列を含む。アドレスは、プログラムによって使用される記憶領域の位置を示す。場所は、そのアドレスがソースコード中のどの部分、すなわち場所の命令で確保されたのかを示す。ステップ数は、そのアドレスがどの実行ステップで確保されたのかを示す。本実施の形態では、場所は、ソースコードのファイル名、行数、コラム数、の3つの要素を含むものとする。動的記号表の内容は、実行ステップ毎に変化する可能性があるため、実行ステップ毎に、対応する動的記号表が存在する。このような動的記号表は次のように作成できる。実行トレースを最初から最後まで走査する。実行トレースのステップ毎に、抽象構文木を検査し、メモリ確保用の関数(mallocなど)を呼び出している場合、当該関数で確保された記憶領域の開始アドレスと、当該ステップ数と、当該ステップに対応する場所とを、動的記号表に記録する。一方、メモリ解放用の関数(freeなど)が呼び出されている場合、当該関数により解放されるアドレスを含む組を動的記号表から取り除く。このようにしてステップ毎に動的記号表を作成できる。
図2に、静的記号表の例を示す。静的記号表は、プログラムのソースコード中に記述されている変数の名称と、その変数の記憶領域上のアドレス、及びその変数が定義されているソースコードの場所の3つの要素を含む列を含む。静的記号表の内容は、関数呼び出し及び関数呼び出しから戻る際に変化する可能性があるため、動的記号表と同様に、ステップ毎に対応する静的記号表が与えられるものとする。静的記号表は、実行トレースを生成した他の装置などにより、あらかじめ記憶装置106に記録されていることが望ましい。例えば、実際のプログラム実行を監視して実行トレースを生成する場合、静的記号表は、各変数の実際のアドレスを記録することで生成できる。プログラム解析により疑似的に生成された実行トレースの場合は、当該解析装置により各変数に割り当てられた仮想的なアドレスを記録することにより静的記号表を生成できる。
図4に、関数表の例を示す。関数表は、場所に基づいて対応する関数の名称を導出するための表であり、たとえばプログラム作成者などにより作成され、予め記憶装置106に保持されているものとする。
実行トレース表示装置100の各部の関係について説明する。
入力部101は、表示部104により出力部105上に表示された実行トレース閲覧用のGUI(グラフィカル・ユーザ・インタフェース)に基づいて、ユーザ(利用者)が行う入力を受け付ける。本実施の形態においては、入力部101は、ユーザが実行トレースの特定のステップ数を選択し、かつ、その情報を表示させる旨の指示を行ったことを検知するものとする。
表示データ加工部103は、入力部101によって選択された実行ステップ数を受信すると、当該実行ステップ数に対応する実行トレースの組を記憶装置106から読み込むとともに、当該実行ステップ数をポインタ情報計算部102に送信する。
ポインタ情報計算部102は、受信した実行ステップ数に対応する実行トレースの組を記憶装置106から読み込む。そして、当該実行ステップの抽象構文木に含まれる命令が、ポインタが参照する先への値の代入である場合に、当該ポインタが参照する先の記憶領域に関連する情報(参照先情報)と、当該ポインタと同じ値を持つ他のポインタの記憶領域に関連する情報(エイリアス情報)とを、前記実行ステップ数に対応する動的記号表と静的記号表とから検索し、検索結果を表示データ加工部103に返す。このとき、各場所に対応する関数の情報を、関数表を検索して追加しても良い。なお、検索の結果、関連する情報が得られなかった場合は空の情報を返す。また、命令が上記以外である場合も、空の情報を返す。
表示データ加工部103は、受信した実行ステップ数に対応するソースコード中の場所を強調表示するように加工するとともに、ポインタ情報計算部102から返された情報が空でない場合、次のように動作する。
まず、返された情報に参照先情報が含まれる場合、この代入により値が更新される記憶領域の情報として、当該参照先情報をも出力するように加工する。
次に、返された情報にエイリアス情報が含まれる場合、この代入により参照先の値が変わる記憶領域の情報として、当該エイリアス情報をも出力するように加工する。
また、前記参照先情報または前記エイリアス情報が静的記号表より検索されたものであれば、更新される変数の名称、場所、当該変数を定義する関数名を表示する情報に含めてもよい。
一方、前記参照先情報または前記エイリアス情報が動的記号表より検索されたものであれば、当該記憶領域を確保した場所とステップ数とを表示する情報に含めてもよい。なお、記憶領域を確保した場所だけでなく、プログラムがどのような文脈(コンテキスト)でその記憶領域を確保したのかまで表示しなければ、ユーザがトレースの意義を理解することが困難な場合がある。したがって、先の動的記号表に、文脈(コンテキスト)の情報を加えて、当該文脈も表示する情報に含めてもよい。なお、文脈とは関数呼び出しのリストであり、どのような関数呼び出しの結果、当該メモリが確保されたのかを示す。このような文脈の情報は、たとえばプログラム作成者などが予め作成することができる。
表示データ加工部103が加工したソースコード、及びこれらのポインタに関係する情報(参照先情報、エイリアス情報)は、表示データ加工部103から表示部104に送られる。表示部104は、たとえばウェブブラウザや、開発環境のエディタなどの情報を閲覧するためのGUIであり、送られた情報を出力部105に出力する。
表示部104は、これらのポインタに関係する情報(参照先情報、エイリアス情報)を、たとえば当該実行ステップ数に対応するソースコードの部位(場所)の近くにポップアップで表示してもよいし、あるいは、ソースコードに隣接するGUI画面に表示してもよい。
また、ここで表示する情報には、ユーザがその情報を表示した箇所をクリックした際に、対応するソースコードの部位(場所)を参照できるように、リンクを施しておくことが好ましい。
なお、表示データ加工部103がポインタ情報計算部102から受信したエイリアス情報の中に複数の記憶領域の情報が含まれている場合、それらのエイリアス情報のうち価値が高いと思われるものを優先的に目立つ場所に表示する、あるいは価値が高いとおもわれるもののみを表示するよう、出力情報を加工することが好ましい。たとえば、不具合が発生することを示す実行トレースの場合、不具合が発生する実行段階の命令に含まれる識別子と同じ識別子をより多く含む、前記ポインタとエイリアス関係にある記憶領域の情報を、ユーザに対し優先的に、たとえば画面上の見やすい位置に表示するとよい。
なお、ソースコード中の不具合が発生する箇所は、公知のバグ発見ツールなどを用いて検出することが可能である。実行トレース表示装置100は、このようなバグ発見ツールの一部として組み込まれる形で実現されてもよい。この場合、実行トレース表示装置100には、バグ発見ツールにより発見された、不具合が発生する箇所に関する実行トレース(不具合が発生することを示す実行トレース)のみが入力されるよう構成してもよい。
つづいて、図5のフローチャートを用いて、ポインタ情報計算部102の動作について詳細に説明する。
まず、ポインタ情報計算部102は、表示データ加工部103から受信した実行ステップ数に対応する実行トレースの組を記憶装置106から読み込み、当該実行ステップの抽象構文木に含まれる命令が、ポインタが参照する先への値の代入である場合に、先の処理(ステップS12)に進み、そうでない場合、処理を終える(ステップS11)。与えられた抽象構文木がポインタが参照する先への値の代入かどうかを調べるためには、たとえば、ソースコードがC/C++の場合、"*"という記号が最も外側に来る式への書き込みが発生するか否かを検査すればよい。なお、"p−>f"も"(*p).f"と同じ意味である。Java(登録商標)の場合、フィールドへの書き込みが発生するか否かを検査すればよい。
次に、前記書き込みが発生するポインタ式の値を取得する(ステップS12)。なお、この処理には抽象構文木の解釈が必要になり、たとえばCのように複雑なポインタ演算が可能なプログラム言語の場合、必ずしもすべての場合において解釈が可能とは限らない。特にオフセット(構造体のフィールド、配列要素)を利用した式の場合、各型の大きさが記録されているか、あるいは、非特許文献3に記載されているようにフィールドや配列要素が登場しないプログラムに変換するなどの対応が必要になる。式に登場する変数の値は、式に登場する変数のアドレスを静的記号表から検索し、当該アドレスの値を、当該実行トレースの状態から取得することで得られる。ポインタ式の値が得られた場合は、ステップS13に進む。
次に、先のポインタ式のエイリアス情報を計算する(ステップS13)。図6を用いて、ステップS13の動作について説明する。
まず、先のポインタ式の値と同じ値を持つアドレスを、当該実行トレースの状態から取得する。なお、そのようなアドレスは存在しないか、または複数のアドレスが得られる可能性もある。取得したアドレスはポインタ式とエイリアスの関係にある(ステップS21)。
ここで得られたアドレスそれぞれについて、以下の処理を進める(ステップS22)。
まず、当該アドレスに対応する変数名を静的記号表から検索する。当該アドレスと同じアドレスを持つ変数の名称と場所を取得する(ステップS23)。さらに、関数表を検索して、当該場所に対応する関数名を求める。以上得られた変数の名称、場所、関数名とを、表示データ加工部103に送るエイリアス情報に含める。
もし、当該アドレスが静的記号表に存在しない場合、動的記号表を検索する(ステップS24及びS25)。当該アドレスと同じアドレスを持つ組があれば、その場所とステップ数とを表示データ加工部103に送るエイリアス情報に含める。以上がステップS13の動作である。
つづいて、ポインタ情報計算部102は、前記ポインタ式が参照する先のメモリ情報を検索する(ステップS14)。ステップS12で取得した値が参照先アドレスを示しているので、ステップS13の処理と同様に、当該アドレスを持つ変数、又は動的に確保された記憶領域を静的記号表と動的記号表とから検索し、得られた情報を表示データ加工部103に送る参照先情報に含める。
これにより、ポインタが参照する先の値が更新される場合に、当該ポインタ式が参照する先のメモリ情報と、当該ポインタ式とエイリアスの関係にある(同じ記憶領域を参照する)他の記憶領域の情報とを、ユーザに対して表示する情報に含めることができ、実行トレース中の当該ステップの動作についてユーザの理解を促進することができる。
すなわち、本実施の形態によれば、実行トレース表示装置100は、ポインタの参照先が参照するメモリの情報、及びそのポインタが参照する記憶領域と同じ記憶領域を参照する別の記憶領域の情報を表示する。そのため、ユーザは、実行トレースにポインタの参照先の記憶領域の値を更新する命令が含まれる場合、その更新により発生する影響を容易に把握することができる。
<その他の実施の形態>
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
例えば、上述の実施の形態では、本発明を主にハードウェアにより構成されるものとして説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non−transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
100 実行トレース表示装置
101 入力部
102 ポインタ情報計算部
103 表示データ加工部
104 表示部
105 出力部
106 記憶装置
200 従来の実行トレース表示装置
201 入力部
202 表示データ加工部
203 表示部
204 出力部
205 記憶装置

Claims (10)

  1. プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示する実行トレース表示装置であって、
    前記命令が、ポインタの参照先の記憶領域の値を更新するものである場合、前記ポインタとエイリアス関係にある他のポインタの記憶領域の情報をさらに表示する
    実行トレース表示装置。
  2. 前記命令が、前記ポインタの参照先の記憶領域の値を更新するものである場合、前記ポインタが参照する前記記憶領域の情報をさらに表示する
    請求項1記載の実行トレース表示装置。
  3. 前記実行段階において不具合が発生する場合であって、前記他のポインタの前記記憶領域が複数存在する場合、
    前記識別子と同じ識別子をより多く含む、前記他のポインタの前記記憶領域の情報を、優先的に表示する
    請求項1又は2記載の実行トレース表示装置。
  4. プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示する実行トレース表示装置であって、
    前記命令が、ポインタの参照先の前記記憶領域の値を更新するものである場合、前記ポインタが参照する前記記憶領域の情報をさらに表示する
    実行トレース表示装置。
  5. プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示する実行トレース表示方法であって、
    前記命令が、ポインタの参照先の記憶領域の値を更新するものである場合、前記ポインタとエイリアス関係にある他のポインタの記憶領域の情報をさらに表示する
    実行トレース表示方法。
  6. 前記命令が、前記ポインタの参照先の記憶領域の値を更新するものである場合、前記ポインタが参照する前記記憶領域の情報をさらに表示する
    請求項5記載の実行トレース表示方法。
  7. 前記実行段階において不具合が発生する場合であって、前記他のポインタの前記記憶領域が複数存在する場合、
    前記識別子と同じ識別子をより多く含む、前記他のポインタの前記記憶領域の情報を、優先的に表示する
    請求項5又は6記載の実行トレース表示方法。
  8. プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示する実行トレース表示方法であって、
    前記命令が、ポインタの参照先の前記記憶領域の値を更新するものである場合、前記ポインタが参照する前記記憶領域の情報をさらに表示する
    実行トレース表示方法。
  9. コンピュータに、
    プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示させる実行トレース表示プログラムであって、
    前記命令が、ポインタの参照先の記憶領域の値を更新するものである場合、前記ポインタとエイリアス関係にある他のポインタの記憶領域の情報をさらに表示させる
    実行トレース表示プログラム。
  10. コンピュータに、
    プログラムの実行段階を示す識別子と、命令と、前記実行段階における記憶領域の状態とを含む実行トレースを表示させる実行トレース表示プログラムであって、
    前記命令が、ポインタの参照先の前記記憶領域の値を更新するものである場合、前記ポインタが参照する前記記憶領域の情報をさらに表示させる
    実行トレース表示プログラム。
JP2012129015A 2012-06-06 2012-06-06 実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラム Pending JP2013254320A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012129015A JP2013254320A (ja) 2012-06-06 2012-06-06 実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012129015A JP2013254320A (ja) 2012-06-06 2012-06-06 実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラム

Publications (1)

Publication Number Publication Date
JP2013254320A true JP2013254320A (ja) 2013-12-19

Family

ID=49951780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012129015A Pending JP2013254320A (ja) 2012-06-06 2012-06-06 実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラム

Country Status (1)

Country Link
JP (1) JP2013254320A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019144663A (ja) * 2018-02-16 2019-08-29 株式会社東芝 検索装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019144663A (ja) * 2018-02-16 2019-08-29 株式会社東芝 検索装置

Similar Documents

Publication Publication Date Title
US10642608B2 (en) Associating a visualization of user interface with source code
US10761964B2 (en) Object monitoring in code debugging
US9594553B2 (en) Identifying semantic differences between source code versions
US8966449B2 (en) Test case pattern matching
JP4148527B2 (ja) 機能テスト・スクリプト生成装置
US9003235B2 (en) Indicating coverage of web application testing
US20180137025A1 (en) Multi-language playback framework
CN107015841B (zh) 一种程序编译的预处理方法及程序编译设备
CN104572463A (zh) 测试接口信息的方法及装置
CN110908915B (zh) 一种测试覆盖率的展示方法、装置及计算机系统
JP6440895B2 (ja) ソフトウェア分析装置及びソフトウェア分析方法
US20140229923A1 (en) Commit sensitive tests
JP2017162130A (ja) ハードウェア/ソフトウェア協調検証装置およびハードウェア/ソフトウェア協調検証方法
US9280627B1 (en) GUI based verification at multiple abstraction levels
US8819625B2 (en) Sharable development environment bookmarks for functional/data flow
KR20150128711A (ko) 컴퓨터 시스템 활동의 트레이스 타임라인을 분석하기 위한 방법 및 시스템
JP2013254320A (ja) 実行トレース表示装置、実行トレース表示方法及び実行トレース表示プログラム
US20130097584A1 (en) Mapping software modules to source code
JP7380851B2 (ja) テストスクリプト生成装置、テストスクリプト生成方法及びプログラム
US20130073526A1 (en) Log message optimization to ignore or identify redundant log messages
JP5550578B2 (ja) エントリ書換装置及びエントリ書換プログラム
JP2016126700A (ja) プログラム検証装置、プログラム検証方法及びプログラム検証プログラム
JP6512055B2 (ja) 分析プログラム、分析装置および分析方法
CN104809061A (zh) 回归测试方法及装置
JPWO2018154784A1 (ja) 影響抽出装置、影響抽出プログラム及び影響抽出方法