JP2012027912A - アプリケーションコードの実行通知に用いるシステム及び方法 - Google Patents

アプリケーションコードの実行通知に用いるシステム及び方法 Download PDF

Info

Publication number
JP2012027912A
JP2012027912A JP2011155292A JP2011155292A JP2012027912A JP 2012027912 A JP2012027912 A JP 2012027912A JP 2011155292 A JP2011155292 A JP 2011155292A JP 2011155292 A JP2011155292 A JP 2011155292A JP 2012027912 A JP2012027912 A JP 2012027912A
Authority
JP
Japan
Prior art keywords
execution
source code
application
code
object code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011155292A
Other languages
English (en)
Inventor
Welchman Dan
ダン・ウェルチマン
Tuting Simon
サイモン・トュティン
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.)
General Electric Co
Original Assignee
General Electric Co
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 General Electric Co filed Critical General Electric Co
Publication of JP2012027912A publication Critical patent/JP2012027912A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3676Test management for coverage analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】アプリケーションコードに対する追加・修正を行うことなく、ソースコードの実行に関する統計を生成する。
【解決手段】アプリケーションソースコードに基づいて、アプリケーションオブジェクトコードを生成する(310)。実行ブレークポイントのような実行検出手段を、各オブジェクトコード該当部分に関連付ける(315)。アプリケーションオブジェクトコードの一部分を実行する(320)。実行ブレークポイントに到達した時点で、オブジェクトコード該当部分に対応するソースコード該当部分に、実行イベントが関連付けられる(330)。実行イベントを用いて、ソースコード該当部分の実行(320)をソースコードビューア及び/又は実行メータ等のグラフィカルユーザインタフェースの形で通知する(350)。
【選択図】図3

Description

