JPH0883197A - ソフトウエアプログラムをデバッグする方法およびコンピュータシステム - Google Patents

ソフトウエアプログラムをデバッグする方法およびコンピュータシステム

Info

Publication number
JPH0883197A
JPH0883197A JP7187804A JP18780495A JPH0883197A JP H0883197 A JPH0883197 A JP H0883197A JP 7187804 A JP7187804 A JP 7187804A JP 18780495 A JP18780495 A JP 18780495A JP H0883197 A JPH0883197 A JP H0883197A
Authority
JP
Japan
Prior art keywords
program
display
computer
debug command
debug
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
JP7187804A
Other languages
English (en)
Inventor
Thomas D Kim
トーマス・ディー・キム
Seth G Hawthorne
セス・ジー・ホーソン
Joseph S Kosinski
ジョセフ・エス・コシンスキ
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tandem Computers Inc filed Critical Tandem Computers Inc
Publication of JPH0883197A publication Critical patent/JPH0883197A/ja
Pending legal-status Critical Current

Links

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/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

(57)【要約】 【目的】 ソフトウエアプログラムを簡単に且つ効率的
にデバッグできるようにする。 【構成】 コンピュータシステムにおいて、コンピュー
タメモリおよび/または遠隔の格納メモリから重要なデ
バッグ用情報が読み出される。このデバッグ用情報を使
用して、デバッグすべきプログラムを構成する様々なフ
ァンクションの間における呼出しの木が図式的に表示さ
れる。前記プログラムのファンクションの図式表示に対
してユーザが直接的に行う操作によって、図式ユーザイ
ンターフェイスを介して、デバッグコマンドが受入れら
れる。前記図式ユーザインターフェイスを介してユーザ
コマンドを受入れる能力、および、このインターフェイ
スを使用して前記重要なデバッグ用情報を表示する能力
は、プログラムをテバッグを大いに容易にする。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、コンピュータプログ
ラムにおけるエラーを捜し出して訂正するためのシステ
ムおよび方法に関し、特に、ソフトウエアプログラムの
デバッグ処理時にプログラムの構成を図式的に表示し、
該プログラムの実行を制御するためのシステムおよび方
法に関する。
【0002】
【従来の技術】新たに作成されたプログラムは、しばし
ば、1つまたは複数の不注意によるエラーを含むもので
ある。ソフトウエアにおけるエラーのうちのあるものは
ソフトウエアシステムの完全な動作停止を招き、また、
他のエラーは動作エラーを招くおそれがある。商業的な
ソフトウエアの開発者は、彼等の合計開発時間の50〜70
%をコンピュータプログラムのエラーの有無をチェック
し、これらエラーの訂正を行うために費やすが、公に発
売される完成版のソフトウエアにもいくつかのエラー
(“バグ”)が残るのは、ほとんど避けられない。従っ
て、ソフトウエアを“デバッグ”するための効率的で効
果的な手段が、大いに必要とされている。デバッグと
は、ソフトウエアエラーを検出して隔離することによっ
て、これを訂正する作業である。通常、この作業には、
ソフトウエアプログラムを構成するコード列を検査し、
および/または、該プログラムの実行を観察することに
よって、異常動作の原因を確認することが含まれる。
【0003】従来のプログラムデバッグ技術において
は、ユーザは、エラーを捜し出すために先ずプログラム
を1列ずつ読む。しかし、このように1列ずつ読むこと
によってプログラムのフローを追うことは、それが比較
的簡単なプログラムであっても、極めて難しくて時間が
かかる。プログラムがたくさんのループ、サブルーチ
ン、ファンクション、呼出し、変数等を含むものである
場合、ユーザが前記プログラムの実行シーケンスを追跡
することができず、このため、前記プログラムの各列の
実行による効果を確認することができない、ということ
がある。
【0004】“デバッガ”とは、ユーザがプログラムコ
ードにおけるエラーを検出するのを手助けする目的で、
該ユーザに対して(プログラム状態および変数値を含
む)プログラムの実行を検査し、制御するための手段を
提供する診断ツールのことである。従来のデバッガにあ
っては、ユーザは、1つまたは複数のデバッグコマンド
を入力し、この後におけるプログラムの実行の結果を観
察することによって、欠陥のあるソフトウエアプログラ
ムの動作を制御することができる。例えば、デバッガコ
マンドは、欠陥のあるプログラムにおけるある特定の位
置に“区切り点(break point)”を設定するために発
動される。前記区切り点の効果は、該区切り点に来た時
に、プログラムの実行を一時停止することである。こう
して、ユーザは、前記デバッガに選択された変数の値を
表示させることができる。また、現在の技術水準に在る
デバッガは、前記区切り点の前後に発生する逆アセンブ
ルされた機械コード、および/または、これに対応する
ソースコードの列を表示することができる。しかし、現
在の技術水準に在るデバッガであっても、プログラムが
分枝するのか否か、また、どこで分枝するのかを予測で
きない。従って、現在の技術水準に在るデバッガの問題
点は、前記一時停止ポイントに続いて表示するコード列
が、単に、そのプログラムにおける次に連続するコード
列にすぎない、ということである。このようなコード列
は、必ずしも、ユーザが前記プログラムの動作を再開し
た時に実行されることになるコードではない。
【0005】典型的なデバッグコマンドとしては:数列
のコードが実行されるのに伴って表示されながら、プロ
グラムが一度に1列だけ実行される“ステップコマンド
(step command)”;プログラムが動いている時に、選
択される変数の変化する値を表示する“値監視コマンド
(watch value command)”;スタック上でアクティブ
状態にあるファンクションのリストを表示する“トレー
スコマンド(trace command)”;所定の値を実現する
変数などの、ユーザが選択した条件の発生時にプログラ
ムの実行を停止する“データ中断コマンド(data break
command)”;および、ユーザが選択した値を変数に割
り当てる“割り当てコマンド(assign command)”など
がある。
【0006】
【発明が解決しようとする課題】上記のようなデバッガ
の広い普及にも関わらず、デバッグ処理は依然として困
難で、時間がかかるものである。1つの理由は、従来の
デバッガがテキストに基づいていること、すなわち、デ
バッガがユーザに対して連続したテキスト列からなる情
報を提供し、これと同様な形式のコマンドを受入れるだ
けである、ということである。例えば、従来のデバッガ
にあっては、ユーザは、該デバッガにプログラムにおけ
る特定の列に区切り点を配置させる命令をキー入力する
か、または、マウスを使用して1つのコード列上で“ポ
イント・アンド・クリック(pointand click)”操作を
行うことによって該コード列の先頭に区切り点を配置す
る。区切り点に来た時に、従来のデバッガは、その区切
り点までに実行された逆アセンブルされた機械コードを
含むテキスト列、これに対応するソースコード列、およ
び、選択された変数の値を表示することができる。しか
し、テキストに基づいたレベルの従来のデバッガの動作
は、多くの問題点を有する。例えば、前記デバッガはプ
ログラムが実際に通ってきた実行経路(パス)を構成す
るコード列のみを表示可能であるので、ユーザは前記プ
ログラムの構造をよく知っておかねばならない。前記デ
バッガは、ユーザが異なる入力データセットを使用する
ことによって前記プログラムが通ることができたであろ
う別の実行経路を、ユーザに対して知らせることができ
ない。また、従来のデバッガは、前記区切り点に位置す
る特定のファンクションによってどのファンクションが
呼び出し可能であるかを知らせることができない。ユー
ザは、表示されたコードを調べることによって、このよ
うな情報を推定しなければならない。この理由により、
前記区切り点におけるプログラムの状態を十分に理解す
るためには、ユーザは、現在の状態に到達するために前
記プログラムが通り得たであろう様々な実行経路、およ
び、次のデバッグコマンドがプログラムの実行を再開さ
せた時に通りえるであろう様々な実行経路の複雑な構成
を頭の中に描き、これを記憶保持しなければならない。
【0007】また、従来のデバッガのユーザは、しばし
ば、道路マップを持たず、各交差点に到達するごとに、
各方向における最も近くに在る町の名前を尋ねなければ
ならないクロスカントリ旅行者に幾分類似した情況に置
かれる。出発地と目的地との間におけるすべての道路を
示す道路マップ無しには、前記旅行者は、最終目的地に
到達するための最も効率的な方法を計画することができ
ない。その代わりに、試行錯誤によって旅行をするの
で、前記旅行者は、道に迷い易く、同じ道を通って後戻
りしなければならず、しばしば、行き止まり道に入るこ
とになる。
【0008】デバッグ技術における多くの進歩にも関わ
らず、欠陥の無いソフトウエアは、実現するのが大変困
難な目標である。実際、ますます複雑化しているソフト
ウエアシステムは、この目標をさらに実現困難なものに
している。このように、デバッガは、プログラマの生産
性に影響する最も重要なツールの1つである。従って、
ソフトウエア産業がこれまでデバッガに注いできた相当
量の努力にも関わらず、その使用は依然として大変面倒
なものである。(これは、従来のデバッガが伝統的な文
字テキストに基づく端末をサポートするよう開発された
モデルに基づいているという事実によるものであると、
この発明者は信じる。)
【0009】上記から、改良されたデバッグツールが要
望されていることは明らかである。特に、ますます複雑
化するソフトウエアから重大なデバッグ情報を抽出し、
該抽出した情報を動的で有用な図式フォーマットで表示
し、さらに、そのプログラムに関する図式表示に対して
直接に実行される処理を介してユーザが該プログラムの
実行を制御できるようにする、デバッグツールが要望さ
れている。この発明は上述の点に鑑みてなされたもの
で、簡単に且つ効率的にソフトウエアプログラムのデバ
ッグを行えるようにする方法および装置を提供しようと
するものである。
【0010】
【課題を解決するための手段】上記課題を解決するた
め、この発明は、コンピュータメモリと図式表示出力装
置とを有するコンピュータシステムにおいてコンピュー
タソフトウエアプログラムをデバッグする方法であっ
て、(a)呼出し関係を有する複数のファンクションを
含んだデバッグすべきソフトウエアプログラムを、前記
コンピュータシステムにロードする工程と、(b)前記
ファンクションの間の前記呼出し関係を定義する関係表
示情報を、前記コンピュータメモリに格納する工程と、
(c)デバッグされたソフトウエアを前記コンピュータ
システムにロードする工程と、(d)前記デバッグされ
たソフトウエアを使用して、前記コンピュータメモリか
ら前記関係表示情報の少なくとも一部を読み出す工程
と、(e)前記デバッグされたソフトウエアを使用し
て、前記関係表示情報から、前記ファンクションの間の
呼出しの木の関係を導き出す工程と、(f)前記デバッ
グされたソフトウエアを使用して、前記複数のファンク
ションのうちの少なくともいくつかの間の呼出し関係を
示す図式表示を、前記出力装置に出力する工程とからな
る方法を提供する。
【0011】また、この発明は、デバッグすべきプログ
ラムの少なくとも一部についての図式表示をコンピュー
タの画面に表示する工程と、前記図式表示において、前
記プログラムのすでに実行された部分を示す表示部分を
目立つよう強調する工程と、前記プログラムの図式表示
におけるポインタを、前記プログラムにおけるデバッグ
コマンドを実行すべき位置と関連付けることによって、
デバッグコマンドを入力する工程とからなるプログラム
をテバッグする方法を提供する。
【0012】さらに、この発明は、図式表示装置が接続
されたクライアントコンピュータと、サーバコンピュー
タとを含むクライアント・サーバ型のコンピュータ環境
において実行されるソフトウエアプログラムにおけるエ
ラーを見つけ出して訂正する方法であって、(a)前記
サーバコンピュータに、複数のコード列を含み、1つの
前記コード列に不注意によるエラーを有するソフトウエ
アプログラムをロードする工程と、(b)前記クライア
ントコンピュータから前記サーバコンピュータに対して
デバッグコマンドを送る工程と、(c)前記サーバコン
ピュータにおいて前記デバッグコマンドを実行する工程
と、(d)前記サーバコンピュータから前記クライアン
トコンピュータに対して、前記デバッグコマンドに従っ
て前記プログラムが通った実行経路を定義する情報を送
る工程と、(e)前記デバッグコマンドの結果として前
記プログラムが通った実行経路の表示を含む前記プログ
ラムの少なくとも一部についての図式表示を、図式表示
装置に表示する工程とからなる方法を提供する。
【0013】さらに、この発明は、呼出し関係を有する
多数のファンクションを含むソフトウエアプログラムを
実行するコンピュータシステムであって、(a)前記プ
ログラムの現在の実行状態を定義する情報を格納するた
めの第1のメモリ手段を含んだ、前記プログラムを実行
するコンピュータ手段と、(b)前記コンピュータ手段
に接続されており、前記ファンクションの間における呼
出し関係を定義する関係表示情報を格納する第2のメモ
リ手段と、(c)前記関係表示情報および実行状態を定
義する情報の少なくとも一部を読み出す読出し手段と、
(d)前記呼出し関係を定義する関係表示情報を送信す
るための通信手段と、(e)前記通信手段に接続されて
おり、前記呼出し関係を定義する関係表示情報を受信
し、該情報に基づいて前記プログラムの実行経路につい
ての図式表示を発生する図式表示手段とを具備したもの
である。
【0014】
【作用】この発明は、図式ユーザインターフェイス(gr
aphical user interface)を有する改良型のデバッガを
提供する。好ましくは、該デバッガは、クライアント/
サーバ型のコンピュータ環境で動作するものである。以
下“デバッガサーバ”または単に“サーバ”と称する前
記デバッガの部分は、デバッグすべきプログラムと同一
のサーバコンピュータで実行される。このデバッガサー
バは、前記クライアントコンピュータから送られてきた
デバッグコマンドを受け取り、サーバ側のオペレーティ
ングシステムと共働して、これらのコマンドを実行す
る。前記デバッガは、典型的にはサーバコンピュータの
メモリまたは磁気ディスク格納サブシステムに格納され
る“関係表示情報(symbolic information)”という情
報を読み出す。また、前記デバッガサーバは、サーバコ
ンピュータからプログラム状態情報を読み出す。前記関
係表示情報を使用して、前記デバッガサーバは、前記プ
ログラム内に含まれるファンクションの間の“呼出し
(call)”関係、すなわち、どのファンクションがどの
他のファンクションを呼出すことが可能かを示す情報を
読み出す。こうして、前記サーバコンピュータは、この
情報を現在のプログラム状態と共に、前記クライアント
コンピュータに送る。
【0015】好ましくは、前記デバッガの図式ユーザイ
ンターフェイスは、前記クライアントコンピュータに設
けられている。前記デバッガのこの部分は、前記サーバ
から送られた前記呼出し関係を示す情報およびプログラ
ムの状態情報を受け取る。これらの情報を使用して、前
記ユーザインターフェイスは、デバッグすべきプログラ
ムを構成するファンクションの図式を構築し、表示す
る。例えば、前記デバッガは、前記プログラムについて
の樹木状の図式表示を表示でき、該表示において、前記
プログラムを構成する各ファンクションは図式上のノー
ドによって表され、前記ファンクション間の呼出し関係
は前記ノードを相互に接続する線によって表される。こ
のような図式は“呼出しの木”として知られている。
【0016】この発明の前記インターフェイスは、ユー
ザが選択したいくつかのフォーマットで呼出しの木を表
示する。この呼出しの木は、デバッグ用の“道路マッ
プ”として機能し、プログラムがこれから通ることがで
きるそれぞれの実行経路のセットをユーザが容易に確認
できるようにする。また、前記インターフェイスは、ユ
ーザが選択した変数値のような付加的な情報によって前
記呼出しの木に注釈を加え、ファンクション呼出しスタ
ックから決定された現在の実行経路を目立つよう強調し
て表示し、さらに、あるファンクションにおいて区切り
点がセットされる時を任意の方法で示す。さらに、前記
インターフェイスは、前記呼出しの木のノードによって
表されるファンクションに適用可能なデバッグコマンド
を提供する。後で詳細に説明するように、これらのコマ
ンドは、一度に1ファンクションずつプログラムの実行
を進める能力、あるファンクションに関連したソースコ
ードを検査する能力、1つのファンクションに区切り点
をセットする能力、および、呼出しの木のノードを“拡
張”および“縮小”する能力を実現する。また、前記イ
ンターフェイスはこれらのコマンドを前記サーバコンピ
ュータに送り、該サーバコンピュータではこれらのコマ
ンドを実行する。
【0017】ユーザは、キーボードによってコマンドを
キー入力することによって伝統的な方法で、デバッグコ
マンドを入力してよい。また、この発明の重要な特徴に
よると、ユーザは、前記デバッガの機能を制御し、さら
に、単に、マウスを使用して、先ず、表示された呼出し
の木におけるコマンドを実行すべきノード上で直接にポ
イント・アンド・クリックし、その後、所望のデバッグ
コマンドに関するアイコンまたはメニュー項目のような
図式記号上でポイント・アンド・クリックを行うことに
よって、デバッグコマンドを入力してもよい。
【0018】この発明において、デバッグ用情報を図式
的に表示し、図式インターフェイスを介してデバッグコ
マンドを受入れる能力は、ソフトウエアのデバッグ処理
を大いに容易にする。特に、この発明において、最後に
実行されたファンクションと、実行されたすべてのファ
ンクションと、プログラムが中断された箇所から呼出し
可能なすべてのファンクションを示す呼出し図式を表示
する能力は、プログラムの現在状態を徹底的に且つ容易
に理解するユーザの能力を大いに高めることができる。
【0019】前述したクロスカントリ旅行者に関して言
えば、この発明は、旅行者に対して、出発点と最終目的
地との間のすべての主要道路および通りを網羅した完全
な道路マップを提供することと等しい機能を提供する。
このような道路マップは、旅行者が特定の目的地に到達
するために最善の手段を決定するのを可能にする。同様
に、この発明は、プログラマに対して同じような道路マ
ップを提供し、該プログラマがプログラムをデバッグす
るために最善で最も効率的な手段を決定するのを可能に
する。
【0020】
【実施例】以下、添付図面を参照してこの発明の実施例
を詳細に説明する。図1は、この発明の好ましい実施例
を実施するためのクライアント/サーバ型コンピュータ
システムのブロック図である。図示のように、この発明
のデバッガは、クライアント/サーバ型のコンピュータ
環境100において使用可能に設計されているのが好ま
しい。サーバコンピュータ102は、バスまたはI/O
チャンネル104を介して、ディスク格納サブシステム
106と通信する。前記サーバコンピュータ102は、
CPU108と、プログラムの実行について現在の状態
(ステート)情報を格納する主メモリとしてのRAM1
10とを備えている。該RAM110の一部分は、前記
サーバコンピュータ102で現在実行されているプログ
ラムの各処理に関連したレジスタ状態およびローカル変
数を格納するために使用される。RAM110の前記部
分を、“プログラムスタック”、または、単に“スタッ
ク”202(図2)と呼ぶ。図2に示すように、前記R
AM110において、各前記処理に関する情報に対応す
る格納位置は、“フレーム”として知られているデータ
構造200に構成されている。
【0021】同様に、クライアントコンピュータ112
(図1)は、RAM114と、ディスクメモリ116
と、キーボード118と、マウス120と、ビデオ表示
端末(VDT)122とを備えている。該クライアント
コンピュータ112のCPU123は、バスまたはI/
Oチャンネル124を介してディスク格納サブシステム
116と通信し、I/Oチャンネル126を介してキー
ボード118、ビデオ表示端末122およびマウス12
0と通信する。
【0022】好ましいクライアント/サーバモデルに従
って、デバッガソフトウエアの各々の部分は、前記クラ
イアントコンピュータ112およびサーバコンピュータ
102において同時に動作するよう設計されているのが
好ましい。前記デバッガソフトウエアの2つの部分によ
って実行されるそれぞれの処理は、ネットワーク128
を介した通信によって、一致調整された状態に維持され
る。
【0023】追って詳細に説明するように、今日のソフ
トウエアプログラムは、コンパイラによって機械語命令
に翻訳されるいわゆる第三世代の“高水準言語”で書か
れている。このような第三世代の高水準言語で書かれた
プログラムは、各種のファンクション(手続きまたはル
ーチンとも言われる)に編成される。前記ファンクショ
ンは、特定の処理タスクを実行するよう定義される。ま
た、前記タスクは、1列または複数列のソースコードで
構成され、そのファンクションに特有の状態(ステー
ト)情報を維持するローカル変数を有することができ
る。前記ファンクションは、特定のタスクを実行するた
めに他のタスクを呼出すことができる。その場合、“被
呼出し側(called)”ファンクションが実行され、該被
呼出しファンクションが要求されたタスクを完了した時
に、“呼出し側(calling)”ファンクションの実行に
戻る。
【0024】プログラムの実行状態は、コンピュータメ
モリ内に設けられた“コールスタック(call stack)”
に維持される。該コールスタックは、呼び出された各フ
ァンクションにおける現在の実行位置を記録するもので
ある。ある1つのファンクションが呼び出された時、呼
出し側ファンクションにおける現在の実行位置が前記ス
タックに記録される。そして、被呼出し側ファンクショ
ンが完了すると、前記呼出し側ファンクションの記録さ
れた実行位置が削除されるとともに、その位置から実行
が再開される。
【0025】プログラミング技術において周知のよう
に、プログラムの実行は、“メイン”ルーチンからスタ
ートし、該メインルーチンが様々なタスクを実行するた
めに他のルーチンを呼び出すのに伴って進行する。この
ように呼び出される他のルーチンは、さらに他のルーチ
ンを呼び出すことがある。プログラムの実行状態は、前
記コールスタックによって示される。
【0026】図3に示すように、デバッグすべき典型的
なプログラムである命令処理プログラムは、(a)メイ
ン300、(b)入力302、(c)処理304、およ
び(d)出力306のように、いくつかのソースコード
ファイルから構成されている。各前記ソースファイル3
00,302,304,306は、いくつかのファンク
ションから構成されている。また、各前記ファンクショ
ンは、典型的には、複数列のソースコード列から構成さ
れており、そのタスクが完了した時、または、特定のイ
ベントが発生した時に、各ファンクションは、その他の
ファンクション308の動作を開始し(もしくは“呼び
出し”)、または、該ファンクションを呼び出したファ
ンクション308の実行に戻る。
【0027】前記命令処理プログラムが前記コンピュー
タで実行可能になるためには、そのソースコードファイ
ル300,302,304,306は“コンパイル”さ
れなければならない。このコンパイルとは、人間が読む
ことができるソースコード310を、“オブジェクトコ
ード”と呼ばれる二進コードに変換することである。こ
の発明に関しては、多くの商業的に入手可能なコンパイ
ラが使用されてよい。例えば、米国カルフォルニア州、
Cupertinoに在るTandem Computers IncorporatedのTand
em C コンパイラを使用してよい。このコンパイラは、C
OFF(Common Object File Format)形式のオブジェクト
ファィルを発生する。多くのUNIXコンパイラもまた、CO
EFファィルを発生する。そのコンパイラがこの発明のデ
バッガによる使用に必要な情報を発生する限り、使用さ
れるコンパイラの種類はこの発明にとって重要ではな
い。
【0028】図4に示すように、コンパイラ410は、
各ソースコードファイル300,302,304,30
6をオブジェクトコードファイル400,402,40
4,406に変換する。ソースコードファイルを二進の
コンピュータ命令に翻訳する他に、ユーザは、前記コン
パイラ410に対して、各オブジェクトコードファイル
400,402,404,406における“関係表示情
報(symbolic information)”と呼ばれるかなりの量の
付加的な情報を処理対象に入れるよう命令することもで
きる。前記関係表示情報は、例えば、変数の名前、ファ
ンクションの名前、変数のアドレス、および、オブジェ
クトコードファイルにおいて1つのファンクションが他
のファンクションを呼び出すすべての位置のリストを含
む。この発明の実施に関して特に重要なのは、前記関係
表示情報のうち、デバッガが様々なファンクション30
8の間の階層的呼出し関係、すなわち、どのファンクシ
ョン308が他のどのファンクション308を呼び出す
ことができるかを判定するのを可能にする部分である。
典型的には、前記関係表示情報は、前記サーバコンピュ
ータのメモリ110に格納された各オブジェクトコード
ファイル400,402,404,406の一部を形成
する。しかし、代案として、前記関係表示情報は、前記
ディスク格納サブシステム106に設けられる個別のフ
ァイルに格納されてもよい。以下に説明するように、前
記関係表示情報の主な用途は、実行可能なプログラムを
デバッグすることである。
【0029】図5は、2つの典型的なオブジェクトコー
ドファイル500,502の構造を示す。各前記ファイ
ルのヘッダ部504は、該ファイルの様々な部分のスタ
ート位置を示すポインタを格納し、例えば、調整テーブ
ルについてのファイルオフセットを格納している。ま
た、各前記ファイルのデータ部506は、前記プログラ
ムによって使用されるすべての定数値を格納している。
また、各前記ファイルの命令コード部508は、前記プ
ログラムを実行するための実二進コード命令を格納して
いる。また、各前記ファイルのファンクションエントリ
ポイントテーブル510は、そのファイルに含まれるフ
ァンクションのリスト、および、各前記ファンクション
のアドレスを格納している。各前記ファイルの前記調整
テーブル512は、該当ファイルにおいて、1つのファ
ンクション308が他のファンクション308を呼び出
すアドレスのリストを格納している。さらに、各前記フ
ァイルの未解決外部参照(Unresolved External Refere
nces)テーブル514は、そのファイル内で参照されて
いるが、どこか他所で定義されているすべてのファンク
ションのリストを含んでいる。
【0030】前記オブジェクトコードファイルのすべて
は、最終的には、リンカ(linker:結合部)412(図
4)に供給される。前記リンカ412は、様々なオブジ
ェクトコードファイル400,402,404,406
を、前記サーバコンピュータ102によって実行可能な
プログラム414に組合わせ、すなわち、“リンク”す
るソフトウエアプログラムである。前記リンカの重要な
ファンクションは、各前記オブジェクトコードファイル
400,402,404,406の前記ファンクション
エントリポイントテーブル510、調整テーブル512
および未解決外部参照テーブル514を読むことであ
る。これら3つのテーブルにまとめて格納されている情
報は、前記リンカ412が、図5に示されたものと同一
のデータ構造を有し、且つ、そのプログラムを構成する
すべてのオブジェクトコードファイル400,402,
404,406に元々含まれていた様々なファンクショ
ンの間のすべての必要な参照事項または論理的な接続関
係を有する実行可能なコードファイル414を発生でき
るようにするのに十分な情報である。
【0031】この発明は前記COFF形式のオブジェクトコ
ードファイルを発生するコンパイラを使用することを必
要としないが、もしこの種のコンパイラが使用される場
合には、前記Tandem Computers IncorporatedのNative
Linker/Loaderを使用して前記オブジェクトコードファ
イルをリンクしてよい。また、他のオブジェクトファイ
ルフォーマットを処理可能な他のリンカを使用してもよ
い。さらに、上述の如く、この発明のデバッガの動作に
必要な情報が提供される限り、使用されるリンカまたは
ファイルフォーマットの種類は、この発明にとって重要
ではない。
【0032】前記プログラムの実行中において、前記サ
ーバコンピュータ102は、“状態情報”と呼ばれる情
報を前記メモリ110に維持する。その名前が示すよう
に、前記状態情報とは、前記CPU108の現在の状態
を構築し直すために必要なすべての情報のことであり、
スタック202(図2)を含んでいる。通常、前記状態
情報は、前記主メモリ110内において、フレーム20
0のリンクされたリスト204として維持される。当該
技術分野において周知のように、スタックポインタは、
前記リンクされたリスト内のファンクションのうち、前
記サーバコンピュータ102によって現在実行中のファ
ンクションを指示するものである。
【0033】前記デバッガのサーバは、前記メモリ11
0またはディスク106に格納された前記関係表示情報
を読み取る。上記の説明から明らかなように、他のオブ
ジェクトコードファイルにおけるファンクションを参照
するために前記リンカ412によって補足されるファン
クションエントリポイントテーブル510および調整テ
ーブル512を読み出すことによって、前記デバッガ
は、前記命令処理応用プログラム(または、デバッグ中
の他のプログラム)のための完全な呼出しの木を作成す
るために必要なすべての情報を得ることができる。代案
として、前記デバッガが前記COFF形式のファイルに基づ
いて動作しており、前記COFF規格が調整テーブルを有し
ていない場合、前記デバッガは、単に、機械語命令コー
ドをサーチして1つのファンクションが他のファンクシ
ョンを呼び出すすべてのアドレスを見つけることによっ
て調整テーブルの情報を合成するようプログラムされ
る。
【0034】図6は、前記命令処理応用プログラムの呼
出しの木を示す表示画面である。この図における12個
のノード600の各々は、該プログラム内に含まれる特
定のファンクションを表すものである。前記ノード60
0同士を接続している線602は、最も左側のファンク
ションが右側のファンクションを呼出し可能であること
を示す。例えば、この図に示すように、メインプログラ
ムファンクションは、命令を受け取り(GetOrder)、デ
ータベースを更新し(UpdateDataBase)、インボイスを
印刷する(PrintInvoice)などのファンクションを呼び
出すことができる。また、各前記ファンクション600
は、コンピュータ端末に目視可能な表示をしたり(Pain
tDisplay)、ユーザ入力を読み取ったり(ReadUserInpu
t)するなどの物理的な処理ステップを実行する補助フ
ァンクションを呼び出すことができる。
【0035】さらに、前記デバッガのサーバは、サーバ
コンピュータ102の前記メモリ110における目的プ
ログラムのアドレススペースからスタック情報を読み出
し、前記スタック202の状態を確認する。上記の説明
に基づいて当業者が理解できるように、典型的には、コ
ンピュータは、専用のスタックポインタレジスタを有す
るか、または、スタックポインタとしての汎用レジスタ
を使用する。この発明のデバッガは、スタックポインタ
を使用して最初のフレーム200を捜し出す。すべての
フレーム200はリンクされているので、前記デバッガ
は残りのフレームを容易に捜し出すことができる。前記
サーバは、上記のような呼出しの木を作成するために必
要な情報から得られる関係表示情報を読み取った後、呼
出しの木およびスタック情報を、前記クライアントコン
ピュータ112に伝送する。
【0036】この発明の好ましい実施例は、前記クライ
アントコンピュータ112側に図式インターフェイスソ
フトウエアを備えている。該図式インターフェイスソフ
トウエアは、前記ビデオ表示端末122にデバッグ情報
を表示し、ユーザがキーボード118を介して、また
は、周知のように前記ビデオ表示端末122上において
移動可能なカーソルもしくはポインタ(図6)を動かす
マウス120を介して入力するデバッグコマンドを受け
取る。
【0037】好ましくは、前記図式インターフェイスソ
フトウエアは、例えば、ワシントン州RedmondのMicroso
ft Corporationから入手可能なMicrosoft Windows、ま
たは、カルフォルニア州Mountain ViewのInmark Develo
pment Corporationから入手可能なzApp Applicant Fram
eworkのような、在庫から直ぐに手に入るような図式ソ
フトウエアパッケージをその一部として備えている。上
述したように図式を作成しユーザとの対話を行うことが
できる、同様な商業的に入手可能な図式ソフトウエアパ
ッケージも、使用可能である。
【0038】例えば、1981年2月のIEEE Transactions O
N Systems, Man and CyberneticsのボリュームSMC-11,
No.2、ページ109〜125において、Kozo Sugiyama,Shoji
ro TagawaおよびMitsuhiko Todaによって発表された“M
ethods for Visual Understanding of Hierarchial Sys
tem Structures”に開示された“Sugiyama Algorith
m”;U.C.Berkeley Engineering LibraryにおいてMicha
el B. Davisによって発表された“A Layout Algorithm
for Graph Browser”、U.C.Berkeley EngineeringLibra
ryにおいてLawrence W.Rowe,Michael Davis,Ely Mess
enger,Carl Meyer,Charles SpirakisおよびAlan Tuan
によって発表された“A Browser for Directed Graph
s”、などの確立されたアルゴリズム、ならびに、前記
サーバから送られてきた呼出し図式情報を使用すること
によって、前記クライアントは、前記ビデオ表示端末1
22に表示された呼出し図式の視覚的表現を構築する。
また、前記サーバから送られてきたスタック情報を使用
して、前記クライアントは、前記プログラムが通った実
行経路を示すために、前記視覚的表現の特定部分を目立
つよう強調表示する。
【0039】上記参考文献の各々は、この明細書におい
て本質的ではない事項として組み入れられている。従っ
て、前記Sugiyamaのアルゴリズムまたは該アルゴリズム
のDavisによる変更版の代りに、他の既知の図式アルゴ
リズムを、この発明のデバッガに利用してもよい。前記
デバッガは、図7および図8に示す処理ステップに従っ
て動作する。これらの図に示すように、デバッグすべき
プログラムは、デバッガプログラムによる制御の下(ス
テップ700)、または、デバッガを呼出すオペレーテ
ィングシステムによって(ステップ702)スタートさ
れることができる。いずれにせよ、応用プログラムは、
前記サーバコンピュータのメモリ110にロードされ、
前記デバッガのサーバによる制御下に入る。次に、前記
デバッガは、前記サーバコンピュータのメモリ110ま
たはディスクサブシステム106から関係表示情報を読
み出し(ステップ704)、様々なファンクションの間
における呼出し図式関係を引き出し(ステップ70
6)、前記サーバコンピュータのメモリからフレームス
タック情報およびポインタ情報を読み出す(ステップ7
08)。そして、前記サーバコンピュータは、前記ネッ
トワーク128を介して、前記情報を前記デバッガクラ
イアントに送信する(ステップ710)。
【0040】前記サーバからクライアントに送られた前
記情報に基づいて、前記クライアントコンピュータ11
2に存在する図式インターフェイスソフトウエアは、前
記Sugiyamaのアルゴリズムに関する前記Davisの変更版
を使用して、デバッグ中の前記プログラムに関する呼出
しの木を構築する。前記フレームスタック情報も送られ
るので、前記デバッガは、前記呼出しの木における前記
プログラムの実行経路を確認して、これを目立つ状態に
表示する。図6は、前記デバッガがプログラムの実行を
開始する前に表示される呼出しの木を示す図である。こ
の図6においては、“メイン(main)”という文字だけ
が目立つ状態に表示されており、これにより、前記ブロ
グラムの実行準備ができていることが示されている。
【0041】ユーザは、前記マウス120を使用してデ
バッグコマンドを入力する(ステップ718)。例え
ば、前記図式インターフェイスソフトウエアは、“ポイ
ント・アンド・ドラグ”および/または“ポイント・ア
ンド・クリック”方式を使用してコマンドを受け入れる
よう設計可能である。前記ポイント・アンド・ドラグ方
式に従うと、例えば図6において符号604で示すよう
な様々なデバッグコマンドを示す複数の記号が、デバッ
グコマンドツールバー(Debug Command Toolbar)とし
て、前記ビデオ表示端末122の上端部に横方向に表示
される。前記表示端末122に表示されたカーソルまた
はポインタ606がデバッグコマンドを実行すべき呼出
しの木における特定位置を指し示すまで、前記カーソル
またはポインタ606を動かすために前記マウス120
を操作することによって、ユーザはオブシェクト(対
象)および該オブシェクトに作用すべきコマンドを選択
する。そして、ユーザは、前記マウスのボタンを押し、
前記ポインタ606が前記デバッグコマンドツールバー
604において所望のデバッグコマンドのアイコンを示
している位置を指し示すまで前記マウスを動かし、しか
る後、前記ボタンから手を離す。前記ポイント・アンド
・クリック方式は、前記ポイント・アンド・ドラグ方式
に似ているが、前記ポインタ606が前記デバッグコマ
ンドを実行すべき呼出しの木における特定位置を指し示
しいる間に、前記マウス120のボタンがオンされてオ
フされる、という点において前記ポイント・アンド・ド
ラグ方式と異なる。その後、前記ポインタ606が、前
記ツールバー604に沿って前記所望のデバッグコマン
ドのアイコンの位置まで動かされ、そして、前記マウス
120のボタンが、再び、オンされてオフされる。汎用
コンピュータにコマンドを入力するための両前記方式
は、当該技術においてよく知られている。
【0042】どちらにせよ、その後、前記クライアント
は、前記デバッガサーバに対してデバッグコマンドを送
ることによって、前記命令処理プログラムが前記コマン
ドに従って前記デバッガの制御の下に実行されるように
する。例えば、図9において、前記デバッグコマンドが
“命令確認(VerifyOrder)”808における区切り点
の導入を指示するものである場合、前記プログラムはそ
の区切り点まで実行される。該区切り点を読み取ると、
前記デバッガサーバは、前記フレーム情報を読み出し、
前記クライアントに対して前記プログラムの現在状態を
送る。この情報を受け取ると、前記クライアントは、前
記“命令確認(VerifyOrder)”ファンクション808
において、前記区切り点に至るまでに前記プログラムが
通った実行経路を目立つ状態に表示する。図9は、前記
デバッグ処理におけるこのような中間ステップでの図式
ユーザインターフェイスの表示画面を示す。なお、前記
表示された呼出しの木において実行経路を目立つ状態に
表示することによって、この発明は、前記プログラムが
実行され続けるのを許可される時に該プログラムが通る
ことができたであろう他の実行経路のみならず、前記プ
ログラムが既に通った実行経路をも示す容易に理解可能
な図式表示をユーザに提供する。上述したように、前記
区切り点に到達した時に選択された変数800の値も表
示してよい。
【0043】表示された情報に基づいてユーザがバグを
見つけた場合、ユーザは、ソースプログラムにおけるこ
のバグを訂正して、該プログラムをコンパイルし直し、
リンクし直して再開する。また、バグが見つからなかっ
た場合、ユーザはその他のコマンドを入力する。すべて
のバグが捜し出されて訂正されることによって前記プロ
グラムが適切に動作するまで、この処理は継続し、この
プログラムの連続的な状態が(所望に応じて、選択され
た変数、ソースコードおよび逆アセンブルされた機械コ
ードと共に)前記図式表示に示される。
【0044】デバッグ処理の過程において、プログラマ
は、プログラムの特定領域に作業を集中したいと思うこ
とがある。このため、この発明は、プログラマが、前記
呼出しの木の中間的なノードを(例えば、図6に示すよ
うに)“収縮(collapse)”したり、(例えば、図9に
示すように)“拡張(expand)”したりすることによっ
て、プログラムにおいてそれが必要な詳細部分を隠した
り見せたりする制御を可能にする。このような制御を行
うために、子供ノードを有する各ノードには、スイッチ
としてファンクションするアイコンボタンが設けられ
る。あるノードが収縮される場合、子供ノードが表示さ
れないことになる。一方、あるノードが拡張される場
合、子供ノードが表示されることになる。プログラマが
表示される詳細度合を制御できるようにすることによっ
て、前記デバッガは、ユーザが対処しなければならない
視覚複雑度合を制御することを可能にする。
【0045】図10は、“命令確認(VerifyOrder)”
ノード908に対応するソースコードが表示された表示
ウィンドウ900を示す図である。前記ソースコードに
加えて、または、これに代えて、逆アセンブルされた機
械コード(図示せず)が表示されてもよい。前記ソース
コードの表示(または、逆アセンブルされた機械コード
の表示)は、上述したようなポイント・アンド・クリッ
ク技術またはポイント・アンド・ドラグ技術を使用して
コマンドを発することによって得られる。図10に示し
た例において、ユーザは、先ず、前記“命令確認(Veri
fyOrder)”ノード908上でポイントおよびクリック
を行い、次に、前記デバッグコマンドツールバーに沿っ
た“ビュー(view)”メニュー902の下方に位置する
“ソースコードビュー(Source Code View)”メニュー
項目上でポイントおよびクリックを行う。上記から明ら
かなように、このようにして、この発明は、ターゲット
ファンクションの最初の列を捜して前記ソースコードを
ざっと見る必要なしに、あるファンクションに関連した
コード列を捜し出して表示し、および/または、あるフ
ァンクションにおける区切り点のようなデバッグコマン
ドを発するための、極めて簡単な方法を提供する。
【0046】前記呼出しの木のビューにおいて、この発
明のデバッガは、前記呼出しの木を、いわゆる“非循環
式”(図11)モードおよび“循環式”(図12)であ
る2つのモードで表示する。回帰的なファンクション呼
出しが在る場合、その呼出し図式にはサイクルが存在す
る。あるファンクションの呼出しがそれ自身、または、
前記プログラムスタック202上でオン状態の他のファ
ンクションを呼出す場合、回帰的な呼出しが存在する。
基本的に、この発明はループを有する。前記循環式およ
び非循環式の2つのモードは、それぞれ異なる利点を有
する。図11は、前記ビデオ表示端末122の画面にお
いて上から下方に表示された非循環式の呼出しの木10
00を示す表示画面である。この非循環式の呼出しの木
1000において、プログラムの最初のファンクション
(メイン(main))1002は該木1000の最上端に
在り、その後の子供のファンクションは前記メインファ
ンクション1002の右側下方に離隔して表示される。
この非循環式表示の利点は、あるファンクションが呼出
されるすべての箇所に表示されるため1つのファンクシ
ョンが複数重複して表示され、相互に交差する線が存在
しないので、視覚的に明確であるということである。例
えば、前記メインファンクションが他のファンクション
B、IおよびJを呼出し、ファンクションBが他のファ
ンクションIおよびMを呼出す場合、図示のように、前
記ファンクションIは前記非循環式表示において2回表
示されることになる。ある一定の情況下におけるこの非
循環式表示の不利な点は、何個のファンクションが1つ
の特定のファンクションを呼び出しているのかについて
の情報が失われるということである。図11の例の場
合、ファンクションIが前記メインファンクションおよ
びファンクションBによって呼び出さていることが簡単
に分かるが、より複雑な呼出し図式の場合には、このよ
うな情報を視覚的に抽出することは困難である。
【0047】図12は、図11に示したものと同じ呼出
しの木1000に関する循環式の表示方式を示す表示画
面である。この表示においては、1つのノードが複数重
複して表示されることが無いが、プログラム構造の表示
がより複雑である。前記呼出しの木の循環式構造を表示
するために、この図式は、プログラムの最初のファンク
ション1002が最も左側に位置し、子供ノードの拡張
が右側に発生するよう、左から右方向に配置される。各
ノードファンクションは1つだけであるので、特定のノ
ードに出入りするすべての接続を示さなければならな
い。
【0048】多くの回帰的な呼出しを有する大規模なプ
ログラムの場合、前記呼出しの木の循環式表示は極めて
複雑になる。このため、ユーザが最も理解し易いフォー
マットで必要な情報を提供する表示を見ることができる
よう、この発明は、ユーザに対して、前記2つの表示方
法のいずれかを任意に選択できるようにしている。
【0049】上述した詳細な説明から理解されるよう
に、この発明はデバッグ処理を大いに簡素化するもので
ある。前記図式的な表示は、従来のテキストに基づいた
デバッガが実現できなかった様式で、ユーザに対して前
記プログラムの構成を示すので、複雑なプログラムのデ
バッグにおいて特に有用である。この発明によって、前
記プログラムの全体的な呼出しの木(または、該呼出し
の木の選択された部分)が表示可能になり、これによ
り、1回の表示によって、ユーザに対して、(a)全体
的なプログラムの構成に関する情報;(b)前記プログ
ラムに関する現在の実行状態;(c)現在の状態に到達
するために前記プログラムが採った実行経路;(d)前
記プログラムが採り得た他の実行経路;および(e)前
記プログラムの実行の継続が許可された時に前記プログ
ラムが選択可能に採り得るそれぞれの実行経路を提供す
る。明らかに、既存のテキストに基づいたデバッガは、
1回の動的な表示によって、ユーザに対してこのような
情報を提供できるものではない。単一の画面上において
単一の図式フォーマットで表示される上記5種類の情報
は、前記プログラムの図式表示に対して直接に作用する
ことによってデバッグコマンドを入力する能力と組合わ
せられることによって、デバッグ処理を大いに簡素化で
きる。
【0050】この発明のいくつかの好ましい実施例につ
いて述べてきたが、この発明の範囲を逸脱することな
く、様々な変更が可能である。例えば、この発明のデバ
ッガは、クライアント・サーバ環境で実行されるのが好
ましいが、単一のコンピュータで実行されることもでき
る。また、実行経路は呼出し図式と共に目立った、すな
わち、目立つ映像で表示され、プログラムのファンクシ
ョンがノードとして表され、且つ、前記ノードを接続す
る線が1つのファンクションから他のファンクションを
呼出す能力を示しているのが好ましいが、プログラムの
構成および実行経路情報を図式的に表示する多くの方法
が、上記の記載から、当業者にとって明白となるであろ
う。
【0051】
【発明の効果】以上のように、この発明は、簡単に且つ
効率的にソフトウエアプログラムのデバッグを行えるよ
うにすることができる、という優れた効果を奏する。
【図面の簡単な説明】
【図1】この発明の好ましい実施例を実施するために使
用されるクライアント/サーバー型コンピュータシステ
ムのブロック図。
【図2】前記サーバーコンピュータ内におけるスタック
のメモリ構造を示す図。
【図3】複雑なコンピュータプログラムのファイル構造
を示す図。
【図4】ソースコードから実行可能なコードへの変換を
示す図。
【図5】デバッグすべきプログラムのコンパイラによっ
て作成された関係表示情報ファイルの構造を示す図。
【図6】この発明のデバッガによって作成された動的な
呼出しの木を示す表示画面であって、デバッグ前の命令
処理プログラムにおいて可能な実行経路を示す図。
【図7】この発明の好ましい実施例における制御フロー
の一部分を示すフローチャート。
【図8】この発明の好ましい実施例における制御フロー
の他の部分を示すフローチャート。
【図9】この発明のデバッガによって作成された動的な
呼出しの木を示す表示画面であって、“メイン”処理が
“命令取込み”処理を呼び出し、しかる後、該“命令取
込み”処理が“命令確認”処理を呼び出し、さらに、前
記“命令確認”ノードがその子供ノード(処理)を示す
ために図6の例に対して拡大された状態を示す図。
【図10】この発明のデバッガによって作成された動的
な呼出しの木を示す表示画面であって、図9と同じプロ
グラム状態を示し、さらに、前記命令確認ノードが選択
され、ユーザが前記命令確認処理を構成するソースコー
ドを表示するためのコマンドを発した状態を示す図。
【図11】この発明の前記デバッガによって発生された
プログラム構造における非循環式の呼出しの木の表示画
面を示す図。
【図12】プログラム構造における循環式の呼出しの木
の表示画面を示す図。
【符号の説明】
102 サーバコンピュータ 108、123 CPU 112 クライアントコンピュータ 118 キーボード 120 マウス 122 ビデオ表示端末 128 ネットワーク
───────────────────────────────────────────────────── フロントページの続き (72)発明者 セス・ジー・ホーソン アメリカ合衆国 カリフォルニア 95062, サンタクルズ, アン・ウェイ 3009 (72)発明者 ジョセフ・エス・コシンスキ アメリカ合衆国 カリフォルニア 94062, ウッドサイド, ウッドサイド・ロード 2995, スイート400−221

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 コンピュータメモリと図式表示出力装置
    とを有するコンピュータシステムにおいてコンピュータ
    ソフトウエアプログラムをデバッグする方法であって、 (a)呼出し関係を有する複数のファンクションを含ん
    だデバッグすべきソフトウエアプログラムを、前記コン
    ピュータシステムにロードする工程と、 (b)前記ファンクションの間の前記呼出し関係を定義
    する関係表示情報を、前記コンピュータメモリに格納す
    る工程と、 (c)デバッグされたソフトウエアを前記コンピュータ
    システムにロードする工程と、 (d)前記デバッグされたソフトウエアを使用して、前
    記コンピュータメモリから前記関係表示情報の少なくと
    も一部を読み出す工程と、 (e)前記デバッグされたソフトウエアを使用して、前
    記関係表示情報から、前記ファンクションの間の呼出し
    の木の関係を導き出す工程と、 (f)前記デバッグされたソフトウエアを使用して、前
    記複数のファンクションのうちの少なくともいくつかの
    間の呼出し関係を示す図式表示を、前記出力装置に出力
    する工程とからなる方法。
  2. 【請求項2】 前記図式表示が、呼出しの木を示す図式
    である請求項1に記載の方法。
  3. 【請求項3】 前記図式表示が、循環式の呼出しの木を
    示すものである請求項1に記載の方法。
  4. 【請求項4】 前記図式表示が、非循環式の呼出しの木
    を示すものである請求項1に記載の方法。
  5. 【請求項5】 (a)前記コンピュータシステムにデバ
    ッグコマンドを入力する工程と、 (b)前記デバッグコマンドに従って、前記デバッグさ
    れたソフトウエアの制御の下で前記ソフトウエアプログ
    ラムを実行する工程と、 (c)前記デバッグコマンドの結果として発生する前記
    プログラムの実行経路を示す視覚的な図式表示を、前記
    出力装置に出力する工程とをさらに含む請求項1に記載
    の方法。
  6. 【請求項6】 前記図式表示が、呼出しの木を示す図式
    である請求項5に記載の方法。
  7. 【請求項7】 前記デバッグコマンドを入力する工程
    が、前記プログラムにおいて前記コマンドを実行すべき
    前記図式表示上の位置を示すためにポインタを動かす工
    程を含む請求項5に記載の方法。
  8. 【請求項8】 前記プログラムの実行経路を示す視覚的
    な図式表示を前記出力装置に出力する工程が、前記図式
    表示において、既に実行されたファンクション、およ
    び、これに関連したコード間接続線を、目立つよう強調
    された映像として表示する工程を含む請求項6に記載の
    方法。
  9. 【請求項9】 デバッグすべきプログラムの少なくとも
    一部についての図式表示をコンピュータの画面に表示す
    る工程と、 前記図式表示において、前記プログラムのすでに実行さ
    れた部分を示す表示部分を目立つよう強調する工程と、 前記プログラムの図式表示におけるポインタを、前記プ
    ログラムにおけるデバッグコマンドを実行すべき位置と
    関連付けることによって、デバッグコマンドを入力する
    工程とからなるプログラムをテバッグする方法。
  10. 【請求項10】 前記図式表示がファンクションノード
    を有する呼出し図式であり、前記デバッグコマンドが、
    前記ポインタに関連付けられたノードにおいて前記図式
    表示を拡張する請求項9に記載の方法。
  11. 【請求項11】 前記図式表示がファンクションノード
    を有する呼出し図式であり、前記デバッグコマンドが、
    前記ポインタに関連付けられたノードにおいて前記図式
    表示を縮小する請求項9に記載の方法。
  12. 【請求項12】 前記デバッグコマンドに従って前記プ
    ログラムを実行する工程と、 前記プログラムのうち、前記デバッグコマンドの結果と
    して実行された部分を目立つよう強調する工程をさらに
    含む請求項9に記載の方法。
  13. 【請求項13】 デバッグされている前記プログラムに
    付加的なプログラムステップを実行させること無しに、
    前記デバッグコマンドが前記コンピュータの画面上の前
    記表示を変更する請求項9に記載の方法。
  14. 【請求項14】 図式表示装置が接続されたクライアン
    トコンピュータと、サーバコンピュータとを含むクライ
    アント・サーバ型のコンピュータ環境において実行され
    るソフトウエアプログラムにおけるエラーを見つけ出し
    て訂正する方法であって、 (a)前記サーバコンピュータに、複数のコード列を含
    み、1つの前記コード列に不注意によるエラーを有する
    ソフトウエアプログラムをロードする工程と、 (b)前記クライアントコンピュータから前記サーバコ
    ンピュータに対してデバッグコマンドを送る工程と、 (c)前記サーバコンピュータにおいて前記デバッグコ
    マンドを実行する工程と、 (d)前記サーバコンピュータから前記クライアントコ
    ンピュータに対して、前記デバッグコマンドに従って前
    記プログラムが通った実行経路を定義する情報を送る工
    程と、 (e)前記デバッグコマンドの結果として前記プログラ
    ムが通った実行経路の表示を含む前記プログラムの少な
    くとも一部についての図式表示を、図式表示装置に表示
    する工程とからなる方法。
  15. 【請求項15】 前記表示が、前記ソフトウエアプログ
    ラムの呼出しの木の図式を含む請求項14に記載の方
    法。
  16. 【請求項16】 前記デバッグコマンドを送る工程の前
    に、前記クライアントコンピュータに前記デバッグコマ
    ンドを入力する工程をさらに含み、該デバッグコマンド
    を入力する工程が、前記プログラムにおけるデバッグコ
    マンドを実行すべき前記図式表示上の位置を示すために
    ポインタを動かす工程を含む請求項14に記載の方法。
  17. 【請求項17】 呼出し関係を有する多数のファンクシ
    ョンを含むソフトウエアプログラムを実行するコンピュ
    ータシステムであって、 (a)前記プログラムの現在の実行状態を定義する情報
    を格納するための第1のメモリ手段を含んだ、前記プロ
    グラムを実行するコンピュータ手段と、 (b)前記コンピュータ手段に接続されており、前記フ
    ァンクションの間における呼出し関係を定義する関係表
    示情報を格納する第2のメモリ手段と、 (c)前記関係表示情報および実行状態を定義する情報
    の少なくとも一部を読み出す読出し手段と、 (d)前記呼出し関係を定義する関係表示情報を送信す
    るための通信手段と、 (e)前記通信手段に接続されており、前記呼出し関係
    を定義する関係表示情報を受信し、該情報に基づいて前
    記プログラムの実行経路についての図式表示を発生する
    図式表示手段とを具備したコンピュータシステム。
  18. 【請求項18】 前記図式表示手段が、ユーザデバッグ
    コマンドを受け取って前記コンピュータ手段に送る図式
    ユーザインターフェイスを備えている請求項17のコン
    ピュータシステム。
  19. 【請求項19】 前記図式表示が呼出しの木を示す図式
    である請求項17のコンピュータシステム。
  20. 【請求項20】 前記図式表示手段上に移動可能なポイ
    ンタのイメージを発生する手段をさらに備え、前記ユー
    ザインターフェイスが、前記プログラムの前記図式表示
    と前記移動可能なポインタとの相対的な位置を使用して
    デバッグコマンドを定義する手段をさらに備えている請
    求項18のコンピュータシステム。
