JP2014146358A - デバッガ・データ・プロセシング・システム、デバッギング方法およびコンピュータ・プログラム - Google Patents

デバッガ・データ・プロセシング・システム、デバッギング方法およびコンピュータ・プログラム Download PDF

Info

Publication number
JP2014146358A
JP2014146358A JP2014063558A JP2014063558A JP2014146358A JP 2014146358 A JP2014146358 A JP 2014146358A JP 2014063558 A JP2014063558 A JP 2014063558A JP 2014063558 A JP2014063558 A JP 2014063558A JP 2014146358 A JP2014146358 A JP 2014146358A
Authority
JP
Japan
Prior art keywords
debug
tour
source code
breakpoints
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.)
Granted
Application number
JP2014063558A
Other languages
English (en)
Other versions
JP5782543B2 (ja
Inventor
Peter Andrew Nicholls
ピーター・アンドリュー・ニコルス
Charles Turnham Jeffrey
ジェフリー・チャールズ・ターンハム
Stephen Swan Jeremiah
ジェレミアー・ステフェン・スワン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014146358A publication Critical patent/JP2014146358A/ja
Application granted granted Critical
Publication of JP5782543B2 publication Critical patent/JP5782543B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

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)

Abstract

【課題】ソースコードをデバッギングするためのデバッグ・ツアー用の新規かつ非自明な方法、システムおよびコンピュータ・プログラムを提供する。
【解決手段】本発明のデバッガ・データ・プロセシング・システムは、ホスト・コンピューティング・プラットフォーム210において実行するデバッガ230と、該デバッガに結合されたデバッグ・ツアー・マネジャ300とを含む。前記デバッグ・ツアー・マネジャは、ソースコード240の前のデバッギング・セッション中に確立された命令されたセットのブレークポイント250、260からなるデバッグ・ツアー270をロードし、前記デバッグ・ツアー中の前記ブレークポイントを、別個にロードされたソースコード240に適用し、かつ前記ソースコードを実行するとともに前記デバッガ内部の前記命令されたセットにより規定された命令において前記適用されたブレークポイントを呼び出すようにイネーブルされたプログラム・コードを含む。
【選択図】図2

Description