本明細書に開示の主題は、概してアプリケーションソースコード管理に関し、特に、人間可読ソースコードの実行の検出及び通知に用いるシステム及び方法に関する。
少なくとも一部の既知のコンピュータシステムでは、テストコードを用い、所定入力及び期待出力に基づいて、アプリケーションコードを自動的に実行する。また、一部の既知のシステムでは、テスト中にアプリケーションコードの実行をトラッキングし、どの部分のソースコードが実行されたかを通知する統計及び/又は報告を生成する。こうした報告を「コードカバレッジ報告」ともいう。
一般に、既知の実行トラッキングシステム及び実行トラッキング方法は、アプリケーションコードに対する修正及び/又は追加を必要とする。しかし、アプリケーションコードに対して修正及び/又は追加を行うことは、時間の投資が必要な上、実行速度及び/又は関連アプリケーションの挙動に悪影響を及ぼす可能性がある。結果として、テストが遅延する可能性がある。また、アプリケーションに対する悪影響の深刻度によっては、実行速度が肝要である実際の、即ち「本番」の状況(live or “production” context)での使用に対して、既知のトラッキングシステムが不当であるとみなされることがある。更に、コードカバレッジ報告は、全てのテストコードの実行が完了しない限り生成されないので、コードカバレッジ報告を待つことで、更なる遅延が発生することがある。
更に、既存のシステムは、アプリケーションコード中の関心部分(該当部分)の静的な前処理定義(static,pre−execution definition)に依存することがあるが、このようなシステムにおいて、実行をトラッキングする該当部分を修正するには、ユーザがアプリケーションを終了及び再実行する必要がある。更に、既存の方法は、或るコード部分が実行されたかどうかをバイナリ形式で通知することにのみ限定されており、滅多に実行されないコードと頻繁に実行されるコードとを区別できない。
米国特許第7503037B2号
課題を解決するための手段では、下記の発明を実施するための形態で更に詳説する概念を抜粋して簡潔に説明する。課題を解決するための手段では、特許請求の主題の重要な特徴又は必須の特徴を特定することも、特許請求の主題の範囲を決定する一助として使用されることも意図していない。
一態様において、アプリケーションソースコードの実行通知に用いるシステムを提供する。本システムは、アプリケーションソースコード中のソースコード該当部分の通知を受け取るように構成された入力インタフェースを含む。アプリケーションソースコードは、複数の操作を記述する複数の人間可読ステートメントを少なくとも含む。本システムはまた、入力インタフェースと結合された、アプリケーションソースコードに基づいてアプリケーションオブジェクトコードを生成するようにプログラムされたプロセッサを含む。アプリケーションオブジェクトコードは、複数のコンピュータ実行可能命令と、ソースコード該当部分に対応するオブジェクトコード該当部分とを少なくとも含む。プロセッサはまた、オブジェクトコード該当部分に実行ブレークポイントを関連付けることと、そのオブジェクトコード該当部分が実行されたことに基づいて、当該実行ブレークポイントを無効にし、メモリ装置内の対応するソースコード該当部分に実行イベントを関連付けることと、を行うようにプログラムされる。
別の態様において、アプリケーションソースコードの実行通知に用いるシステムを提供する。本システムは、アプリケーションソースコード及びアプリケーションオブジェクトコードを格納するように構成されたメモリ装置を含む。アプリケーションソースコードは、複数の操作を記述する複数の人間可読ステートメントを少なくとも含み、アプリケーションオブジェクトコードは、それら複数の人間可読ステートメントに対応する複数のコンピュータ実行可能命令を少なくとも含む。本システムはまた、メモリ装置と結合された、アプリケーションソースコード中の複数のソースコード該当部分の各ソースコード該当部分に対応する、オブジェクトコード該当部分を決定するようにプログラムされたプロセッサを含む。プロセッサはまた、複数のオブジェクトコード該当部分の各オブジェクトコード該当部分に実行ブレークポイントを関連付けることと、アプリケーションオブジェクトコードを実行することと、を行うようにプログラムされる。プロセッサは更に、各実行ブレークポイントについて、関連付けられたオブジェクトコード該当部分が実行されると、実行ブレークポイントを無効にし、オブジェクトコード該当部分に対応する、前記メモリ装置内のソースコード該当部分に実行イベントを関連付けるようにプログラムされる。
更に別の態様において、アプリケーションソースコードの実行通知に用いる方法を提供する。本方法は、アプリケーションソースコード中の複数のソースコード該当部分の通知を、入力インタフェースを介して受け取るステップを含む。アプリケーションオブジェクトコードは、プロセッサによって、アプリケーションソースコードに基づいて生成される。アプリケーションオブジェクトコードは、複数のコンピュータ実行可能命令と、ソースコード該当部分に対応する複数のオブジェクトコード該当部分とを少なくとも含む。これら複数のオブジェクトコード該当部分の各オブジェクトコード該当部分には、プロセッサが、実行ブレークポイントを関連付ける。各実行ブレークポイントについて、関連付けられたオブジェクトコード該当部分が実行されると、その実行ブレークポイントを無効にし、オブジェクトコード該当部分に対応する、メモリ装置内のソースコード該当部分に実行イベントを関連付ける。
添付図面と併せて以下の説明を参照することにより、本明細書に記載の実施例をより深く理解できよう。
例示的なコンピューティング装置のブロック図である。 ネットワーク経由の通信で結合されたアプリケーションホスト装置、アプリケーション開発装置、及びアプリケーション監視装置を含む、例示的な実行トラッキングシステムのブロック図である。 1つ以上のソースコード該当部分の実行通知に用いる例示的な方法のフローチャートである。 図3に示した方法を用いるにあたり想到されるデータフローの一例である。 図2に示したシステムで使用可能な例示的なソースコードビューアである。 図2に示したシステムで使用可能な別のソースコードビューアである。 図2に示したシステムで使用可能な例示的な実行メータである。
本明細書に記載の実施例では、アプリケーションソースコードが実行されたかどうかの通知をオブジェクトコード形式で提供する。具体的に、幾つかの実施例では、アプリケーションの実行中に、アプリケーションソースコード内の該当部分が識別される。アプリケーションソースコードから生成されたアプリケーションオブジェクトコードが、アプリケーションソースコード内の該当部分に対応する該当部分を含む。アプリケーションオブジェクトコードの実行中に、オブジェクトコード該当部分が実行されると、対応するソースコード該当部分に対して実行イベントが記録される。例えば、実行イベントの記録は、実行のたびに、実行カウンタをインクリメントすることにより、且つ/又は離散的イベントを記憶すること(例えば、タイムスタンプを収録すること)により可能である。このように記録された実行イベントに基づいて、1つ以上のソースコード該当部分の実行が通知される。
本明細書で用いる用語「アプリケーションソースコード」は、コンピュータによって実行可能な操作を記述した人間可読ステートメントも包含する。人間可読ステートメントを表示又は印刷の形で表す際に必要な行数に関係なく、単一のステートメントを「コード行」、又は単に「行」と称することがある。機能的に関連する一群のステートメントは、メソッド(関数ともいう)として纏められる。関連する複数のメソッドは、クラスとして纏められ、関連する複数のクラスが、パッケージ又はモジュールとして纏められる。アプリケーション又はアプリケーションで使用されるライブラリによって、アプリケーションソースコードを複数のパッケージに含めることができる。アプリケーションソースコードは、メモリ装置内の1つ以上のファイルに格納される。例えば、各クラスが1つのファイルに対応するようにしてよい。
アプリケーションソースコードから、コンピュータ実行可能命令を含むアプリケーションオブジェクトコードが生成される。例えば、アプリケーションソースコードをコンパイル及び/又は変換して、アプリケーションオブジェクトコードを生成する。アプリケーションオブジェクトコードのコンピュータ実行可能命令は、アプリケーションソースコードのうちの人間可読ステートメントに対応する。人間可読ステートメントとは異なり、コンピュータ実行可能命令は、コンピュータのプロセッサによって、且つ/又はそのようなプロセッサで実行される「バーチャルマシン」によって直接実行可能である。アプリケーションソースコードは、人間可読ステートメントの他に、プロセッサ及び/又はバーチャルマシンによって実行されるアプリケーションオブジェクトコードに直接変換されるものではない、コメント、前処理指令、及び/又は注釈のようなコンテンツを含み得る。
本明細書に記載の実施例は、アプリケーションソースコード及びアプリケーションオブジェクトコードの中の該当部分に関する。ソースコード該当部分には、人間可読ステートメント、メソッド、クラス、及び/又はパッケージを含む。オブジェクトコード該当部分は、ソースコード該当部分に対応する1つ以上のコンピュータ実行可能命令を含む。
動作時には、プロセッサが、アプリケーションオブジェクトコードを実行することにより、ソフトウェアプログラム及び/又はアプリケーションを実行する。アプリケーションオブジェクトコードの実行中は、特定のオブジェクトコード該当部分の実行を監視及び/又は検出する。一実施例では、実行ブレークポイントを、オブジェクトコード該当部分のコンピュータ実行可能命令に関連付ける(例えば、コンピュータ実行可能命令の前に挿入する)。プロセッサは、実行ブレークポイントにおいてアプリケーションオブジェクトコードの実行を一時停止し、監視ユーティリティとして周知の別のアプリケーションが、オブジェクトコード該当部分の実行を認識する。例えば、実行ブレークポイントに到達したことをプロセッサが監視ユーティリティに通知するようにプロセッサをプログラムしてもよく、監視ユーティリティが、プロセッサに対して実行情報を繰り返し要求又は「ポーリング」してもよい。監視ユーティリティは、実行イベントをオブジェクトコード該当部分に関連付けてから、アプリケーションオブジェクトコードの実行を続行するよう、プロセッサに命令する。本明細書に記載の実施例は、実行ブレークポイントを使用するものとして記述されているが、オブジェクトコード該当部分の実行を検出及び/又は監視する任意の手段を適用した動作が可能であり、そのような手段としては、これらに限定されないが、実行イベントを生成するコンピュータ実行可能ステートメントを含むか、且つ/又は参照するように、アプリケーションオブジェクトコードを修正すること(例えば、インストルメンテーション)が挙げられる。
本明細書に記載の方法、システム、及び装置の例示的な技術的効果は、以下のうちの少なくとも1つを含む。(a)アプリケーションソースコード中の複数のソースコード該当部分の通知を、入力インタフェースを介して受け取る。(b)プロセッサにより、アプリケーションソースコードに基づいて、アプリケーションオブジェクトコードを生成する(但し、アプリケーションオブジェクトコードは、複数のコンピュータ実行可能命令と、ソースコード該当部分に対応する複数のオブジェクトコード該当部分とを含む)。(c)プロセッサにより、複数のオブジェクトコード該当部分の各オブジェクトコード該当部分に実行ブレークポイントを関連付ける。(d)各実行ブレークポイントについて、関連付けられたオブジェクトコード該当部分が実行されると、その実行ブレークポイントを無効にし、そのオブジェクトコード該当部分に対応する、メモリ装置内のソースコード該当部分に実行イベントを関連付ける。ブレークポイントを無効にすることにより、アプリケーションの実行速度に対する実行トラッキングの影響を排除又は軽減できる。
図1は、例示的なコンピューティング装置105のブロック図である。コンピューティング装置105は、メモリ装置110と、メモリ装置110に結合された、命令を実行するプロセッサ115とを含む。一部の実施例では、実行可能命令がメモリ装置110に格納される。コンピューティング装置105は、プロセッサ115をプログラムすることにより、本明細書に記載の1つ以上の操作を実行するように構成可能である。例えば、プロセッサ115のプログラミングは、操作を1つ以上の実行可能命令としてエンコードし、それらの実行可能命令をメモリ装置110に与えることにより行われる。プロセッサ115は、(例えばマルチコア構成では)1つ以上の処理ユニットを含む。
メモリ装置110は、実行可能命令及び/又はその他のデータ等の情報の格納及び取り出しを可能にする1つ以上の装置である。メモリ装置110は、1つ以上のコンピュータ可読媒体を含み、これらに限定されないが、動的ランダムアクセスメモリ(DRAM)、静的ランダムアクセスメモリ(SRAM)、ソリッドステートディスク、及び/又はハードディスクを含む。メモリ装置110は、これらに限定されないが、アプリケーションソースコード、アプリケーションオブジェクトコード、ソースコード該当部分、オブジェクトコード該当部分、構成データ、実行イベント、及び/又は他の任意のタイプのデータを格納するように構成される。
一部の実施例において、コンピューティング装置105は、プロセッサ115と結合されたプレゼンテーションインターフェース120を含む。プレゼンテーションインターフェース120は、アプリケーションソースコード及び/又は実行イベント等の情報をユーザ125に提示する。例えば、プレゼンテーションインターフェース120は、ディスプレイアダプタ(図1では図示せず)を含み、ディスプレイアダプタは、ブラウン管(CRT)、液晶ディスプレイ(LCD)、有機LED(OLED)ディスプレイ、及び/又は「電子インク」ディスプレイなどのディスプレイ装置と結合可能である。一部の実施例において、プレゼンテーションインターフェース120は、1つ以上のディスプレイ装置を含む。それに加えて、又はその代わりに、プレゼンテーションインターフェース120は、プリンタを含み得る。一部の実施例において、プレゼンテーションインターフェース120は、1つ以上のソースコード該当部分の実行を、それらのソースコード該当部分に関連付けられた実行イベントに基づいて通知する。例えば、プレゼンテーションインターフェース120を、後で詳述するように、ソースコードビューア及び/又は実行メータを表示するように構成可能である。
一部の実施例において、コンピューティング装置105は、ユーザ入力インタフェース135又は通信インタフェース140などの入力インタフェース130を含む。入力インタフェース130は、アプリケーションソースコード中の1つ以上の該当部分の通知、及び/又は本明細書に記載の方法への適用に好適な任意の情報を受け取るように構成可能である。
本実施例において、ユーザ入力インタフェース135は、プロセッサ115と結合されており、ユーザ125からの入力を受け取る。ユーザ入力インタフェース135としては、例えば、キーボード、ポインティングデバイス、マウス、スタイラス、タッチパネル(例えば、タッチパッド又はタッチスクリーン)、ジャイロスコープ、加速度計、位置検出器、及び/又は音声ユーザ入力インタフェースなどが挙げられる。タッチスクリーンのように、1つのコンポーネントが、プレゼンテーションインターフェース120及びユーザ入力インタフェース135の両方のディスプレイ装置として機能する場合がある。
通信インタフェース140は、プロセッサ115と結合されており、別のコンピューティング装置105等の1つ以上の遠隔装置と通信接続するように構成されている。例えば、通信インタフェース140には、これに限定されないが、有線ネットワークアダプタ、無線ネットワークアダプタ、及び/又は移動通信アダプタが含まれる。通信インタフェース140はまた、1つ以上の遠隔装置にデータを送信できる。例えば、1つのコンピューティング装置105の通信インタフェース140が、1つ以上のソースコード該当部分の通知、及び/又は1つ以上の実行イベントを、別のコンピューティング装置105の通信インタフェース140に送信できる。
図2は、例示的システム200のブロック図であり、システム200は、ネットワーク220経由の通信で結合されたアプリケーションホスト装置205、アプリケーション開発装置210、及びアプリケーション監視装置215を含む。ネットワーク220としては、これらに限定されないが、インターネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線LAN(WLAN)、メッシュネットワーク、及び/又は仮想プライベートネットワーク(VPN)が挙げられる。
アプリケーションホスト装置205、アプリケーション開発装置210、及びアプリケーション監視装置215は、(図1に示した)コンピューティング装置105である。本実施例において、各コンピューティング装置105は、通信インタフェース140を介してネットワーク220と結合されている。別の実施例において、アプリケーションホスト装置205は、アプリケーション開発装置210及び/又はアプリケーション監視装置215に組み込まれている。
アプリケーション開発装置210は、(例えば、ユーザ入力インタフェース135及び/又はプレゼンテーションインターフェース120を介して)アプリケーション開発者225と対話する。例えば、アプリケーション開発装置210は、アプリケーション開発者225からアプリケーションソースコードを受け取るように構成される。アプリケーション開発装置210は、アプリケーションソースコードを、ネットワーク220経由でアプリケーションホスト装置205に送信する。
アプリケーションホスト装置205は、アプリケーションソースコードを受信し、(例えば、メモリ装置110に)格納する。アプリケーションホスト装置205はまた、アプリケーションソースコードに基づいてアプリケーションオブジェクトコードを生成するように構成可能である。
アプリケーション監視装置215は、(例えば、ユーザ入力インタフェース135及び/又はプレゼンテーションインターフェース120を介して)アプリケーション監視者230と対話する。一実施例において、アプリケーション監視装置215は、1つ以上のソースコード該当部分の通知をアプリケーション監視者230から受け取り、ソースコード該当部分の通知をアプリケーションホスト装置205に送信する。例えば、アプリケーション監視者230が、アプリケーションソースコードの各人間可読ステートメントがソースコード該当部分であることの通知を入力する。
アプリケーションホスト装置205は、ソースコード該当部分の通知を受信し、アプリケーションオブジェクトコードを実行し、実行イベントをソースコード該当部分に関連付けるが、これらについては、図3及び図4を参照して詳述する。アプリケーションホスト装置205及び/又はアプリケーション監視装置215はまた、ソースコード該当部分の実行を通知する1つ以上のグラフィカルユーザインタフェースの生成及び/又は提示が可能である。
幾つかの実施例において、アプリケーション監視装置215は、アプリケーションホスト装置205から遠く離れている。例えば、アプリケーション監視装置215は、アプリケーションホスト装置205から地理的に離れたサポート施設に配置されている。こうした実施例では、遠隔で、ソースコード該当部分を定義し、実行イベントを監視することができる。例えば、アプリケーション監視者230は、アプリケーション監視者230の顧客が操作するアプリケーションホスト装置205における実際の実行アクティビティを遠隔監視できる。
図3は、1つ以上のソースコード該当部分の実行通知に用いる例示的な方法300のフローチャートである。図4は、方法300の使用で発生し得る例示的なデータフローの図400である。図5〜7は、方法300で使用する例示的なユーザインタフェースであり、これについては後で詳述する。
方法300の各部分の実行は、例えば、システム200のコンピューティング装置105の任意の1つ又は任意の組み合わせを用いて行われる。本実施例では、アプリケーションソースコード405の中の、1つ以上の該当部分(例えば、人間可読ステートメント、メソッド、クラス、及び/又はパッケージ)を決定する(305)。例えば、入力装置を介してソースコード該当部分の通知410を受け取ることにより、ソースコード該当部分を決定(305)する。通知410は、例えば、ユーザ入力装置から入力された、ソースコード該当部分の選択、所定の監視構成の選択、及び/又は監視構成ファイルを含み得る。それに加えて、又はその代わりに、ソースコード該当部分を、プロセッサが自動的に決定(305)してもよい。例えば、アプリケーションソースコード405又はアプリケーションソースコード405のサブセットの中の各人間可読ステートメントを、ソースコード該当部分として識別するように、プロセッサをプログラムできる。一実施例では、アプリケーションソースコード中の各人間可読ステートメントがソースコード該当部分である。
プロセッサによって実行されるバーチャルマシン415が、アプリケーションソースコード405に基づいて、アプリケーションオブジェクトコード420を生成する(310)。アプリケーションオブジェクトコード420は、複数のコンピュータ実行可能命令と、ソースコード該当部分に対応する複数のオブジェクトコード該当部分とを含む。例えば、オブジェクトコード該当部分は、アプリケーションソースコード405のうちの人間可読ステートメントに対応する1つ以上のコンピュータ実行可能命令を含む。一実施例において、バーチャルマシン415は、コンパイラ425を実行して、アプリケーションオブジェクトコード420を生成する(310)。
バーチャルマシン415は、実行ブレークポイント430のような実行検出手段を、各オブジェクトコード該当部分に関連付ける(315)。例えば、ソースコード該当部分に対応する各コンピュータ実行可能命令セット又はその前の場所にあるアプリケーションオブジェクトコード420に、実行ブレークポイント430を関連付ける。別の実施例において、バーチャルマシン415は、ソースコード該当部分に対応する各コンピュータ実行可能命令セット(又はその前)の場所にある所定のコンピュータ実行可能命令(例えば実行イベントロギング命令)を含むように、且つ/又は参照するようにアプリケーションオブジェクトコード420を修正することにより、実行検出手段を関連付ける(315)。
バーチャルマシン415は、アプリケーションオブジェクトコード420の一部分を少なくとも実行する(320)。実行(320)中、バーチャルマシン415は、オブジェクトコード該当部分の実行(320)がなされているか、保留されているか、且つ/又は、実行がなされようとしているかを判定する(325)。例えば、バーチャルマシン415は、実行ブレークポイント430に到達した時点で、アプリケーションオブジェクトコード420の実行(320)を一時停止できる。オブジェクトコード該当部分に対応するソースコード該当部分に、実行イベント435が関連付けられる(330)。一実施例では、ソースコード該当部分に関連付けられた実行イベント435がメモリ装置に格納され、実行(320)がなされた時刻、及び/又は対応するオブジェクトコード該当部分が実行された時刻を通知するタイムスタンプを含み得る。別の実施例において、各ソースコード該当部分は、メモリ装置にある実行(320)の数(「実行カウント」)に関連付けられ、ソースコード該当部分に実行イベント435を関連付ける(330)ことは、関連付けられた実行カウントをインクリメントすることを含む。実行イベント435は、アプリケーションデータ構造体、データベース内のレコード、構造化テキスト(例えば、拡張可能マークアップ言語)、プレーンテキスト(例えば、区切り値又は固定幅値)、及び/又は本明細書に記載の方法での使用に好適な他の任意の形式として生成可能である。
一部の実施例では、実行ブレークポイント430を無効にする(335)(例えば、非アクティブにする、及び/又は除去する)。実行イベント435がオブジェクトコード該当部分に関連付けられた時点で実行ブレークポイント430を無効にする(335)ことにより、アプリケーションオブジェクトコード420の実行(320)速度を高めることができる。例えば、バーチャルマシン415では、実行中のコンピュータ実行可能命令に関連付けられたブレークポイント430の存在に基づいて、オブジェクトコード該当部分の実行を確認(325)できる。そのような例では、ブレークポイント430を無効にする(335)ことによって、バーチャルマシン415は、せいぜい1つの実行イベント435をオブジェクトコード該当部分に関連付け(330)、そのオブジェクトコード該当部分のその後の実行(320)では関連付け(330)のステップを省略する。
その他の実施例では、オブジェクトコード該当部分が実行されるたびに、そのオブジェクトコード該当部分に実行イベント435を関連付ける(330)。こうした実施例では、オブジェクトコード該当部分が実行された頻度の算出が容易になる。これについては、後で詳述する。
バーチャルマシン415は、オブジェクトコード該当部分が実行されたかどうかにかかわらず、アプリケーションオブジェクトコード420の実行(320)が完了したかどうかを判定する(340)。例えば、実行(320)が完了したことになるのは、アプリケーションが入力データセットの処理を完了した後、アプリケーションが終了要求を受け取った後、且つ/又は、アプリケーションが致命的エラーに遭遇した後である。バーチャルマシン415が、実行(320)は完了していないと判定した(340)場合、バーチャルマシン415は、アプリケーションオブジェクトコード420の実行(320)を続行する。
アプリケーションオブジェクトコード420の実行(320)の途中又は後に、ソースコード該当部分の実行(320)が通知される(350)。一実施例において、実行イベント435を用いて、ソースコード該当部分の実行(320)をグラフィカルユーザインタフェースの形で通知する(350)。グラフィカルユーザインタフェースは、ソースコードビューア440及び/又は実行メータ445等で、プレゼンテーションインターフェースを介してユーザに対して表示される。ソースコードビューア440については、後で図5及び図6を参照して説明する。実行メータ445については、後で図7を参照して説明する。
一部の実施例では、ソースコード該当部分を、関連付けられた実行イベント435に基づいてグラフィカルに際立たせる。例えば、実行イベント435に関連付けられたソースコード該当部分を第1の背景色で表示し、実行イベント435に関連付けられていないソースコード該当部分を別の背景色で表示する。ソースコード該当部分に関連付けられた実行イベント435の数を調べるには、例えば、ソースコード該当部分に関連付けられた(例えば、タイムスタンプを含む)離散的実行イベントの数を調べるか、且つ/又は、ソースコード該当部分に関連付けられた実行カウントを識別する。
一部の実施例では、ソースコード該当部分の実行頻度を、アプリケーションオブジェクトコード形式で通知する。こうした実施例では、ソースコード該当部分への実行イベント435の関連付け(330)を、対応するオブジェクトコード該当部分が実行されるごとに(例えば、離散的実行イベントを生成することによって、且つ/又は、実行カウントをインクリメントすることによって)行う。350では、ソースコード該当部分に関連付けられた実行イベント435の数を通知する。一部の実施例では、実行イベントの絶対数を通知する(350)。例えば、12個の実行イベントに関連付けられたソースコード該当部分については、12回の実行が通知される(350)。
それに加えて、又はその代わりに、ソースコード該当部分の実行頻度を通知(350)してもよい。一部の実施例では、複数の実行頻度を定義する(302)。例えば、実行頻度を事前定義してメモリ装置に格納すること、且つ/又は、アプリケーションオブジェクトコード420の実行中に実行頻度を定義することができる。各実行頻度は、実行イベント数の範囲に対応する。実行頻度としては、例えば、ゼロ個の実行イベントに対応する、一度も実行されなかった頻度、1個の実行イベントに対応する、一度だけ実行された頻度、及び/又は、2個以上の実行イベントに対応する、繰り返し実行された頻度等があってよい。一実施例において、実行頻度は以下のように定義される。
Figure 2012027912
上記の表では具体的な数の範囲を記載したが、任意の範囲の実行イベント数に対応する任意の数の実行頻度を定義する(302)ことができる。
ソースコード該当部分の実行を通知する(350)前に、各ソースコード該当部分に実行頻度を関連付ける(347)ことができる。例えば、ソースコード該当部分に関連付けられた実行カウント及び/又は実行イベント435の数に基づいて、実行頻度を確定できる。
一部の実施例では、バーチャルマシン415がアプリケーションオブジェクトコード420を実行する(320)間に、1つ以上のソースコード該当部分の実行を通知する(350)ように、プレゼンテーションインターフェースを構成する。例えば、プレゼンテーションインターフェースを、ソースコード該当部分の実行を繰り返し通知(350)し、ソースコード該当部分に関連付けられた実行イベントの数が増えるにつれて、グラフィカルインタフェースを更新するように構成する。更に、プレゼンテーションインターフェースを、バーチャルマシン415が第2のオブジェクトコード該当部分を実行する(320)間に、実行済みの第1のオブジェクトコード該当部分に対応する第1のソースコード該当部分の実行を通知するように構成する。
一部の実施例では、バーチャルマシン415がアプリケーションオブジェクトコード420を実行する(320)間に、1つ以上の該当部分の通知を受け取る(305)。バーチャルマシン415は、アプリケーションオブジェクトコード420の実行(320)を終了することなく、通知された該当部分に対応するアプリケーションオブジェクトコード420を生成(310)、且つ/又は、そのアプリケーションオブジェクトコード420にブレークポイント430を関連付ける(315)。例えば、バーチャルマシン415は、アプリケーションオブジェクトコード420の少なくとも一部分の実行(320)の一時停止、通知された該当部分に対応する1つ以上のクラスの再コンパイル及び/又は再ロード、及び/又はアプリケーションオブジェクトコード420の実行(320)の再開が可能である。
図5は、(図3に示した)方法300による、(図2に示した)アプリケーション開発装置210及び/又はアプリケーション監視装置215等のコンピューティング装置に適用可能な例示的なソースコードビューア500である。一実施例では、ソースコードビューア500を使用して、(図1に示した)プレゼンテーションインターフェース120を介してアプリケーション監視者230に提示を行い、ユーザ入力インタフェース135を介してアプリケーション監視者230からの入力を受け取る。
ソースコードビューア500は、要約ペイン505及び詳細ペイン510を含む。要約ペイン505は、ファイル中のアプリケーションソースコードの要約又は「サムネイル」画像515と、ファイル中の、詳細ペイン510に表示されている部分を示す表示部分インジケータ520とを含む。一実施例において、ファイルは、複数のソースコード該当部分(例えば、人間可読ステートメント、メソッド、及び/又はクラス)を含み、詳細ペイン510は、ソースコード該当部分のサブセットを含む。
要約ペイン505及び詳細ペイン510には、第1のメソッド525及び第2のメソッド530が含まれ、これらのそれぞれに1つ以上の人間可読ステートメント535が含まれている。第1のメソッド525は、第1の背景パターン540とともに表示され、第2のメソッド530は、第2の背景パターン545とともに表示されており、これらによって、第1のメソッド525と第2のメソッド530をグラフィカルに見分けることができる。第1の背景パターン540及び第2の背景パターン545は、要約ペイン505及び詳細ペイン510の両方に表示されている。
一実施例において、第1のメソッド525及び第2のメソッド530は、それぞれが、1つ以上の実行イベントに関連付けが可能なソースコード該当部分である。例えば、第1のメソッド525に対応する何らかのコンピュータ実行可能命令が実行された場合には、実行イベントが第1のメソッド525に関連付けられる。別の実施例では、各人間可読ステートメント535がソースコード該当部分である。第1のメソッド525に対する実行イベントの数は、第1のメソッド525の中の人間可読ステートメント535に関連付けられた実行イベントに基づいて決定される。例えば、第1のメソッド525に対する実行イベントの数は、第1のメソッド525の中の人間可読ステートメント535に関連付けられた実行イベントの合計値、平均値、最小値、及び/又は最大値に基づいて計算可能である。同様に、人間可読ステートメントに関連付けられた実行イベントを、クラス別、パッケージ別、及び/又はアプリケーション別に分類できる。
一実施例では、ソースコードビューア500は、グラフィカルな区別(例えば、第1の背景パターン540及び第2の背景パターン545)を用いて、第1のメソッド525が1つ以上の実行イベントに関連付けられていて、第2のメソッド530が実行イベントに関連付けられていないことを示す。別の実施例では、そのようなグラフィカルな区別を用いて、第1のメソッド525及び第2のメソッド530が、異なる数の実行イベント及び/又は異なる実行頻度に関連付けられていることを示す。さらに別の実施例では、第1の背景パターン540が、第1のメソッド525が最近の実行イベント及び/又は現在実行中のオブジェクトコードに関連付けられていることを示す。例えば、最近の実行イベントは、現在時刻に先行する所定期間(例えば、10秒、30秒、60秒、及び/又は3分)内における、実行カウントのインクリメント及び/又は離散的実行イベントの生成として定義することができる。更に、上述のグラフィカルな区別のメソッドを結合することも可能である。
一実施例において、ソースコードビューア500は、アプリケーションオブジェクトコードの実行中に要約ペイン505及び/又は詳細ペイン510を繰り返し(例えば、定期的に、又は実行イベントの通知を受けて、又はユーザからの要求を受けて)更新する。このような実施例では、実行イベントに関連付けられていない第1のソースコード該当部分が、その後のある時点に初めて実行イベントに関連付けられた場合、第1のソースコード該当部分は、実行イベントに関連付けられないままの他のソースコード該当部分とグラフィカルに区別される。更に、所定期間だけ、第1のソースコード該当部分を、既に実行イベントに関連付けられていた他のソースコード該当部分とグラフィカルに区別するようにしてもよい。
図5に示したように、グラフィカルな区別は、背景パターンを適用することにより行われる。それに加えて、又はその代わりに、グラフィカルな区別は、色(例えば、背景色又は前景色)、線のパターン、線の太さ、書体、書体の太さ、アニメーション(例えば、退色及び/又は明滅)、近接配置したアイコン、及び/又は他の任意の、グラフィカルな要素どうしを区別する適当な手段を適用することによっても可能である。
図6は、(図3に示した)方法300による、(図2に示した)アプリケーション開発装置210及び/又はアプリケーション監視装置215等のコンピューティング装置に適用可能な、第2の例示的ソースコードビューア600である。ソースコードビューア600は、ファイルのうち、アプリケーションソースコードを含む部分を示す詳細ペイン605を含む。具体的に、詳細ペイン605は、メソッド615の中の複数の人間可読ステートメント535を示している。各人間可読ステートメント535は、ソースコード該当部分を表す。
人間可読ステートメント535の隣には、対応する実行カウント620がある。実行カウント620は、人間可読ステートメント535に直接関連付けが可能であり、関連付けられた人間可読ステートメント535が実行されるたびにインクリメントできる。それに加えて、又はその代わりに、実行カウント620を、人間可読ステートメント535に関連付けられた実行イベントの数をカウントすることによって決定してもよい。
人間可読ステートメント535は、関連付けられた実行頻度に基づいて、グラフィカルに区別される。例えば、第1の背景パターン630は、実行カウント620の第1の範囲(例えば、6個から12個の実行イベント)に対応する第1の実行頻度に関連付けられた人間可読ステートメント535に適用される。第2の背景パターン635は、実行カウント620の第2の範囲(例えば、21個から50個の実行イベント)に対応する第2の実行頻度に関連付けられた人間可読ステートメント535に適用される。更に、第3の背景パターン640は、メソッド615のうちの、アプリケーションオブジェクトコード内のコンピュータ実行可能命令に対応しない、コメント645等の部分に適用される。
ソースコードビューア500と同様に、ソースコードビューア600も繰り返し更新できる。こうした実施例により、実行アクティビティの実時間監視が容易になる。
図7は、方法300による、アプリケーション開発装置210及び/又はアプリケーション監視装置215等のコンピューティング装置に適用可能な例示的な実行メータ700である。実行メータ700は、ソースコード該当部分を定義するための追加ボタン705と、複数の実行頻度のそれぞれに関連付けられたソースコード該当部分(例えば、人間可読ステートメント)の比率を示す要約実行ゲージ710とを含む。別の実施例において、要約実行ゲージ710は、少なくとも1個の実行イベントに関連付けられたソースコード該当部分の比率を示す。
実行メータ700はまた、複数のファイルについての詳細実行ゲージ720を有する表715を含む。詳細実行ゲージ720は、各ファイル内の、各実行頻度に関連付けられたソースコード該当部分の比率を示す。例えば、第4の詳細実行ゲージ725は、第1のブロック730、第2のブロック735、第3のブロック740、及び第4のブロック745を含んでおり、それぞれは、ファイル内の、特定の実行頻度に関連付けられたソースコード該当部分の比率を表している。更に、第4の詳細実行ゲージ725は、空ブロック750を含んでおり、空ブロック750は、ゼロ個の実行イベント及び/又は一度も実行されなかった頻度に関連付けられたソースコード該当部分の比率を表している。各ブロック730、735、740、745、750は、それぞれ異なる塗りつぶしパターンで示されているので、各実行頻度に関連付けられた、ソースコード該当部分の各比率間のグラフィカルな区別が容易になる。詳細実行ゲージ720の隣にあるのは実行済み比率760であり、これは、各ファイル内の、少なくとも1個の実行イベントに関連付けられたソースコード該当部分の比率を数値で示している。
表715はまた、各ファイル内のソースコード該当部分についての最大実行カウントアイコン765、最大実行カウント770、合計実行カウント775、(例えば、アプリケーションオブジェクトコードとして実行可能なソースコード該当部分の数を示す)実行可能ソースコード該当部分カウント780、及び(例えば、少なくとも1つの実行イベントに関連付けられた実行可能ソースコード該当部分の数を示す)実行済みソースコード該当部分カウント785を含む。
一部の実施例において、実行メータ700は、アプリケーションオブジェクトコードの実行中に繰り返し更新される。このような実施例により、実行アクティビティの実時間監視が容易になる。
実行メータ700は、ファイル別に分けられた人間可読ステートメントを表すソースコード該当部分とともに示されている。それに加えて、又はその代わりに、ソースコード該当部分を、メソッド別、ファイル別、クラス別、及び/又はパッケージ別に表示してもよい。更に、ソースコード該当部分を、メソッド、クラス、ファイル、及び/又はパッケージとして定義してもよい。
本明細書に記載の実施例では、アプリケーションがテストされる間、又は実際の、即ち「本番」の状況で実行される間に、アプリケーションソースコードのどの部分が実行されたかを通知できる。こうした通知により、例えば、テストされていないソースコード、テストが不十分なソースコード、及び/又は頻繁に実行されるソースコード等のように、アプリケーションソースコードのクリティカルな部分を識別できるようになる。識別されたクリティカル部分については、修正(例えば、リファクタリング)時に、追加の自動テスト、パフォーマンス最適化、及び/又は追加の精査を行うことができる。更に、実行情報を用いて、一度も実行されなかったソースコードを識別し、そのようなソースコードを削除することにより、アプリケーションに関連付けられたメンテナンスの手間及び/又はコストを削減できる。本明細書に記載の実施例では更に、アプリケーションオブジェクトコードの実行中にソースコード該当部分の定義及び実行アクティビティの監視を行うことができるので、アプリケーションオブジェクトコードの実行を終了及び再開することによる遅延や不便さがなくなる。
本明細書に記載の方法及びシステムは、本明細書に記載の特定の実施例に限定されない。例えば、各システムの部品及び/又は各方法のステップを、本明細書に記載のその他の部品及び/又はステップとは別個独立に使用及び/又は実施してもよい。また、各部品をその他の装置及び方法において適用及び/又は実施してもよい。
一部の実施例では、1つ以上の電子装置又はコンピューティング装置の使用が必要である。典型的には、そのような装置は、プロセッサ又は制御装置などであり、具体的には、汎用中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、マイクロコントローラ、縮小命令セットコンピュータ(RISC)プロセッサ、特定用途向け集積回路(ASIC)、プログラマブル論理回路(PLC)、及び/又は他の任意の、本明細書に記載の機能を実行可能な回路又はプロセッサ等である。本明細書に記載の方法は、これらに限定されないが、記憶装置及び/又はメモリ装置等のコンピュータ可読媒体で実施される実行可能命令としてエンコード可能である。こうした命令をプロセッサが実行することにより、本明細書に記載の方法の少なくとも一部分をプロセッサが実行する。上述の例は、あくまでも例示的なものなので、プロセッサという用語の定義及び/又は意味を決して限定するものではない。
様々な実施例に関して本発明を説明したが、当業者には明らかなように、特許請求の範囲及び概念の範囲内で、本発明に改良を加えて実施することができる。
105 コンピューティング装置
110 メモリ装置
115 プロセッサ
120 プレゼンテーションインターフェース
125 ユーザ
130 入力インタフェース
135 ユーザ入力インタフェース
140 通信インタフェース
200 例示的システム
205 アプリケーションホスト装置
210 アプリケーション開発装置
215 アプリケーション監視装置
220 ネットワーク
225 アプリケーション開発者
230 アプリケーション監視者
300 方法
302 実行頻度を定義する
305 該当部分の通知を決定する/受け取る
310 アプリケーションオブジェクトコードを生成する
315 該当部分にブレークポイントを関連付ける
320 アプリケーションオブジェクトコードを実行する
325 該当部分が実行されたか?
330 該当部分に実行イベントを関連付ける
335 ブレークポイントを無効にする
340 実行が完了したか?
347 各該当部分に実行頻度を関連付ける
350 該当部分の実行を通知する
400 例示図
405 アプリケーションソースコード
410 該当部分の通知
415 バーチャルマシン
420 アプリケーションオブジェクトコード
425 コンパイラ
430 実行ブレークポイント
435 実行イベント
440 ソースコードビューア
445 実行メータ
500 ソースコードビューア
505 要約ペイン
510 詳細ペイン
515 「サムネイル」画像
520 表示部分インジケータ
525 第1のメソッド
530 第2のメソッド
535 人間可読ステートメント
540 第1の背景パターン
545 第2の背景パターン
600 ソースコードビューア
605 詳細ペイン
615 メソッド
620 実行カウント
630 第1の背景パターン
635 第2の背景パターン
640 第3の背景パターン
645 コメント
700 実行メータ
705 追加ボタン
710 要約実行ゲージ
715 表
720 詳細実行ゲージ
725 第4の詳細実行ゲージ
730 第1のブロック
735 第2のブロック
740 第3のブロック
745 第4のブロック
750 空ブロック
760 実行済み比率
765 最大実行カウントアイコン
770 最大実行カウント
775 合計実行カウント
780 該当部分カウント
785 該当部分カウント

