JPH0736733A - デバッガ支援装置 - Google Patents

デバッガ支援装置

Info

Publication number
JPH0736733A
JPH0736733A JP5178320A JP17832093A JPH0736733A JP H0736733 A JPH0736733 A JP H0736733A JP 5178320 A JP5178320 A JP 5178320A JP 17832093 A JP17832093 A JP 17832093A JP H0736733 A JPH0736733 A JP H0736733A
Authority
JP
Japan
Prior art keywords
debugger
symbol
program
target
source
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
JP5178320A
Other languages
English (en)
Inventor
Kaoru Hagiwara
馨 萩原
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP5178320A priority Critical patent/JPH0736733A/ja
Publication of JPH0736733A publication Critical patent/JPH0736733A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 デバッガ時におけるユーザの負担を軽減させ
ることができるデバック支援装置を提供する。 【構成】 ユーザから原始記号を含むデバッガコマンド
が入力部2から入力される。記号変換プログラムが実行
され、目的プログラム16に存在する目的記号のうち、
デバッガコマンドに含まれる原始記号に対応する目的記
号の候補の集合が決定される。そして、決定された目的
記号を用いて、デバッガが実行され、決定された目的記
号の妥当性が判断される。そして、妥当であると判断さ
れた目的記号を用いてデバッガコマンドに含まれる原始
記号が書き換えられ、この書き換えられたデバッガコマ
ンドを用いて、デバッガが実行される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンパイラによって生
成されたプログラムをデバッガするためのデバッガ支援
装置に関する。
【0002】
【従来の技術】原始言語(プログラム言語などの高水準
言語)で記述された原始プログラムを、目的言語(アセ
ンブリ言語などの低水準言語)で記述された目的プログ
ラムに翻訳するコンパイラには、翻訳の過程で原始言語
をインタプリタと呼ばれるプログラムを用いて直接実行
することができる中間言語プログラム(中間コード)に
変換してから、目的プログラムを作成するものがある。
コンパイラによって最終的に生成された目的プログラム
は、通常、中間言語プログラムに現れる名前(変数名、
手続名などの識別子)に関する情報を集めた記号表を保
持しているが、原始プログラムに現れる名前に関する情
報を集めた記号表は保持していない。
【0003】一方、コンパイラによって生成された目的
プログラムが正しく動作しない場合に、その原因となる
バグ(bug)をユーザからの指示に応じて取り除くデ
バッガ(debug)処理を行うデバッカが知られてい
る。このデバッカは、目的プログラムを動作させた時
に、たとえば、目的プログラムに現れる変数名が持つ値
を逐次、観察するといった処理を行う。このとき、上述
したように目的プログラムは中間言語プログラムに現れ
る名前に関する記号表を有しているため、ユーザはデバ
ッガ手続を行う場合に、観察を行いたい変数名などの名
前を中間言語プログラムに現れている名前を用いてデバ
ッカに入力する。
【0004】
【発明が解決しようとする課題】しかし、目的プログラ
ムは原始プログラムに現れる名前に関する記号表は有し
ていないため、ユーザは観察を行いたい変数名などの名
前を原始プログラムに現れている名前を用いてデバッカ
に入力することはできない。従って、ユーザは、たとえ
ば、自らが記述した原始プログラムを見ながらバグが存
在しそうな記述に関連した変数に着目し、その変数の値
をデバッカを用いて観察するために、その変数名の中間
言語プログラムにおける名前を確認し、その中間言語プ
ログラムにおける名前をデバッカに入力するといった手
続を行わなければならない。このような手続はユーザに
とって非常に負担であり、デバッガ手続を効率的に行え
ないという問題がある。
【0005】本発明は、上述した従来技術の問題点に鑑
みてなされ、デバッガ時におけるユーザの負担を軽減さ
せることができるデバッガ支援装置を提供することを目
的とする。
【0006】
【課題を解決するための手段】上述した従来技術の問題
を解決し、上述した目的を達成するために本発明のデバ
ッガ支援装置は、原始言語で記述された原始記号を含む
原始プログラムをコンパイラして生成された目的記号を
含む目的プログラムをデバッガするデバッガ手段と、該
デバッガ手段にデバッガ指示を行うデバッガ指示手段
と、原始記号に対応する目的記号の候補が登録されてお
り、前記デバッガ指示手段からのデバッガ指示に原始記
号が含まれる場合、その原始記号に対応する前記登録さ
れた目的記号の候補を選択し、該選択された目的記号を
用いた前記デバッガ指示で前記デバッガ手段を試行さ
せ、試行結果が正しい場合にその目的記号を正当な目的
記号として決定し、試行結果が正しくない場合にその他
の前記登録された目的記号の候補を用いた前記デバッガ
指示で前記デバッガ手段を試行させる目的記号選択手段
とを有する。
【0007】
【作用】本発明のデバッガ支援装置では、ユーザが原始
プログラムを見ながらバグが存在するであろうと思われ
る記述を見つけ、その記述と関連のある原始記号を含む
デバッガ指示を、たとえば、デバッガ指示手段に入力す
る。該デバッガ指示手段に前記デバッガ指示が入力され
ると、目的記号選択手段にて、該デバッガ指示に原始記
号が含まれているか否かが判断され、含まれていると判
断された場合には、その原始記号に対応する登録された
目的記号の候補が選択され、該選択された目的記号を用
いた前記デバッガ指示で前記デバッガ手段が試行され
る。そして、目的記号選択手段にて、前記デバッガ手段
の試行結果が正しいと判断された場合には、その目的記
号が正当な目的記号として決定され、一方、試行結果が
正しくないと判断された場合には、その他の登録された
目的記号の候補を用いた前記デバッガ指示で前記デバッ
ガ手段が試行される。
【0008】
【実施例】本発明の実施例に係わるデバッガ支援装置に
ついて説明する。図1は本実施例のデバッガ支援装置1
の構成図である。図1に示すように、本実施例のデバッ
ガ支援装置1は、デバッガ指示手段としての入力部2、
出力手段としての出力部4、制御部6およびメモリ8で
構成される。目的記号選択手段、デバッガ手段および判
断手段は制御部6によって実現される。入力部2は、キ
ーボードやマウスなどを備え、ユーザによる操作に応じ
たデバッガ指示としてのデバッガコマンドを入力し、入
力したデバッガコマンドに応じた指示信号S2を制御部
6に出力する。出力部4は、CRTディスプレイなどを
備え、制御部6からの表示信号S4を入力し、表示信号
S4に応じた表示を行う。
【0009】メモリ8は、後述するような、コンパイ
ラ、原始プログラム、中間プログラム、目的プログラ
ム、デバッガ、記号変換プログラム、デバッガインター
フェースなどのプログラム、および、これらのプログラ
ムに関連したデータを記憶している。制御部6は、入力
部2からの指示信号S2に応じて、メモリ8に記憶され
たプログラムに記述された処理を実行し、実行結果に応
じた表示信号S6を出力部4に出力する。
【0010】以下、制御部6が、メモリ8に記憶された
プログラムを用いて行う処理を説明する。図2は、制御
部6にて行われる処理を説明するための図である。原始
プログラム12は、たとえば、C言語あるいはフォート
ラン言語などの高水準プログラム言語で記述されたプロ
グラムであり、たとえば、デバッガ支援装置1のユーザ
自らが記述したプログラムである。中間言語プログラム
14は、原始プログラム12を入力として、コンパイラ
18を制御部3にて実行させたときに生成されるプログ
ラムである。
【0011】目的プログラム16は、中間言語プログラ
ム14を入力として、コンパイラ18を制御部3にて実
行させたときに生成されるアセンブリ言語などの低水準
言語で記述されたプログラムである。目的プログラム1
6は、中間言語プログラム14に現れる名前(変数名、
手続名などの識別子)などの記号(以下、目的記号と呼
ぶ)に関する情報を集めた記号表を保持しているが、原
始プログラム12に現れる名前などの記号(以下、原始
記号と呼ぶ)に関する情報を集めた記号表は保持してい
ない。コンパイラ18は、制御部3にて実行され、原始
プログラム12を中間言語プログラム14に変換(翻
訳)する処理と、中間言語プログラム14を目的プログ
ラム16に変換する処理とを記述したプログラムであ
る。
【0012】デバッガインタフェース22は、制御部3
におけるデバッガ20の処理と、ユーザとの間のインタ
フェースを入力部2および出力部4を介して行う際の処
理を記述したプログラムあるいは実行するハードウェア
である。
【0013】記号変換プログラム24は、予め原始記号
に対応する目的記号の登録を保持しており、デバッガイ
ンタフェース22あるいはデバッガ20から原始プログ
ラム12に現れる原始記号を入力し、この入力した原始
記号を対応する目的記号の候補を選択することを記述し
たプログラムである。
【0014】デバッガ20は、目的記号を含むデバッガ
コマンドに応じて、目的プログラム16を参照しなが
ら、目的プログラム16の実行を制御する。図3は、制
御部3における処理を説明するためのフローチャートで
ある。 ステップS1:ユーザによる入力部2の操作に応じて、
デバッガコマンドを示す指示信号S2が制御部3に入力
される。このデバッガコマンドには、ユーザが希望する
デバッガ処理に対しての様々な命令が含まれている。
【0015】ステップS2:制御部3は、記号変換プロ
グラム24を実行し、ステップS1で入力したデバッガ
コマンドに、原始プログラム12に現れる原始記号が含
まれているか否かを判断し、含まれていると判断した場
合にはステップS3の処理を実行し、含まれていないと
判断した場合にはステップS7の処理を実行する。 ステップS3:制御部3は、記号変換プログラム24を
実行(試行)し、ステップS1で入力したデバッガコマ
ンドに含まれる原始記号に対応する、目的プログラム1
6に現れる目的記号の候補集合を作成する。目的プログ
ラム16に現れる記号の候補集合を作成するのに必要と
される処理時間は、原始プログラム12が持つ情報から
目的記号を完全に決定するのに必要とされる処理時間に
比べて短く、ユーザが行うデバッガ手続に支障をきたす
ことはない。尚、原始記号に対応する目的記号の候補を
選択する手法は、コンパイラ18の特性に応じて決定さ
れる。
【0016】ステップS4:制御部3は、記号変換プロ
グラム24を実行し、ステップS3にて作成された候補
集合に含まれる目的記号の候補の1つを選択する。
【0017】ステップS5:制御部3は、ステップS4
にて記号変換プログラム24が選択した目的記号を含む
デバッガコマンドを用いて、デバッガ20を実行する
(図4のステップS10)。そして、制御部3は、デバ
ッガ20を実行した結果、適切な値が得られたか否かを
判断する(図4のステップS11)。制御部3は、ステ
ップS11にて適切な値が得られたと判断した場合に
は、図3のステップS4にて選択された目的記号の候補
は正しいと判断し(ステップS12)、ステップS6の
処理を実行する。一方、制御部3は、ステップS11に
て適切な値が得られていないと判断した場合には、図3
のステップS4にて選択された目的記号の候補は誤りで
あると判断し(ステップS13)、ステップS4にて選
択した候補集合からステップS5にて正当性を判断した
候補を削除し(ステップS8)、ステップS4の処理を
再び実行する。
【0018】ステップS6:制御部3は、ステップS1
にて入力したデバッガコマンドに記述された原始記号を
ステップS4にて選択した目的記号に置き換える。
【0019】ステップS7:制御部3は、ステップS6
にて原始記号が置き換えられたデバッガコマンドを用い
てデバッガ20を実行する。
【0020】上述したように本実施例のデバッガ支援装
置1によれば、コンパイラ18およびデバッガ20に変
更を加えることなく、ユーザは入力部2から原始記号が
含まれるデバッガコマンドを入力することができる。そ
のため、ユーザは、原始プログラムと目的プログラムと
の対比等を行って原始記号に対応する目的記号を決定す
る必要がなくデバッガ手続の効率を高めることができ
る。また、デバッガコマンドに含まれる原始記号の妥当
性の判断を、デバッガ20に委ねることができるため、
記号変換プログラム24のデバッガ支援装置1への実装
が簡略化できる。
【0021】
【発明の効果】本発明のデバッガ支援装置によれば、コ
ンパイラおよびデバッガ手段に変更を加えることなく、
ユーザは原始記号が含まれるデバッガ指示を入力するこ
とができる。そのため、ユーザは、原始プログラムと目
的プログラムとの対比等を行って原始記号に対応する目
的記号を決定する必要がなくデバッガ手続の効率を高め
ることができる。また、本発明のデバッガ支援装置によ
れば、目的記号候補決定手段の実装を簡略化できる。
【図面の簡単な説明】
【図1】本実施例のデバッガ支援装置の構成図である。
【図2】図1に示す制御部にて行われる処理を説明する
ための図である。
【図3】図1に示す制御部における処理のフローチャー
トである。
【図4】図3におけるステップS5における処理のフロ
ーチャートである。
【符号の説明】
1・・・デバッガ支援装置 2・・・入力部 4・・・出力部 6・・・制御部 8・・・メモリ 12・・・原始プログラム 14・・・中間言語プログラム 16・・・目的プログラム 18・・・コンパイラ 20・・・デバッガ 22・・・デバッガインタフェース 24・・・記号変換プログラム

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】原始言語で記述された原始記号を含む原始
    プログラムをコンパイラして生成された目的記号を含む
    目的プログラムをデバッガするデバッガ手段と、 該デバッガ手段にデバッガ指示を行うデバッガ指示手段
    と、 原始記号に対応する目的記号の候補が登録されており、
    前記デバッガ指示手段からのデバッガ指示に原始記号が
    含まれる場合、その原始記号に対応する前記登録された
    目的記号の候補を選択し、該選択された目的記号を用い
    た前記デバッガ指示で前記デバッガ手段を試行させ、試
    行結果が正しい場合にその目的記号を正当な目的記号と
    して決定し、試行結果が正しくない場合にその他の前記
    登録された目的記号の候補を用いた前記デバッガ指示で
    前記デバッガ手段を試行させる目的記号選択手段とを有
    するデバッガ支援装置。
  2. 【請求項2】前記デバッガ手段の試行結果を出力する出
    力手段と、 該出力手段の出力に基づくユーザの操作に応じて、前記
    試行結果の正当性を判断する判断手段とをさらに有する
    デバッガ支援装置。