JP7187804A 1994-06-30 1995-06-30 ソフトウエアプログラムをデバッグする方法およびコンピュータシステム Pending JPH0883197A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26935594A 1994-06-30 1994-06-30
US08/269355 1994-06-30

Publications (1)

Publication Number Publication Date
JPH0883197A true JPH0883197A (ja) 1996-03-26

Family

ID=23026900

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7187804A Pending JPH0883197A (ja) 1994-06-30 1995-06-30 ソフトウエアプログラムをデバッグする方法およびコンピュータシステム

Country Status (5)

Country Link
US (1) US6003143A (ja)
EP (1) EP0690378A1 (ja)
JP (1) JPH0883197A (ja)
CN (1) CN1118473A (ja)
CA (1) CA2153075A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6661439B1 (en) 1999-06-17 2003-12-09 Nec Corporation Information visualization system
JP2009205472A (ja) * 2008-02-28 2009-09-10 Nec Corp ログ出力システム、ログ出力方法、およびログ出力プログラム
CN102421004A (zh) * 2011-11-01 2012-04-18 深圳创维-Rgb电子有限公司 电视机软件系统的调试方法及装置
CN102662821A (zh) * 2012-03-22 2012-09-12 华为技术有限公司 虚拟机故障的辅助诊断方法、装置和系统
JP2012221501A (ja) * 2011-04-08 2012-11-12 Computer Associates Think Inc トランザクショントレースグラフと論理的サブシステムのマップとの関係の可視化
JP2017539031A (ja) * 2014-12-09 2017-12-28 エントイット ソフトウェア エルエルシーEntit Software Llc テスト実行からのテスト検証の分離
WO2019159397A1 (ja) * 2018-02-15 2019-08-22 三菱電機株式会社 ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
JP2795244B2 (ja) * 1996-01-17 1998-09-10 日本電気株式会社 プログラムデバッグシステム
US6513154B1 (en) 1996-10-21 2003-01-28 John R. Porterfield System and method for testing of computer programs in programming effort
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
ATE243390T1 (de) 1996-12-27 2003-07-15 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen umladen von datenflussprozessoren (dfps) sowie bausteinen mit zwei- oder mehrdimensionalen programmierbaren zellstrukturen (fpgas, dpgas, o.dgl.)
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
US6282701B1 (en) * 1997-07-31 2001-08-28 Mutek Solutions, Ltd. System and method for monitoring and analyzing the execution of computer programs
JP2001515240A (ja) * 1997-09-01 2001-09-18 フジツウ シーメンス コンピューターズ ゲゼルシャフト ミット ベシュレンクテル ハフツング オブジェクトコードからプログラムコードへの変換方法
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6144954A (en) * 1998-01-27 2000-11-07 Li; Chou H. Automatic development of computer software
DE69908446T2 (de) * 1998-02-27 2004-05-06 Hitachi, Ltd. Programmfehlerbeseitigung
US6418543B1 (en) * 1998-07-14 2002-07-09 Cisco Technology, Inc. Apparatus and method for debugging source code
US6295638B1 (en) * 1998-07-30 2001-09-25 International Business Machines Corporation Method and apparatus for loading native object code in data processing system
DE19834426A1 (de) * 1998-07-30 2000-02-03 Siemens Ag Schaltungsanordnung und Verfahren zum Erstellen von Anreizen
US6223307B1 (en) 1998-08-05 2001-04-24 International Business Machines Corporation Debugging client server programs from third party workstations
US6219804B1 (en) 1998-08-05 2001-04-17 International Business Machines Corporation Debugging client server programs from third party workstations
US6202175B1 (en) 1998-08-05 2001-03-13 International Business Machines Corporation Debuggin client server programs from third party workstations
US6633912B1 (en) 1998-10-12 2003-10-14 Freshwater Software, Inc. System, method and apparatus for providing an enterprise portal
US6138157A (en) * 1998-10-12 2000-10-24 Freshwater Software, Inc. Method and apparatus for testing web sites
US6631411B1 (en) 1998-10-12 2003-10-07 Freshwater Software, Inc. Apparatus and method for monitoring a chain of electronic transactions
US7047277B1 (en) 1998-10-12 2006-05-16 Mercury Interactive Corporation System and computer-implemented method for creating configuration files for web transaction tests
AU1721900A (en) * 1998-11-13 2000-06-05 Channelpoint, Inc. System, method and computer program product for dynamically generating a graphical user interface from computer program specifications
US6782374B2 (en) * 1998-12-22 2004-08-24 Accenture Global Services Gmbh System, method and article of manufacturing for a runtime program analysis tool for a simulation engine
US6542880B2 (en) * 1998-12-22 2003-04-01 Indeliq, Inc. System, method and article of manufacture for a goal based system utilizing a table based architecture
US6567933B1 (en) * 1999-02-19 2003-05-20 Texas Instruments Incorporated Emulation suspension mode with stop mode extension
CN1378665A (zh) 1999-06-10 2002-11-06 Pact信息技术有限公司 编程概念
US6839894B1 (en) 1999-11-19 2005-01-04 Oracle International Corporation Method and apparatus for debugging a software program using dynamic debug patches and copy on write views
US6671825B1 (en) * 1999-11-19 2003-12-30 Oracle International Corporation Method and apparatus for debugging a software program
US7058928B2 (en) 1999-12-23 2006-06-06 Identify Software Ltd. System and method for conditional tracing of computer programs
GB2358492B (en) * 2000-01-18 2004-07-07 Mitel Semiconductor Ltd Software debugging
US20020087949A1 (en) * 2000-03-03 2002-07-04 Valery Golender System and method for software diagnostics using a combination of visual and dynamic tracing
JP2004506261A (ja) 2000-06-13 2004-02-26 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト パイプラインctプロトコルおよびct通信
AU2001280763A1 (en) * 2000-07-28 2002-02-13 Freshwater Software, Inc. A method, system and apparatus for providing monitoring of electronic transactions
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6871213B1 (en) 2000-10-11 2005-03-22 Kana Software, Inc. System and method for web co-navigation with dynamic content including incorporation of business rule into web document
US6823518B1 (en) * 2000-10-17 2004-11-23 Microsoft Corporation Threading and communication architecture for a graphical user interface
US6950868B1 (en) 2000-10-31 2005-09-27 Red Hat, Inc. Method of and apparatus for remote monitoring
US8145742B1 (en) * 2000-10-31 2012-03-27 Red Hat, Inc. Method of and apparatus for network administration
US8312435B2 (en) * 2000-12-26 2012-11-13 Identify Software Ltd. (IL) System and method for conditional tracing of computer programs
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
WO2005045692A2 (en) 2003-08-28 2005-05-19 Pact Xpp Technologies Ag Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US20040205720A1 (en) * 2001-04-30 2004-10-14 Robert Hundt Augmenting debuggers
AU2002312210A1 (en) * 2001-06-04 2002-12-16 Sentiat Technologies, Inc. System and process for constructing and analyzing profiles for an application
EP2224330B1 (de) 2001-06-20 2012-05-09 Krass, Maren Verfahren und gerät zum partitionieren von grossen rechnerprogrammen
US7013457B2 (en) * 2001-07-26 2006-03-14 Springsoft, Inc. Prioritized debugging of an error space in program code
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US7152226B2 (en) * 2001-09-04 2006-12-19 James Pangburn Flexible horizontal stack display and editor
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
US6996806B2 (en) * 2001-09-21 2006-02-07 International Business Machines Corporation Graphical view of program structure during debugging session
US8281108B2 (en) 2002-01-19 2012-10-02 Martin Vorbach Reconfigurable general purpose processor having time restricted configurations
WO2003071432A2 (de) 2002-02-18 2003-08-28 Pact Xpp Technologies Ag Bussysteme und rekonfigurationsverfahren
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7451206B2 (en) * 2002-05-20 2008-11-11 Siemens Communications, Inc. Send of software tracer messages via IP from several sources to be stored by a remote server
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
US8020148B2 (en) * 2002-09-23 2011-09-13 Telefonaktiebolaget L M Ericsson (Publ) Bi-directional probing and testing of software
US7386839B1 (en) 2002-11-06 2008-06-10 Valery Golender System and method for troubleshooting software configuration problems using application tracing
US20040098703A1 (en) * 2002-11-15 2004-05-20 Kondur Sankar Narayana Integration of multiple software tools under a single site
US8032866B1 (en) 2003-03-27 2011-10-04 Identify Software Ltd. System and method for troubleshooting runtime software problems using application learning
US7263632B2 (en) * 2003-05-07 2007-08-28 Microsoft Corporation Programmatic computer problem diagnosis and resolution and automated reporting and updating of the same
WO2004102445A2 (en) * 2003-05-16 2004-11-25 Pch International Ltd. Method and system for supply chain management employing a vizualization interface
US7409602B2 (en) * 2003-11-12 2008-08-05 Lsi Corporation Methodology for debugging RTL simulations of processor based system on chip
US8266595B2 (en) * 2004-02-12 2012-09-11 International Business Machines Corporation Removal of asynchronous events in complex application performance analysis
US7496900B2 (en) * 2004-02-12 2009-02-24 International Business Machines Corporation Method for automatic detection of build regressions
US7272450B2 (en) * 2004-03-31 2007-09-18 Omron Corporation Development aid device
US7827539B1 (en) 2004-06-25 2010-11-02 Identify Software Ltd. System and method for automated tuning of program execution tracing
US7882492B2 (en) 2004-09-17 2011-02-01 Oracle America, Inc. Intelligent computer program debugger, and system and method for implementing the same
WO2006069491A1 (en) 2004-12-31 2006-07-06 Intel Corporation Remote logging mechanism
US7496801B2 (en) * 2005-06-27 2009-02-24 Intel Corporation Method, apparatus and system for facilitating debug for link interconnects
US7472355B2 (en) * 2005-06-30 2008-12-30 International Business Machines Corporation Computer-implemented method for managing commands for a terminal session
US7844854B2 (en) * 2005-06-30 2010-11-30 Intel Corporation Opportunistic transmission of computing system state information within a link based computing system
US7730246B2 (en) * 2005-06-30 2010-06-01 Intel Corporation Opportunistic transmission of software state information within a link based computing system
JP2009524134A (ja) 2006-01-18 2009-06-25 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト ハードウェア定義方法
US7788543B2 (en) * 2006-03-22 2010-08-31 Cisco Technology, Inc. Methods and systems for generating and storing computer program execution trace data
CN100485636C (zh) * 2006-04-24 2009-05-06 华为技术有限公司 一种基于模型驱动进行电信级业务开发的调试方法及装置
US7693257B2 (en) * 2006-06-29 2010-04-06 Accuray Incorporated Treatment delivery optimization
US20080016062A1 (en) * 2006-06-30 2008-01-17 Drescher Keith A Request-response trigger generation in link-connected computing systems
US7979839B2 (en) * 2006-08-23 2011-07-12 Wolf William M Method for employing the computer in the creative act of programming
US8104022B2 (en) * 2006-11-06 2012-01-24 International Business Machines Corporation Automated method for historical analysis of a memory state
EP2003563A1 (de) * 2007-05-24 2008-12-17 Siemens Aktiengesellschaft Verfahren zur Fenlersuche bei einem Automatisierungsgerätes
US7992137B2 (en) * 2007-07-30 2011-08-02 Nvidia Corporation Client server system for analysis and performance tuning of remote graphics devices
US8245212B2 (en) * 2008-02-22 2012-08-14 Microsoft Corporation Building call tree branches and utilizing break points
US9098626B2 (en) * 2008-04-01 2015-08-04 Oracle International Corporation Method and system for log file processing and generating a graphical user interface based thereon
US9823903B2 (en) * 2008-07-18 2017-11-21 Oracle International Corporation Debugging software through visual representations mapped to computer code
CN101968767A (zh) * 2010-10-15 2011-02-09 北京数码大方科技有限公司 基于宏程序的代码调试及仿真的方法和装置
US8762952B2 (en) 2010-12-14 2014-06-24 Bmc Software, Inc. Recording method calls that led to an unforeseen problem
US8745598B2 (en) 2010-12-14 2014-06-03 Bmc Software, Inc. Running injected code prior to execution of an application
JP5653250B2 (ja) * 2011-02-21 2015-01-14 中国電力株式会社 データ分析支援装置、データ分析支援方法及びプログラム
CN102411534B (zh) * 2011-07-25 2014-12-31 中国科学院声学研究所 一种断点调试方法和断点调试装置
US8935671B2 (en) 2011-10-11 2015-01-13 Apple Inc. Debugging a graphics application executing on a target device
US8909990B2 (en) 2012-08-04 2014-12-09 Microsoft Corporation Historical software diagnostics using lightweight process snapshots
US9129063B2 (en) * 2013-05-14 2015-09-08 Oracle International Corporation Visualizing a computer program execution history
US9734040B2 (en) 2013-05-21 2017-08-15 Microsoft Technology Licensing, Llc Animated highlights in a graph representing an application
US20140189650A1 (en) * 2013-05-21 2014-07-03 Concurix Corporation Setting Breakpoints Using an Interactive Graph Representing an Application
US8990777B2 (en) 2013-05-21 2015-03-24 Concurix Corporation Interactive graph for navigating and monitoring execution of application code
US9280841B2 (en) 2013-07-24 2016-03-08 Microsoft Technology Licensing, Llc Event chain visualization of performance data
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
EP3069267A4 (en) 2013-11-13 2017-09-27 Microsoft Technology Licensing, LLC Software component recommendation based on multiple trace runs
US10289411B2 (en) 2013-11-18 2019-05-14 Microsoft Technology Licensing, Llc Diagnosing production applications
US9632915B2 (en) * 2014-10-29 2017-04-25 Microsoft Technology Licensing, Llc. Historical control flow visualization in production diagnostics
US20160357519A1 (en) * 2015-06-05 2016-12-08 Microsoft Technology Licensing, Llc Natural Language Engine for Coding and Debugging
US10496512B2 (en) * 2016-05-11 2019-12-03 Micro Focus Llc Visualization of error flows associated with errors of different types in instances of application transactions
US10353802B2 (en) * 2016-11-04 2019-07-16 International Business Machines Corporation Debugging a live streaming application
CN108875289B (zh) * 2017-05-08 2021-12-14 腾讯科技(深圳)有限公司 一种算法调试方法、客户端、后台服务器及系统
US10282274B2 (en) * 2017-06-14 2019-05-07 Microsoft Technology Licensing, Llc Presenting differences between code entity invocations
GB201808519D0 (en) 2018-05-24 2018-07-11 Undo Ltd Debugging Systems
US11947966B2 (en) 2021-10-11 2024-04-02 International Business Machines Corporation Identifying computer instructions enclosed by macros and conflicting macros at build time
US11481200B1 (en) 2021-10-11 2022-10-25 International Business Machines Corporation Checking source code validity at time of code update

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4595981A (en) * 1984-03-05 1986-06-17 At&T Bell Laboratories Method of testing interfaces between computer program modules
JPH02272645A (ja) * 1989-04-14 1990-11-07 Hitachi Ltd プログラム・デバツグ支援方法
US5124989A (en) * 1990-01-08 1992-06-23 Microsoft Corporation Method of debugging a computer program
US5313616A (en) * 1990-09-18 1994-05-17 88Open Consortium, Ltd. Method for analyzing calls of application program by inserting monitoring routines into the executable version and redirecting calls to the monitoring routines
JPH04337843A (ja) * 1991-05-15 1992-11-25 Hitachi Ltd プログラム動作表示方法
US5410648A (en) * 1991-08-30 1995-04-25 International Business Machines Corporation Debugging system wherein multiple code views are simultaneously managed
US5297150A (en) * 1992-06-17 1994-03-22 International Business Machines Corporation Rule-based method for testing of programming segments

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6661439B1 (en) 1999-06-17 2003-12-09 Nec Corporation Information visualization system
JP2009205472A (ja) * 2008-02-28 2009-09-10 Nec Corp ログ出力システム、ログ出力方法、およびログ出力プログラム
JP2012221501A (ja) * 2011-04-08 2012-11-12 Computer Associates Think Inc トランザクショントレースグラフと論理的サブシステムのマップとの関係の可視化
CN102421004A (zh) * 2011-11-01 2012-04-18 深圳创维-Rgb电子有限公司 电视机软件系统的调试方法及装置
CN102662821A (zh) * 2012-03-22 2012-09-12 华为技术有限公司 虚拟机故障的辅助诊断方法、装置和系统
CN102662821B (zh) * 2012-03-22 2015-03-11 华为技术有限公司 虚拟机故障的辅助诊断方法、装置和系统
US9459948B2 (en) 2012-03-22 2016-10-04 Huawei Technologies Co., Ltd. Auxiliary method, apparatus and system for diagnosing failure of virtual machine
JP2017539031A (ja) * 2014-12-09 2017-12-28 エントイット ソフトウェア エルエルシーEntit Software Llc テスト実行からのテスト検証の分離
US10534700B2 (en) 2014-12-09 2020-01-14 Micro Focus Llc Separating test verifications from test executions
WO2019159397A1 (ja) * 2018-02-15 2019-08-22 三菱電機株式会社 ソフトウェア可視化装置、ソフトウェア可視化方法およびソフトウェア可視化プログラム
GB2584038A (en) * 2018-02-15 2020-11-18 Mitsubishi Electric Corp Software visualization device, software visualization method, and software visualization program