Claims (10)

  1. アプリケーションソースコード(405)の実行通知に用いるシステムであって、
    前記アプリケーションソースコード中のソースコード該当部分の通知を受け取るように構成された入力インタフェース(130)であって、前記アプリケーションソースコードは、複数の操作を記述する複数の人間可読ステートメント(535)を少なくとも含む、前記入力インタフェース(130)と、
    前記入力インタフェースと結合されたプロセッサ(115)であって、
    前記アプリケーションソースコードに基づいてアプリケーションオブジェクトコードを生成するステップ(310)であって、前記アプリケーションオブジェクトコード(420)は、複数のコンピュータ実行可能命令と、前記ソースコード該当部分に対応するオブジェクトコード該当部分とを少なくとも含むステップ(310)と、
    前記オブジェクトコード該当部分に実行ブレークポイント(430)を関連付けるステップと、
    前記オブジェクトコード該当部分が実行されたことに基づいて、前記実行ブレークポイントを無効にし、メモリ装置(110)内の対応するソースコード該当部分に実行イベント(435)を関連付けるステップと、を行うようにプログラムされたプロセッサ(115)と、
    を備えるシステム。
  2. 前記関連付けられた実行イベント(435)に基づいて、前記ソースコード該当部分が実行されたことを通知するように構成されたプレゼンテーションインターフェース(120)を更に備える、請求項1に記載のシステム。
  3. 前記ソースコード該当部分が更に、第1のソースコード該当部分であり、前記プレゼンテーションインターフェース(120)は、前記第1のソースコード該当部分と、実行されなかったアプリケーションオブジェクトコード(420)に対応する第2のソースコード該当部分とをグラフィカルに区別するように構成された、請求項2に記載のシステム。
  4. 前記オブジェクトコード該当部分が、前記アプリケーションオブジェクトコード(420)の第1の部分であり、前記プレゼンテーションインターフェース(120)は、前記プロセッサ(115)が前記アプリケーションオブジェクトコードの第2の部分を実行する間に、前記第1のオブジェクトコード該当部分に対応する前記ソースコード該当部分が実行されたことを通知するように構成された、請求項2に記載のシステム。
  5. 前記入力インタフェース(130)が、前記プロセッサ(115)が前記アプリケーションオブジェクトコード(420)を実行する間に、前記ソースコード該当部分の通知を受け取るように構成され、前記プロセッサが更に、前記アプリケーションオブジェクトコードの実行を終了することなく、前記オブジェクトコード該当部分に前記実行ブレークポイント(430)を関連付けるようにプログラムされた、請求項1に記載のシステム。
  6. 前記入力インタフェース(130)が、前記アプリケーションソースコード中の1つの人間可読ステートメント(535)に対応する少なくとも1つのソースコード該当部分の通知を受け取るように構成された、請求項1に記載のシステム。
  7. アプリケーションソースコード(405)の実行通知に用いるシステムであって、
    アプリケーションソースコード及びアプリケーションオブジェクトコード(420)を格納するように構成されたメモリ装置(110)であって、前記アプリケーションソースコードは、複数の操作を記述する複数の人間可読ステートメント(535)を少なくとも含み、前記アプリケーションオブジェクトコードは、前記複数の人間可読ステートメントに対応する複数のコンピュータ実行可能命令を少なくとも含む、前記メモリ装置(110)と、
    前記メモリ装置と結合されたプロセッサ(115)であって、
    前記アプリケーションソースコード中の複数のソースコード該当部分の各ソースコード該当部分に対応するオブジェクトコード該当部分を決定するステップと、
    前記複数のオブジェクトコード該当部分の各オブジェクトコード該当部分に実行ブレークポイント(430)を関連付けるステップと、
    前記アプリケーションオブジェクトコードを実行するステップと、
    各実行ブレークポイントについて、前記関連付けられたオブジェクトコード該当部分が実行されると、前記実行ブレークポイントを無効にし、前記オブジェクトコード該当部分に対応する、前記メモリ装置内のソースコード該当部分に実行イベント(435)を関連付けるステップと、を行うようにプログラムされたプロセッサ(115)と、
    を備えるシステム。
  8. 前記プロセッサ(115)と結合された、前記複数のソースコード該当部分の通知を受け取るように構成された入力インタフェース(130)を更に備え、各ソースコード該当部分は、前記アプリケーションソースコード(405)中の前記複数の人間可読ステートメントの中の1つの人間可読ステートメント(535)に対応する、請求項7に記載のシステム。
  9. 前記入力インタフェース(130)が、ネットワーク(220)通信装置を備える、請求項8に記載のシステム。
  10. 前記入力インタフェース(130)が更に、前記アプリケーションソースコード(405)中の前記複数の人間可読ステートメントの各人間可読ステートメント(535)がソースコード該当部分であることの通知を受け取ることにより、前記複数のソースコード該当部分の通知を受け取るように構成された、請求項8に記載のシステム。