JP5178320A 1993-07-19 1993-07-19 デバッガ支援装置 Pending JPH0736733A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5178320A JPH0736733A (ja) 1993-07-19 1993-07-19 デバッガ支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5178320A JPH0736733A (ja) 1993-07-19 1993-07-19 デバッガ支援装置

Publications (1)

Publication Number Publication Date
JPH0736733A true JPH0736733A (ja) 1995-02-07

Family

ID=16046427

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5178320A Pending JPH0736733A (ja) 1993-07-19 1993-07-19 デバッガ支援装置

Country Status (1)

Country Link
JP (1) JPH0736733A (ja)

Similar Documents

Publication Publication Date Title
JPH05257709A (ja) 並列化判別方法およびそれを用いた並列化支援方法
JPH10301766A (ja) プログラム開発装置および並列リアルタイム処理装置
JPH11167492A (ja) ループ飛び出し文を含むループに対する配列サマリ解析方法
JPH0736733A (ja) デバッガ支援装置
JP2636665B2 (ja) 実行情報採取装置
JP4168224B2 (ja) プログラマブルコントローラのプログラミング装置
JPH11195011A (ja) 言語翻訳処理装置、言語翻訳処理方法、言語翻訳処理プログラムを記録した記録媒体
JPH0651995A (ja) 実行サブルーチン名の認識方法
JP2000353112A (ja) 中間言語レベルのデバッグ方法及びシステム
JPH06309175A (ja) インタプリタのプログラム実行方式
JPH064296A (ja) ジョブ制御言語高速解析処理装置
JPH04364537A (ja) 並列処理用プログラム最適化方法、装置およびコンパイラ
JPH06274351A (ja) コンパイラの最適化方式
JPH09305411A (ja) コンパイル型プログラムのプログラム実行装置
JPH05127945A (ja) プログラム実行状況解析方式
JPH09297680A (ja) アプリケーション開発環境に於けるパラメータ入力方法及びパラメータ入力方式
JPH0664541B2 (ja) コマンド処理装置
JPH0520060A (ja) プログラム部分実行方法およびプログラム部分実行装置
JPH10207738A (ja) 言語処理システム
JP2000081984A5 (ja)
JPH07141328A (ja) コンパイル装置
JPH086814A (ja) 命令列抽出処理装置
JPH05298117A (ja) 定数を引数とする手続きの最適化方式
JPH11224185A (ja) 変数影響解析装置及び変数影響解析方法
JPH0573335A (ja) プログラムの自動インライン展開方式