本発明はソフトウエア開発の分野に関し、特にソフトウエアのデバッギングに関する。
ソフトウエア開発技法はコンピュータ・プログラムのための機能的な仕様の単なるコーディングを越えて広がっている。今日のソフトウエア開発は、機能的な仕様を実装するアプリケーションのための適切なアーキテクチャを形成するのにつながる機能的仕様でもって開始するライフサイクルに合わせている。このライフサイクルはアプリケーションの物理的なコーディングとともに継続し、そのコードの完全性を確保するための相互作用テストおよびデバッギングのサイクルを含む。最後に、デバッグされたコードの実行は解析されることができ、そのコードの性能を改善するためにそのコードを更に修正することができる。
これまでのデバッギング・プロセスは過去10年の間殆ど変わって来なかった。一般に、集中した開発環境(IDE)により提供されるデバッガは、何行ものソースコード上にそのデバッガがブレークポイントをセットするのを許容する。ソースコードの実行中、その実行は確立したブレークポイントを有する各々の行すなわちラインごとに停止即ちブレークさせることができる。そのソースコードがそのブレークポイントにより与えられる停止状態(stasis)に留まる間に、そのデバッガはそのソースコードが計画通り実行されたか否かを判定するために一般的にメモリおよび変数の値を観察することができる。ある開発者が証言するように、デバッギング中のブレークポイントを革新的に使用することがデバッギング・プロセスの基本的な側面である。
1個もしくは1セットのブレークポイントをセットするという行為(act)はその性質上アドホックなものとして大きく特徴付けられる。だからそのIDEにおけるソースコード上にセットされるブレークポイントの数および特性によってはそのデバッギング・プロセスはデバッギング・セッションからデバッギング・セッションまで変化し得る。特に、或るラインのソースコードに一旦セットされたブレークポイントが、そのブレークポイントをセットする時点でその開発者にとって意味のあるものであっても、後になるとそのブレークポイントがその意味を失ってしまうかもしれない。更にそのデバッガは確立されたブレークポイントの目的をそのときどきのインスタンスで思い起こすことを強いられる。
更にソースコード中の多くのいろいろな場所からソースコード中の同じコードのパスに到達することができる。その結果、そのソースコード中の期待された場所からその確立されたブレークポイントのところに到達するときそのブレークポイントが意味を持つが、その同じ確立されたブレークポイントはそのソースコード中の異なる場所から到達したかどうか紛らわしいことがあり得る。従って、ソースコードを通るそのパスのコンテキスト(context)は、デバッギング・セッション中にソースコード中の個々のブレークポイントをセットするとき完全に失われることがある。
本発明の目的は、ソースコードのデバッギングに関する従来技術の欠点に対処するものであり、ソースコードをデバッギングするためのデバッグ・ツアー用の新規かつ非自明な方法、システムおよびコンピュータ・プログラムを提供することにある。
本発明の一実施例では、デバッガ・データ・プロセシング・システムを提供することができる。前記システムは、ホスト・コンピューティング・プラットフォームにおいて実行するデバッガと、該デバッガに結合されたデバッグ・ツアー・マネジャとを含むことができる。前記デバッグ・ツアー・マネジャは、ソースコードの、前のデバッギング・セッション中に確立された、順序付けられたセットのブレークポイントを含むデバッグ・ツアーをロードし、前記デバッグ・ツアー中の前記ブレークポイントを、別個にロードされたソースコードに適用し、かつ前記デバッガ内部の前記順序付けられたセットにより提供される順序で適用される前記ブレークポイントを備えた前記別個にロードされたソースコードを実行するようにイネーブルされたプログラム・コードを含むことができる。
前記のブレークポイントはウエイポイントおよびチェックポイントの両方のインスタンスを含むことができる。前記のインスタンスの各々は、記述を含むことができ、また前記のインスタンスの各々は、別個にロードされたソースコードのライン、システム・イベント、アプリケーション・イベント、スタック・パターンおよびタイマーのいずれかに基づくトリガーを含むことができる。チェックポイントのインスタンスは更に、前記ソースコードの実行の継続の基となる条件を含むこともできる。更に、チェックポイントのインスタンスはまた、中断されたデバッグ・ツアーを継続させる基となる条件を含むこともできる。
本発明の他の実施例では、デバッギング方法を提供することができる。前記方法は、ソースコードの、前のデバッギング・セッション中に確立されたブレークポイントの、順序付けられたセットを含むデバッグ・ツアーをロードするステップと、前記デバッグ・ツアー中の前記ブレークポイントを、別個にロードされたソースコードに適用するステップと、前記別個にロードされたソースコードを実行するとともに、前記適用されたブレークポイントを前記順序付けられたセットにより提供された順序で呼び出すステップとを含む。 前記のソースコードの、前のデバッギング・セッション中に確立されたブレークポイントの、順序付けられたセットを含むデバッグ・ツアーをロードするステップは、ソースコードの、前のデバッギング・セッション中に確立されたウエイポイントおよびチェックポイントの両方の順序付けられたセットを含むデバッグ・ツアーをロードするステップを含むことができる。
本発明の実施例の一つの側面では、前記デバッグ・ツアー中の前記ブレークポイントを、前記別個にロードされたソースコードに適用するステップが、前記デバッグ・ツアー中の前記ブレークポイントを、前記別個にロードされたソースコードに、前記別個にロードされたソースコード中の位置、システムもしくはアプリケーションのイベント、スタック・パターン、またはタイマーのようなトリガーに関連して適用するステップを含むことができる。本発明の実施例の他の側面では、前記別個にロードされたソースコードを実行するとともに、前記順序付けられたセットにより提供される順序で前記ブレークポイントを呼び出すステップが、前記別個にロードされたソースコードを実行するとともに、前記適用されたウエイポイントを呼び出し、かつ期待されたコードのパスから逸れが生じる場合にのみ通知をするステップを含むことができる。
本発明の別の側面が、一部は以下の記述に、また一部はその記述から自明な範囲として開示され、あるいは本発明を実施することによって学習することができるかもしれない。本発明のそれらの側面は、特許請求の範囲に特に指摘されたエレメントおよび組み合わせによって得られ、そして理解されよう。前述の一般的な記述および以下の詳細な記述は両方とも例示であり、説明のためだけのものであって、本発明を制限しないもの、請求項に示すとおりのものと理解されたい。
ソースコードをデバッグするためのデバッグ・ツアー管理プロセスの図式図である。 デバッグ・ツアー管理のために構成されたデバッガ・データ処理システムの図式図である。 ソースコードをデバッグするためのプロセスを説明するフローチャートである。
本明細書と添付図面とは本発明の実施例を示し、その記述とともに本発明の原理を説明するのに役立つ。ここで説明されるその実施例は現在好ましいと考えられているものだが、本発明は図で示したもの同じ構成に限定されるものではないことを理解されたい。
本発明の実施例はソースコードをデバッギングするためのデバッグ・ツアー管理のための方法、システムおよびコンピュータ・プログラムを提供する。本発明の実施例によれば、デバッグ・ツアーとして第1のデバッギング・セッションにおけるデバッグ・ターゲット中の、異なるラインのソースコードのために、順序付けられたセットのブレークポイントが確立され得る。そのブレークポイントのセット、はチェックポイント、ウエイポイントもしくはその両方を含むことができる。その後、そのブレークポイントのセットはデバッグ・ツアーとしてデバッグ・ターゲットとは別個に維持されることができる。その後、そのデバッグ・ツアーは第2のデバッギング・セッションにおいてデバッグ・ターゲットにロードされ、適用されることができる。このようにして、順序付けられたセットのブレークポイントはそのデバッグ環境における問題解決をスピードアップするため再使用するように維持されることができる。
説明図の中で、図1はソースコードをデバッギングするためのデバッグ・ツアー管理プロセスを図式的に示す。図1に示すように、異なるブレークポイント120、130がソースコード110の異なるラインごとに確立され得る。ブレークポイント120はチェックポイント120およびウエイポイント130の両方を含むことができる。各チェックポイント120は、条件が満たされてしまうまでソースコード110の実行が許可されないブレークポイントになり得る。各ウエイポイント130は、対比して言えば、予め特定された条件が満たされてしまうまではデバッグ・ツアー140の継続が中断されるブレークポイントになり得る。チェックポイント120およびウエイポイント130の両方について、チェックポイント120およびウエイポイント130にデバッグ・ツアー140が到達する際、アクションが行われるが、それはロギングおよびレポーティングを含む。
デバッグ・ツアー・マネジャ160は、ソースコード110とは別個にストアされたデバッグ・ツアー140の中に一つのセットの確立されたブレークポイント120、130を或る規定された順序で集合させることができる。この点で、デバッギング・セッション中のブレークポイントの位置付けのアドホック的な性質(すなわち、その場その場でしか使えない特性)を減らそうという意図でもって、ブレークポイントの再使用が促進されるように、デバッグ・ツアー140中のブレークポイント120、130のその順序付けられたセットが個別に文書化されることができる。その結果、デバッグ・ツアー・マネジャ160は、後続の異なるデバッギング・セッションにおけるソースコード150に適用できるようにデバッグ・ツアー140をロードすることができ、これらのセッションを通じてブレークポイント120、130の順序付け、特性および意図がデバッガにより認識されることができる。このようにして、そのデバッギング・プロセスはデバッグ・ツアー140により特定される順序でのブレークポイント120、130の再使用を通じ、明確さとともにスピードアップされることができる。
図1に示されるプロセスはデバッガ・データ処理システムに採用されることができる。図2は、デバッグ・ツアー管理のために構成されたデバッガ・データ処理システムの図式的な説明である。このシステムはオペレーティング・システム220の実行をサポートするホスト・コンピューティング・プラットフォーム210を含むことができる。オペレーティング・システム220はデバッガ230を含む1個以上のアプリケーションの動作を管理するように構成される。デバッガ230は、ソースコード240をデバッグするためにブレークポイントの使用を通じてソースコード240が徐々に実行され得るような開発環境を提供するようにプログラムされることができる。
デバッギング・プロセスの一部として、ソースコード240中の各ブレークポイントのところで、ソースコード240の実行を休止することができて、ソースコード240の実行から生じるメモリ中のデータ・エレメントの手動での検査を行えるようにするとともに、プログラムの例外を生じるソースコードのラインが識別される。特に、デバッグ・ツアー・マネジャ300はデバッガ230に結合されることができる。デバッグ・ツアー・マネジャ300はソースコード240中にチェックポイント250およびウエイポイント260の両方のインスタンスを定義しセットするようにイネーブルされたプログラム・コードを含むことができる。デバッグ・ツアー・マネジャ300のプログラム・コードは更に、デバッグ・ツアー270中のソースコード240のためのチェックポイント250およびウエイポイント260のインスタンスを集合させるようにイネーブルされることができる。デバッグ・ツアー・マネジャ300のプログラム・コードは更に、ソースコード240の後続のデバッギング・セッション中に、デバッグ・ツアー270をロードするように、かつソースコード240中のチェックポイント250およびウエイポイント260のインスタンスを適用するようにイネーブルされることができる。
ウエイポイント260は、ウエイポイント260のインスタンスがデバッグ・ツアー270の中に集合させられるのを許容する特性を含むブレークポイントであることができる。この特性は、一例を挙げれば、記述および1個以上のタグを含むことができる。その特性は更に、ソースコード位置、スタック・パターン、システム・イベントもしくはアプリケーション・イベントから生じるトリガーを含むことができる。同様に、チェックポイント250もまたブレークポイントになることができ、チェックポイント250のインスタンスがデバッグ・ツアー270中に集合させられるのを許容する特性を含む。その特性はウエイポイント260の特性に似ており、更にチェックポイント250はタイマーの経過即ち時間切れから生じるトリガーを含むことができる。また、ウエイポイント260のインスタンスと異なり、その特性はデバッグ・ツアー270の再開が依存する条件を含むことができる。
ソースコード240の実行中、ウエイポイント260のインスタンスの期待されたセットに遭遇するかもしれない。ウエイポイント260のインスタンスに遭遇するたびに、そのインスタンスに関連するアクションが、もしあれば実行され得る。ウエイポイント260の遭遇したインスタンスの順序付けがデバッグ・ツアー270に開示されたウエイポイント260のインスタンスの期待された順序付けと一致する限りは、ウエイポイント260のインスタンスに遭遇することを示す必要がないようにするという選択も可能である。例えば、前記適用されたウエイポイントを呼び出し、かつ期待されたコードのパスから逸れが生じる場合にのみ通知をすることもできる。あるいは、その順序付けられたセットにより提供される順序で前記適用されたチェックポイントおよびウエイポイントの両方を呼び出し、かつ期待されたコードのパスから逸れが生じる場合にのみ通知をすることもできる。どのような場合にも、ソースコード240の実行中にデバッグ・ツアー270の可視化を提供することができる。
デバッグ・ツアー・マネジャ300の動作を更に説明すると、図3はソースコードをデバッグするためのデバッグ・ツアー管理のためのプロセスを示すフローチャートである。ブロック305で始まるが、ソースコードはデバッガにおいてデバッグ・ターゲットとしてロードされることができる。ブロック310では、以前に主張されたデバッグ・ツアーがデバッガにおけるデバッグ・ターゲットのためのデバッギング・セッションに適用するようにロードされ得る。ブロック315では、デバッグ・ツアーのウエイポイントおよびチェックポイントが取り出され得る。そしてブロック320では、その取り出されたウエイポイントおよびチェックポイントがデバッグ・ターゲットに適用され得る。その後、ブロック325では、デバッグ・ターゲットがデバッガにおいて実行され得る。
ブロック330で、もしソースコードの実行が完了していなければ、ブロック335でブレークポイントに遭遇することがあり得る。このブレークポイントはウエイポイントもしくはチェックポイントであり得、ソースコードのラインに関連して、タイマーの経過を通じて、もしくはアプリケーションもしくはシステム・イベントの発生を通じて、またはそのスタックにおいて認識されるパターンを通じて遭遇することがあり得る。判定ブロック340では、そのブレークポイントがウエイポイントであるか調べることができる。もしそうであれば、ブロック345でそのウエイポイントに関連するアクションが何かあればそれが実行されることができ、そしてそのプロセスはブロック325に戻る。そうでない場合、判定ブロック350でそのブレークポイントがチェックポイントであるか調べられる。もしそうなら、判定ブロック355でそのチェックポイントに関連する条件が合致するかを調べられる。一度条件が合致すればプロセスはブロック345に続行し、その関連するアクションがあればそれを実行する。判定ブロック330で、その実行が完了すると、ブロック360で、そのプロセスは終了することができる。
本発明の実施例は、完全にハードウエアの実施例、完全にソフトウエアの実施例、またはハードウエアおよびソフトウエアの両方のエレメントを含む実施例の形態をとることができる。好適な実施例では、本発明は、ファームウエア、常駐のソフトウエア、マイクロコードなどを含むがそれらに限定されないソフトウエアで実装される。更に、本発明は、コンピュータ利用可能もしくはコンピュータ読み出し可能な媒体からアクセス可能なコンピュータ・プログラム製品またはプログラムそのものの形態をとることができ、コンピュータもしくは任意の命令実行システムによりもしくはそれと関連して使用するためのプログラム・コードを提供する。
ここでの説明の関係上、コンピュータが使用可能もしくはコンピュータが読み出し可能な媒体は、命令を実行するシステム、装置もしくはデバイスによりあるいはそれと関連して使用するためのプログラムを含み、ストアし、通信し、伝播し、もしくは搬送することができる任意の装置であってもよい。その媒体は電子的、磁気的、光学的、電磁気的、赤外線、もしくは半導体のシステム(装置もしくはデバイス)、または伝播媒体であり得る。コンピュータ読み出し可能な媒体は、半導体もしくは固体のメモリ、磁気テープ、取り外し可能なコンピュータ・フロッピー・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、ハード磁気ディスクおよび光ディスクを含む。光ディスクの現在の例はCD−ROM(コンパクト・ディスクの読み出し専用メモリ)、CD−R/W(コンパクト・ディスクの読み書きメモリ)およびDVDを含む。
プログラム・コードをストアしたり実行したりするのに適するデータ処理システムは、メモリ・エレメントにシステム・バスを介して直接もしくは間接に結合される少なくとも1個のプロセッサを含む。そのメモリ・エレメントは、プログラム・コード、大容量ストレージおよびキャッシュ・メモリの実際の実行中に用いられるローカル・メモリを含むことができる。そのキャッシュ・メモリは大容量ストレージから実行中にコードを取り出さねばならない回数を少なくするために少なくとも幾つかのプログラム・コードを一時的に記憶する役割がある。入出力装置即ちI/O装置(キーボード、ディスプレイ、ポインティング装置などを含む)がそのシステムに直接にもしくは中間のI/Oコントローラを介して結合されることができる。そのシステムにはネットワーク・アダプタがまた結合されていてもよい。これによりそのデータ処理システムが他のデータ処理システムに、または中間の私的もしくは公的なネットワークを介して遠隔のプリンタもしくはストレージ装置に結合されるようになるのが可能となる。モデム、ケーブル・モデム、およびイーサーネット・カードは現在利用可能なタイプのネットワーク・アダプタのほんの一部である。
110 ソースコード
120 チェックポイント
130 ウエイポイント
120、130 (総称して)ブレークポイント
140 デバッグ・ツアー
150 ソースコード
160 デバッグ・ツアー・マネジャ
210 ホスト・コンピューティング・プラットフォーム
220 オペレーティング・システム
230 デバッガ
240 ソースコード
250 チェックポイント
260 ウエイポイント
270 デバッグ・ツアー
300 デバッグ・ツアー・マネジャ