JP2011155292A 2010-07-20 2011-07-14 アプリケーションコードの実行通知に用いるシステム及び方法 Pending JP2012027912A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/839,779 US20120023483A1 (en) 2010-07-20 2010-07-20 System and method for use in indicating execution of application code
US12/839,779 2010-07-20

Publications (1)

Publication Number Publication Date
JP2012027912A true JP2012027912A (ja) 2012-02-09

Family

ID=44915307

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011155292A Pending JP2012027912A (ja) 2010-07-20 2011-07-14 アプリケーションコードの実行通知に用いるシステム及び方法

Country Status (4)

Country Link
US (1) US20120023483A1 (ja)
EP (1) EP2410429A1 (ja)
JP (1) JP2012027912A (ja)
CN (1) CN102339224A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107003828B (zh) * 2014-12-15 2021-05-14 英特尔公司 图形指令的仪器化
US9672139B2 (en) * 2015-07-21 2017-06-06 Successfactors, Inc. Debugging in a production environment
US10996936B2 (en) * 2017-06-27 2021-05-04 Intel Corporation Techniques for distributing code to components of a computing system
US11487643B1 (en) * 2018-11-12 2022-11-01 Xilinx, Inc. Debugging for integrated scripting applications

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62231344A (ja) * 1986-04-01 1987-10-09 Hitachi Ltd プログラム実行状況表示システム
JPH0193839A (ja) * 1987-07-10 1989-04-12 Tandem Comput Inc プログラムの実行を測定する方法および装置
JPH07160531A (ja) * 1993-12-03 1995-06-23 Fujitsu Ltd プログラム実行経路表示装置
JPH09114699A (ja) * 1995-10-16 1997-05-02 Hitachi Ltd 範囲指示によるプログラムチューニング方式

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0470322B1 (en) * 1990-08-07 1996-04-03 BULL HN INFORMATION SYSTEMS ITALIA S.p.A. Message-based debugging method
US5446838A (en) * 1992-11-13 1995-08-29 International Business Machines Corporation Floating highlights on a computer program code display
US5901315A (en) * 1997-06-13 1999-05-04 International Business Machines Corporation Method for debugging a Java application having native method dynamic load libraries
US6223144B1 (en) * 1998-03-24 2001-04-24 Advanced Technology Materials, Inc. Method and apparatus for evaluating software programs for semiconductor circuits
US6079032A (en) * 1998-05-19 2000-06-20 Lucent Technologies, Inc. Performance analysis of computer systems
US6230313B1 (en) * 1998-12-23 2001-05-08 Cray Inc. Parallelism performance analysis based on execution trace information
US6826746B2 (en) * 2001-03-08 2004-11-30 International Business Machines Corporation Debugger probe for object oriented programming
US7010785B2 (en) * 2001-03-23 2006-03-07 International Business Machines Corporation Eliminating cold register store/restores within hot function prolog/epilogs
US20040205720A1 (en) * 2001-04-30 2004-10-14 Robert Hundt Augmenting debuggers
US7533374B2 (en) * 2003-06-12 2009-05-12 Intel Corporation Adaptively storing system code in non-volatile storage
US20050028036A1 (en) * 2003-07-30 2005-02-03 Kohsaku Shibata Program debug apparatus, program debug method and program
US7519953B2 (en) * 2003-09-30 2009-04-14 Microsoft Corporation Method and system for automatically testing a software build
US7299319B2 (en) * 2004-03-22 2007-11-20 International Business Machines Corporation Method and apparatus for providing hardware assistance for code coverage
DE102004058882A1 (de) * 2004-12-06 2006-06-08 Giesecke & Devrient Gmbh Erzeugen von Programmcode in einem Ladeformat und Bereitstellen von ausführbarem Programmcode
US20060225051A1 (en) * 2005-04-05 2006-10-05 Cisco Technology, Inc. Method and system for code coverage
US7926042B2 (en) * 2005-10-31 2011-04-12 Hewlett-Packard Development Company, L.P. System and method for dynamic instrumentation
US8001481B2 (en) * 2007-04-30 2011-08-16 International Business Machines Corporation Implementation of an interactive progress bar in a test application environment
US9285946B2 (en) * 2008-02-29 2016-03-15 Red Hat, Inc. Generation of a progress notification in a software loop
US8572577B2 (en) * 2008-06-20 2013-10-29 International Business Machines Corporation Monitoring changes to data within a critical section of a threaded program
US20100169602A1 (en) * 2008-12-29 2010-07-01 Jared E Hulbert Method and Apparatus for Efficient Memory Placement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62231344A (ja) * 1986-04-01 1987-10-09 Hitachi Ltd プログラム実行状況表示システム
JPH0193839A (ja) * 1987-07-10 1989-04-12 Tandem Comput Inc プログラムの実行を測定する方法および装置
JPH07160531A (ja) * 1993-12-03 1995-06-23 Fujitsu Ltd プログラム実行経路表示装置
JPH09114699A (ja) * 1995-10-16 1997-05-02 Hitachi Ltd 範囲指示によるプログラムチューニング方式