Also Published As

Publication number Publication date
EP0690378A1 (en) 1996-01-03
CA2153075A1 (en) 1995-12-31
US6003143A (en) 1999-12-14
CN1118473A (zh) 1996-03-13

Similar Documents

Publication Publication Date Title
JPH0883197A (ja) ソフトウエアプログラムをデバッグする方法およびコンピュータシステム
US6016474A (en) Tool and method for diagnosing and correcting errors in a computer program
US6026362A (en) Tool and method for diagnosing and correcting errors in a computer program
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US5325531A (en) Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines
US5313387A (en) Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers
US6539390B1 (en) Integrated development environment for aspect-oriented programming
US6151701A (en) Method for reconstructing debugging information for a decompiled executable file
US6658649B1 (en) Method, apparatus and article of manufacture for debugging a user defined region of code
US5170465A (en) Incremental-scanning compiler for source-code development system
US5956479A (en) Demand based generation of symbolic information
US5182806A (en) Incremental compiler for source-code development system
US5201050A (en) Line-skip compiler for source-code development system
JPH04337843A (ja) プログラム動作表示方法
JPH02272645A (ja) プログラム・デバツグ支援方法
JPH0338735A (ja) 並列プログラム中のエラーを探す方法及び支援システム
AU638999B2 (en) Incremental compiler for source-code development system
US20030018957A1 (en) Debugger monitor with anticipatory highlights
Feiler et al. An incremental programming environment
JP2007226685A (ja) アプリケーションメンテナンス支援装置、アプリケーション生成装置、アプリケーションメンテナンス支援方法、およびコンピュータプログラム
JP2000207246A (ja) デバッグ支援装置及び方法並びにデバッグ支援用ソフトウェアを記録した記録媒体
Bahlke et al. Context-sensitive editing with PSG environments
JP2002288004A (ja) プログラムソース処理装置、プログラムソース処理方法、およびプログラムソース処理プログラム
Bovey A debugger for a graphical workstation
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式