Claims (12)

  1. ホスト・コンピューティング・プラットフォームにおいて実行するデバッガと、
    該デバッガに結合されたデバッグ・ツアー・マネジャであって、
    ソースコードから、前のデバッギング・セッション中に確立された、或る規定された順序のブレークポイントのセットを集合させることによって、前記ソースコードからは別個にストアされている、デバッグ・ツアーを確立し、
    ソースコードの、次のデバッギング・セッション中に確立された、順序付けられた順序のブレークポイントのセットを含む、前記デバッグ・ツアーをロードし、
    前記ロードされたデバッグ・ツアーから前記ブレークポイントのセットを取り出し、
    前記デバッグ・ツアー・マネジャによって、前記ブレークポイントのセットを、前記ロードされたデバック・ツアーから、別個にロードされたソースコードに適用し、
    前記デバッガ内部の前記既定された順序により提供される順序で適用されるブレークポイントを備えた前記別個にロードされたソースコードを実行し、
    前記ソースコードの実行中に前記デバッグ・ツアーを可視化する、
    ようにイネーブルされたプログラム・コードを含む、
    前記デバッグ・ツアー・マネジャとを含み、
    前記ブレークポイントのセットはチェックポイントおよびウエイポイントのインスタンスを含み、前記チェックポイントは、条件が満たされてしまうまでソースコードの実行が許可されないブレークポイントであり、前記ウエイポイントは、予め特定された条件が満たされてしまうまではデバッグ・ツアーの継続が中断されるブレークポイントであり、前記チェックポイントおよび前記ブレークポイントの各々は、チェックポイントおよびウエイポイントのインスタンスが前記デバッグ・ツアーに集合させられるのを許容する特性を含む、
    デバッガ・データ・プロセシング・システム。
  2. 前記インスタンスの各々が、ソースコードのライン、システム・イベント、アプリケーション・イベント、スタック・パターン、およびタイマーのうちのいずれかに基づくトリガーを含む、請求項1に記載のシステム。
  3. ソースコードの、前のデバッギング・セッション中に確立された、或る規定された順序のブレークポイントのセットを集合させることによって、前記ソースコードからは別個にストアされている、デバッグ・ツアーを確立するステップと、
    ソースコードの、次のデバッギング・セッション中に、前記デバッグ・ツアーをロードするステップと、
    前記ロードされたデバッグ・ツアーから前記ブレークポイントのセットを取り出すステップと、
    前記デバッグ・ツアー・マネジャによって、前記ブレークポイントのセットを、前記ロードされたデバック・ツアーから、別個にロードされたソースコードに適用するステップと、
    前記別個にロードされたソースコードを実行して、前記規定された順序により提供される順序で前記ブレークポイントのセットを呼び出すステップと
    前記ソースコードの実行中に前記デバッグ・ツアーを可視化するステップと、
    を含み、
    前記ブレークポイントのセットはチェックポイントおよびウエイポイントのインスタンスを含み、前記チェックポイントは、条件が満たされてしまうまでソースコードの実行が許可されないブレークポイントであり、前記ウエイポイントは、予め特定された条件が満たされてしまうまではデバッグ・ツアーの継続が中断されるブレークポイントであり、前記チェックポイントおよび前記ブレークポイントの各々は、チェックポイントおよびウエイポイントのインスタンスが前記デバッグ・ツアーに集合させられるのを許容する特性を含む、
    デバッギング方法。
  4. 前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに適用するステップが、前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに、前記別個にロードされたソースコード中の位置を含むトリガーに関連して適用するステップを含む、請求項3に記載のデバッギング方法。
  5. 前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに適用するステップが、前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに、システムもしくはアプリケーションのイベントを含むトリガーに関連して適用するステップを含む、請求項3に記載のデバッギング方法。
  6. 前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに適用するステップが、前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに、スタック・パターンを含むトリガーに関連して適用するステップを含む、請求項3に記載のデバッギング方法。
  7. 前記別個にロードされたソースコードを実行して、前記規定された順序により提供される順序で前記ブレークポイントのセットを呼び出すステップが、前記別個にロードされたソースコードを実行するとともに、前記適用されたウエイポイントを呼び出し、かつ期待されたコードのパスから逸れが生じる場合にのみ通知をするステップを含む、請求項3に記載のデバッギング方法。
  8. ソースコードの、前のデバッギング・セッション中に確立された、或る規定された順序のブレークポイントのセットを集合させることによって、前記ソースコードからは別個にストアされている、デバッグ・ツアーを確立するための、コンピュータが実行するプログラム・コードと、
    ソースコードの、次のデバッギング・セッション中に、前記デバッグ・ツアーをロードするための、コンピュータが実行するプログラム・コードと、
    前記ロードされたデバッグ・ツアーから前記ブレークポイントのセットを取り出すための、コンピュータが実行するプログラム・コードと、
    前記デバッグ・ツアー・マネジャによって、前記ブレークポイントのセットを、前記ロードされたデバック・ツアーから、別個にロードされたソースコードに適用するための、コンピュータが実行するプログラム・コードと、
    前記別個にロードされたソースコードを実行して、前記規定された順序により提供される順序で前記ブレークポイントのセットを呼び出すための、コンピュータが実行するプログラム・コードとを含み、
    前記ブレークポイントのセットはチェックポイントおよびウエイポイントのインスタンスを含み、前記チェックポイントは、条件が満たされてしまうまでソースコードの実行が許可されないブレークポイントであり、前記ウエイポイントは、予め特定された条件が満たされてしまうまではデバッグ・ツアーの継続が中断されるブレークポイントであり、前記チェックポイントおよび前記ブレークポイントの各々は、チェックポイントおよびウエイポイントのインスタンスが前記デバッグ・ツアーに集合させられるのを許容する特性を含む、
    デバッギング用のコンピュータ・プログラム。
  9. 前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに適用するための、コンピュータが実行するプログラム・コードが、前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに、前記別個にロードされたソースコード中の位置を含むトリガーに関連して適用するための、コンピュータが実行するプログラム・コードを含む、請求項8に記載のコンピュータ・プログラム。
  10. 前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに適用する、コンピュータが実行するプログラム・コードが、前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに、システムもしくはアプリケーションのイベントを含むトリガーに関連して適用するための、コンピュータが実行するプログラム・コードを含む、請求項8に記載のコンピュータ・プログラム。
  11. 前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに適用するための、コンピュータが実行するプログラム・コードが、前記デバッグ・ツアー中の前記ブレークポイントのセットを、前記別個にロードされたソースコードに、スタック・パターンを含むトリガーに関連して適用するための、コンピュータが実行するプログラム・コードを含む、請求項8に記載のコンピュータ・プログラム。
  12. 前記別個にロードされたソースコードを実行して、前記規定された順序により提供される順序で前記ブレークポイントのセットを呼び出すための、コンピュータが実行するプログラム・コードが、前記別個にロードされたソースコードを実行するとともに、前記適用されたウエイポイントを呼び出し、かつ期待されたコードのパスから逸れが生じる場合にのみ通知を提供する、請求項8に記載のコンピュータ・プログラム。