Also Published As

Publication number Publication date
EP2410429A1 (en) 2012-01-25
CN102339224A (zh) 2012-02-01
US20120023483A1 (en) 2012-01-26

Similar Documents

Publication Publication Date Title
JP5749996B2 (ja) アプリケーション・コードの実行表示用のシステムおよび方法
US8645912B2 (en) System and method for use in replaying software application events
KR101650110B1 (ko) 콜백을 사용하여 소프트웨어의 동적 계측을 위한 고장안전 메커니즘
US8938729B2 (en) Two pass automated application instrumentation
US9244815B2 (en) Integrated debugger and code coverage tool
US9519495B2 (en) Timed API rules for runtime verification
US20130159977A1 (en) Open kernel trace aggregation
CN103109276B (zh) 系统测试方法
US10169002B2 (en) Automated and heuristically managed solution to quantify CPU and path length cost of instructions added, changed or removed by a service team
US11003574B2 (en) Optimized testing system
US9104795B2 (en) Integrating compiler warnings into a debug session
US20150006961A1 (en) Capturing trace information using annotated trace output
US20120222009A1 (en) Defective code warning resolution analysis
CN108563526A (zh) 一种iOS卡顿监控策略
US9361205B2 (en) Code coverage framework
JP2012027912A (ja) アプリケーションコードの実行通知に用いるシステム及び方法
CN104487935A (zh) 记录外部过程
EP4085336B1 (en) Computer resource leak detection
Jovic et al. Measuring the performance of interactive applications with listener latency profiling
Jovic et al. Listener latency profiling: Measuring the perceptible performance of interactive Java applications
US20140165041A1 (en) Crash notification between debuggers
KR101394225B1 (ko) 다중 언어로 개발된 어플리케이션을 위한 프로파일링 수행 시스템 및 이를 이용한 프로파일링 방법
US9003371B2 (en) Recursive method call representation in a plot view of method execution performance
Zheng et al. Rethinking Process Management for Interactive Mobile Systems
Lee A Performance Measurement and Analysis Method for Infotainment System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140708

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150602