JP2014063558A 2008-04-07 2014-03-26 デバッガ・データ・プロセシング・システム、デバッギング方法およびコンピュータ・プログラム Expired - Fee Related JP5782543B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/099,012 US20090254888A1 (en) 2008-04-07 2008-04-07 Debug tours for software debugging
US12/099012 2008-04-07

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009089298A Division JP2009252247A (ja) 2008-04-07 2009-04-01 デバッガ・データ・プロセシング・システム、デバッギング方法およびコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
JP2014146358A true JP2014146358A (ja) 2014-08-14
JP5782543B2 JP5782543B2 (ja) 2015-09-24

Family

ID=41134417

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009089298A Pending JP2009252247A (ja) 2008-04-07 2009-04-01 デバッガ・データ・プロセシング・システム、デバッギング方法およびコンピュータ・プログラム
JP2014063558A Expired - Fee Related JP5782543B2 (ja) 2008-04-07 2014-03-26 デバッガ・データ・プロセシング・システム、デバッギング方法およびコンピュータ・プログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009089298A Pending JP2009252247A (ja) 2008-04-07 2009-04-01 デバッガ・データ・プロセシング・システム、デバッギング方法およびコンピュータ・プログラム

Country Status (3)

Country Link
US (1) US20090254888A1 (ja)
JP (2) JP2009252247A (ja)
TW (1) TWI530783B (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8904356B2 (en) 2010-10-20 2014-12-02 International Business Machines Corporation Collaborative software debugging in a distributed system with multi-member variable expansion
US8671393B2 (en) 2010-10-21 2014-03-11 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific dynamic breakpoints
US8972945B2 (en) 2010-10-21 2015-03-03 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific access control
US9009673B2 (en) 2010-10-21 2015-04-14 International Business Machines Corporation Collaborative software debugging in a distributed system with collaborative step over operation
US9411709B2 (en) 2010-11-10 2016-08-09 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific event alerts
US8850397B2 (en) 2010-11-10 2014-09-30 International Business Machines Corporation Collaborative software debugging in a distributed system with client-specific display of local variables
US8990775B2 (en) 2010-11-10 2015-03-24 International Business Machines Corporation Collaborative software debugging in a distributed system with dynamically displayed chat sessions
US9740562B2 (en) * 2010-12-20 2017-08-22 Microsoft Technology Licensing, Llc Method for checkpointing and restoring program state
US8638535B2 (en) * 2011-01-10 2014-01-28 Hamilton Sundstrand Corporation Vertical mount transient voltage suppressor array
US8739127B2 (en) 2011-04-20 2014-05-27 International Business Machines Corporation Collaborative software debugging in a distributed system with symbol locking
US8656360B2 (en) 2011-04-20 2014-02-18 International Business Machines Corporation Collaborative software debugging in a distributed system with execution resumption on consensus
US8806438B2 (en) 2011-04-20 2014-08-12 International Business Machines Corporation Collaborative software debugging in a distributed system with variable-specific messages
US8756577B2 (en) * 2011-06-28 2014-06-17 International Business Machines Corporation Collaborative software debugging in a distributed system with private debug sessions
JP5785474B2 (ja) * 2011-10-27 2015-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラムのデバッグ方法、デバッグ装置、およびデバッグ支援gui
US9134966B2 (en) 2013-12-12 2015-09-15 International Business Machines Corporation Management of mixed programming languages for a simulation environment
TWI751706B (zh) * 2020-09-16 2022-01-01 宏碁股份有限公司 自動產生開發解決方案的方法及裝置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6292033A (ja) * 1985-10-17 1987-04-27 Omron Tateisi Electronics Co プログラムデバツグ装置
JPS63244239A (ja) * 1987-03-31 1988-10-11 Hitachi Ltd プログラム実行経路検証方法
JPH0695915A (ja) * 1992-09-16 1994-04-08 Sharp Corp デバッグ処理方法
JPH07191876A (ja) * 1993-12-27 1995-07-28 Nec Corp プログラム試験装置とその使用方法
JPH08272648A (ja) * 1994-12-29 1996-10-18 Hitachi Ltd デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置
JPH11306042A (ja) * 1998-04-16 1999-11-05 Toshiba Corp ソフトウェア開発支援装置及びデバッグ方法
JP2001034503A (ja) * 1999-07-21 2001-02-09 Oki Electric Ind Co Ltd ブレークポイント設定方法及び障害解析装置

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345383B1 (en) * 1994-09-14 2002-02-05 Kabushiki Kaisha Toshiba Debugging support device and debugging support method
US5701488A (en) * 1995-06-07 1997-12-23 Motorola, Inc. Method and apparatus for restoring a target MCU debug session to a prior state
US5983017A (en) * 1996-11-12 1999-11-09 Lsi Logic Corporation Virtual monitor debugging method and apparatus
JPH11120028A (ja) * 1997-10-13 1999-04-30 Nec Corp プログラム移植サポート方式
US6418543B1 (en) * 1998-07-14 2002-07-09 Cisco Technology, Inc. Apparatus and method for debugging source code
US6311326B1 (en) * 1999-01-04 2001-10-30 Emc Corporation Online debugging and tracing system and method
US6959431B1 (en) * 1999-05-13 2005-10-25 Compuware Corporation System and method to measure and report on effectiveness of software program testing
US6502210B1 (en) * 1999-10-01 2002-12-31 Stmicroelectronics, Ltd. Microcomputer debug architecture and method
US6591378B1 (en) * 2000-02-22 2003-07-08 Motorola, Inc. Debug controller in a data processor and method therefor
DE10036278A1 (de) * 2000-07-26 2002-02-07 Bosch Gmbh Robert Verfahren zur Überwachung eines Programmablaufs mittels einer Debug Logik
CA2321019A1 (en) * 2000-09-27 2002-03-27 Ibm Canada Limited-Ibm Canada Limitee Capturing snapshots of a debuggee's state during a debug session
US6990657B2 (en) * 2001-01-24 2006-01-24 Texas Instruments Incorporated Shared software breakpoints in a shared memory system
US7320125B2 (en) * 2001-05-24 2008-01-15 Techtracker, Inc. Program execution stack signatures
US7577942B2 (en) * 2001-07-26 2009-08-18 International Business Machines Corporation Efficient monitoring of program variables under debug
US20030084376A1 (en) * 2001-10-25 2003-05-01 Nash James W. Software crash event analysis method and system
CA2360650A1 (en) * 2001-10-31 2003-04-30 Ibm Canada Limited-Ibm Canada Limitee Algorithm to create and compare debug scenarios of a computer process
US7398519B2 (en) * 2001-11-30 2008-07-08 International Business Machines Corporation Inheritance breakpoints for use in debugging object-oriented computer programs
JP4208591B2 (ja) * 2002-02-07 2009-01-14 パナソニック株式会社 ブレイクポイント設定装置、ブレイクポイント設定方法及びブレイクポイント設定プログラム
US7134115B2 (en) * 2002-02-07 2006-11-07 Matsushita Electric Industrial Co., Ltd. Apparatus, method, and program for breakpoint setting
US6981248B2 (en) * 2002-05-02 2005-12-27 International Business Machines Corporation Conditional breakpoint encountered indication
EP1378832A1 (en) * 2002-07-04 2004-01-07 Sap Ag Process and system for comfortable debugging of computer programs
US7213179B2 (en) * 2002-07-30 2007-05-01 Cisco Technology, Inc. Automated and embedded software reliability measurement and classification in network elements
US20040040013A1 (en) * 2002-08-26 2004-02-26 Mohit Kalra Time-based breakpoints in debuggers
US7225431B2 (en) * 2002-10-24 2007-05-29 International Business Machines Corporation Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
US7225429B2 (en) * 2003-06-12 2007-05-29 International Business Machines Corporation Breakpoint groups based on control flow
US7568192B2 (en) * 2003-09-29 2009-07-28 International Business Machines Corporation Automated scalable and adaptive system for memory analysis via identification of leak root candidates
US20070011334A1 (en) * 2003-11-03 2007-01-11 Steven Higgins Methods and apparatuses to provide composite applications
GB0326903D0 (en) * 2003-11-19 2003-12-24 Ibm System and method for software debugging
US7343588B2 (en) * 2004-01-30 2008-03-11 International Business Machines Corporation Method of generating and utilizing debug history
US7353427B2 (en) * 2004-04-08 2008-04-01 International Business Machines Corporation Method and apparatus for breakpoint analysis of computer programming code using unexpected code path conditions
JP4944368B2 (ja) * 2004-06-08 2012-05-30 キヤノン株式会社 マルチプロセッサシステム、デバッグ方法、及びプログラム
US20060059468A1 (en) * 2004-09-10 2006-03-16 Sony Computer Entertainment Inc. Methods and systems for graphically navigating within a debugger program
US20060200807A1 (en) * 2005-03-03 2006-09-07 International Business Machines Corporation Breakpoint timers
US7917894B2 (en) * 2005-06-03 2011-03-29 International Business Machines Corporation Constraining source code and objects for analysis tools
US20070074168A1 (en) * 2005-09-29 2007-03-29 International Business Machines Corporation Automated step type determination
US8079037B2 (en) * 2005-10-11 2011-12-13 Knoa Software, Inc. Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications
US7669186B2 (en) * 2005-11-16 2010-02-23 Sun Microsystems, Inc. Debugging applications at resource constrained virtual machines using dynamically installable lightweight agents
US20080010536A1 (en) * 2006-06-12 2008-01-10 Cary Lee Bates Breakpoints with Separate Conditions
JP2008052533A (ja) * 2006-08-25 2008-03-06 Matsushita Electric Ind Co Ltd デバッグ装置
US7610517B2 (en) * 2006-09-14 2009-10-27 Innovasic, Inc. Microprocessor with trace functionality
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US7822146B2 (en) * 2006-12-01 2010-10-26 Texas Instruments Incorporated System and method for digitally correcting a non-linear element
US8046199B2 (en) * 2006-12-01 2011-10-25 Texas Instruments Incorporated System and method for computing parameters for a digital predistorter
US8667471B2 (en) * 2007-03-30 2014-03-04 Sap Ag Method and system for customizing profiling sessions
US8079022B2 (en) * 2007-06-04 2011-12-13 Carbon Design Systems, Inc. Simulation of software
US7783865B2 (en) * 2007-08-01 2010-08-24 International Business Machines Corporation Conditional data watchpoint management

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6292033A (ja) * 1985-10-17 1987-04-27 Omron Tateisi Electronics Co プログラムデバツグ装置
JPS63244239A (ja) * 1987-03-31 1988-10-11 Hitachi Ltd プログラム実行経路検証方法
JPH0695915A (ja) * 1992-09-16 1994-04-08 Sharp Corp デバッグ処理方法
JPH07191876A (ja) * 1993-12-27 1995-07-28 Nec Corp プログラム試験装置とその使用方法
JPH08272648A (ja) * 1994-12-29 1996-10-18 Hitachi Ltd デバッグコマンドファイルを自動的に生成する方法、およびデバッグコマンドファイルにおいてブレークポイントを自動的に再生成する装置
JPH11306042A (ja) * 1998-04-16 1999-11-05 Toshiba Corp ソフトウェア開発支援装置及びデバッグ方法
JP2001034503A (ja) * 1999-07-21 2001-02-09 Oki Electric Ind Co Ltd ブレークポイント設定方法及び障害解析装置

Also Published As

Publication number Publication date
JP2009252247A (ja) 2009-10-29
JP5782543B2 (ja) 2015-09-24
US20090254888A1 (en) 2009-10-08
TW201003385A (en) 2010-01-16
TWI530783B (zh) 2016-04-21

Similar Documents

Publication Publication Date Title
JP5782543B2 (ja) デバッガ・データ・プロセシング・システム、デバッギング方法およびコンピュータ・プログラム
Xu et al. POD-Diagnosis: Error diagnosis of sporadic operations on cloud applications
US8938729B2 (en) Two pass automated application instrumentation
KR101519845B1 (ko) 안티디버깅 방법
US9244815B2 (en) Integrated debugger and code coverage tool
US8726225B2 (en) Testing of a software system using instrumentation at a logging module
Iannillo et al. Chizpurfle: A gray-box android fuzzer for vendor service customizations
US20070169055A1 (en) Method and system for automated analysis of the performance of remote method invocations in multi-tier applications using bytecode instrumentation
US10169002B2 (en) Automated and heuristically managed solution to quantify CPU and path length cost of instructions added, changed or removed by a service team
KR20110124734A (ko) 콜백을 사용하여 소프트웨어의 동적 계측을 위한 고장안전 메커니즘
US8806447B2 (en) Step-type operation processing during debugging by machine instruction stepping concurrent with setting breakpoints
US8656361B2 (en) Debugging code visually on a canvas
CN108197004B (zh) Ios应用的方法耗时、加载视图耗时的监测方法及系统
US20060168568A1 (en) Method, system and computer program product for testing computer programs
EP2972881A1 (en) Diagnostics of state transitions
US9361205B2 (en) Code coverage framework
US20150199255A1 (en) Recording external processes
Marra et al. Debugging cyber-physical systems with pharo: An experience report
Craig et al. PyPANDA: taming the pandamonium of whole system dynamic analysis
US20120054532A1 (en) Dynamic fault configuration using a registered list of controllers
Tixeuil et al. An overview of existing tools for fault-injection and dependability benchmarking in grids
Chilakamarri et al. Reducing coverage collection overhead with disposable instrumentation
KR100428712B1 (ko) 멀티 태스크 프로그램의 논스톱 디버깅을 위한트레이스포인트 설정 방법
Liang Real World Debugging with eBPF
Loveland et al. Testing z/OS: The premier operating system for IBM's zSeries server

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A132

Effective date: 20150106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150717

R150 Certificate of patent or registration of utility model

Ref document number: 5782543

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees