JPH06242943A - ソースコードレベルデバッグ装置 - Google Patents

ソースコードレベルデバッグ装置

Info

Publication number
JPH06242943A
JPH06242943A JP5025794A JP2579493A JPH06242943A JP H06242943 A JPH06242943 A JP H06242943A JP 5025794 A JP5025794 A JP 5025794A JP 2579493 A JP2579493 A JP 2579493A JP H06242943 A JPH06242943 A JP H06242943A
Authority
JP
Japan
Prior art keywords
basic block
source code
debug
under test
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
JP5025794A
Other languages
English (en)
Inventor
Shoichi Nakamura
省一 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP5025794A priority Critical patent/JPH06242943A/ja
Publication of JPH06242943A publication Critical patent/JPH06242943A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】 最適化処理を受けたオブジェクトコードに対
してソースコードデバッグができ、デバッグ工程の作業
効率を大幅に向上できる。 【構成】 基本ブロック分解部110は、ソースコード
を基本ブロックに分解し基本ブロック情報300を生成
し、基本ブロックオブジェクトコード対応情報生成部1
20は最適化オブジェクトコードおよびシンボル情報を
各基本ブロックに対応づけ基本ブロックオブジェトコー
ド対応情報500を生成する。ブレークポイント設定部
141は前記二つの情報300、500より実行命令に
含まれる基本ブロックおよびその先頭位置に対応する機
械語命令のアドレスを求め、被試験プログラム720に
ブレークコードを埋め込む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ソフトウェア開発のデ
バッグ工程における支援ツールであるソースコードデバ
ッグ装置に利用する。特に、デバッグ対象となるオブジ
ェクトコードがコンパイラの最適化処理を受け命令実行
順序または記憶ロケーショが変更されている場合のソー
スコードデバッグを可能にするソースコードデバッグ装
置に関するものである。
【0002】
【従来の技術】従来、ソースコードレベルデバッグ装置
は、コンパイラの最適化処理を受けたオブジェクトコー
ドに対してはソースコードレベルデバッグを行うのは不
可能であるために、最適化されたオブジェクトコードに
対してアセンブラレベルのデバッグを行っていた。
【0003】
【発明が解決しようとする課題】しかし、このような従
来のソースコードレベルデバッグ装置では、コンパイラ
による最適化処理が行われたオブジェクトコードに対し
てはソースコードレベルデバッグが不可能であったため
に、試験者はデバッグする場合には、まずコンパイラの
最適化処理を受けないオブジェクトコードでソースコー
ドレベルデバッグを行い、最終確認時にコンパイラの最
適化処理を受けたオブジェクトコードで動作確認を行っ
ていた。このために、デバッグ工程で二度デバッグする
必要があり、また最適化処理を受けたオブジェクトコー
ドをデバッグするときにアセンブラレベルデバッグとな
るために、デバッグ工程での作業効率低下を招く欠点が
あった。
【0004】ソースコード中の各ユーザ資源についての
記述を含むデバッグシンボル表とコードが実行される間
に色々なロケーションに記憶される各ユーザ資源ごと
に、レンジのリストと、各レンジごとにそのユーザ資源
がどこにあるかに関する記述が含まれるレンジ表とに基
づき、デバッガはソースコード中で名前が付けられてい
るユーザ資源が実際にどこに配置されているか知りアク
セスする方法があるが(特開平1−166141号公
報)、レンジ表はオブジェクトプログラムの実行時間を
少なくするためおよび記憶領域を少なくするためなどで
実行順序または記憶するロケーションを変更するごとに
更新する必要があり、それを作成するソフトウェアが複
雑になる問題がある。
【0005】本発明は前記の欠点を解決するもので、ソ
フトウェアのデバッグ工程の初期段階からコンパイラの
最適化処理を受けたオブジェクトコードに対してソース
コードレベルデバッグができ、デバッグ工程の作業効率
を大幅に向上できるソースコードレベルデバッグ装置を
提供することを目的とする。
【0006】
【課題を解決するための手段】本発明は、デバッグ手段
を含むコンピュータと、このデバッグ手段の制御により
被試験プログラムの試験を行う被試験装置とを備えたソ
ースコードレベルデバッグ装置において、前記デバッグ
手段は、前記被試験プログラムのソースコードを基本ブ
ロックに分解して基本ブロック情報を生成する手段と、
この基本ブロック情報に基づきコンパイルの最適化処理
を受けて生成されたオブジェクトコードおよびデバッグ
用のシンボル情報を各基本ブロックに対応づけ基本ブロ
ックオブジェクトコード対応情報を生成する手段と、利
用者より入力されたデバッグ用のコマンドを解釈するコ
マンド解析部と、前記基本ブロック情報および前記基本
ブロックオブジェクトコード対応情報に基づき最適化さ
れたオブジェクトコードに対して基本ブロックに対応し
たソースコード単位に前記解釈されたコマンドを実行す
るコマンド実行部と、前記被試験装置との通信を行う通
信部とを含むことを特徴とする。
【0007】また、本発明は、前記被試験装置は、前記
コマンド実行部との通信および被試験プログラムの走行
制御を行うモニタプログラムとしてデバッグモニタを含
む。
【0008】さらに、本発明は、前コマンド実行部は、
最適化されたオブジェクトコードに対して基本ブロック
に対応したソースコード単位にブレークポイント設定を
行うブレークポイント設定部と、最適化されたオブジェ
クトコードに対して基本ブロックに対応したソースコー
ド単位に変数内容の表示を行う変数内容表示部とを含む
ことができる。
【0009】
【作用】被試験プログラムのソースコードを基本ブロッ
クに分解して基本ブロック情報を生成し、また最適化オ
ブジェクトコードおよびシンボル情報を各基本ブロック
に対応づけて基本ブロックオブジェクトコード対応情報
を生成する。基本ブロック情報および基本ブロックオブ
ジェクトコード対応情報に基づき、ブレークコードを埋
め込む実行命令分に含まれる基本ブロックおよび基本ブ
ロックの先頭位置に対応する機械語命令のアドレスを求
めて、被試験プログラムにブレークコードを埋め込み、
被試験装置がブレークコードが埋め込まれたところで停
止するとその停止した場所に対応するソースコードを画
面に表示する。これによりソフトウェアのデバッグ工程
の初期段階からコンパイラの最適化処理を受けたオブジ
ェクトコードに対してソースコードレベルデバッグがで
き、デバッグ工程の作業効率を大幅に向上できる。
【0010】
【実施例】本発明の実施例について図面を参照して説明
する。
【0011】図1は本発明一実施例ソースコードレベル
デバッグ装置のブロック構成図である。
【0012】図1において、ソースコードレベルデバッ
グ装置は、デバッグ手段としてデバッグシステム100
を含むコンピュータ10と、デバッグシステム100の
制御により被試験プログラム720の試験を行う被試験
装置700とを備える。
【0013】ここで本発明の特徴とするところは、デバ
ッグシステム100は、被試験プログラム720のソー
スコードを基本ブロックに分解して基本ブロック情報3
00を生成する手段として基本ブロック分解部110
と、基本ブロック情報300に基づきコンパイルの最適
化処理を受けて生成されたオブジェクトコードおよびデ
バッグ用のシンボル情報を各基本ブロックに対応づけ基
本ブロックオブジェクトコード対応情報500を生成す
る手段として基本ブロックオブジェクトコード対応情報
生成部120と、利用者より入力されたデバッグ用のコ
マンドを解釈するコマンド解析部130と、基本ブロッ
ク情報300および基本ブロックオブジェクトコード対
応情報500に基づき最適化されたオブジェクトコード
に対して基本ブロックに対応したソースコード単位に前
記解釈されたコマンドを実行するコマンド実行部140
と、被試験装置700との通信を行う被試験装置通信部
150とを含むことを特徴とする。
【0014】さらに、被試験装置700は、コマンド実
行部140との通信および被試験プログラム720の走
行制御を行うモニタプログラムとしてデバッグモニタ7
10を含む。
【0015】さらに、コマンド実行部140は、最適化
されたオブジェクトコードに対して基本ブロックに対応
したソースコード単位にブレークポイント設定を行うブ
レークポイント設定部141と、最適化されたオブジェ
クトコードに対して基本ブロックに対応したソースコー
ド単位に変数内容の表示を行う変数内容表示部142と
を含む。
【0016】このような構成のソースコードレベルデバ
ッグ装置の動作について説明する。
【0017】図2は本発明のソースコードレベルデバッ
グ装置の分解された基本ブロックの一例を示す図であ
る。図3は本発明のソースコードレベルデバッグ装置の
画面表示の一例を示す図である。
【0018】図1〜図3において、基本ブロック分解部
110は、被試験プログラム720のソースコードファ
イル200を入力し、基本ブロックと呼ばれるシーケン
シャルに実行される一連の命令の並びに分解し、基本ブ
ロック情報300を生成する。
【0019】図2(a)を被試験プログラム720のソ
ースコードとすると、図2(b)の破線で囲まれた部分
が基本ブロックである。
【0020】基本ブロックオブジェクトコード対応情報
生成部120は、最適化されたオブジェクトコードファ
イル400および基本ブロック情報300を入力し、各
基本ブロックに対してオブジェクトコードとデバッグ用
のシンボル情報とを関連づけ、基本ブロックオブジェク
トコード対応情報500を生成する。
【0021】デバック用シンボル情報には、被試験プロ
グラム720のソースコードに対応する機械語命令のア
ドレスや基本ブロックで使用されている変数の属性情報
およびアドレスが含まれている。
【0022】コマンド解析部130は、デバッグシステ
ム利用者から発行されたデバッグ用コマンド600を入
力し、コマンドの種別によりコマンド実行部140にあ
る各コマンド対応の実行部を呼出す。
【0023】コマンド実行部140は、各コマンドに対
応した、たとえばプログラムの指定した場所でストップ
するようにブレークコードを埋めるブレークポイント設
定部141や変数の内容を表示する変数内容表示部14
2を有する。
【0024】ブレークポイント設定部141は、基本ブ
ロック情報300と基本ブロックオブジェクトコード対
応情報500を入力し、コマンドにより指定されたブレ
ークコードを埋め込む実行命令文に含まれる基本ブロッ
クおよび基本ブロックの先頭位置に対応する機械語命令
のアドレスを求め、被試験装置通信部150を通して、
被試験装置700の中にあるデバックモニタ710と通
信することにより、被試験プログラム720にブレーク
コードを埋め込む。被試験装置700がブレークコード
が埋め込まれたところで停止すると、デバッグシステム
100のコマンド実行部140は、被試験装置通信部1
50を介して停止の通知を受け、基本ブロック情報30
0および基本ブロックオブジェクトコード対応情報50
0に基づき停止した場所に対応するソースコードを画面
に表示する。
【0025】図3は、被試験プログラム720を走行さ
せ、ブレークコードが埋め込まれた位置でプログラムが
停止したときの表示例で、本発明のデバッグシステムが
この基本ブロックでストップしたことが明確となるよう
に強調して表示している。
【0026】
【発明の効果】以上説明したように、本発明は、ソフト
ウェアのデバッグ工程の初期段階からコンパイラの最適
化処理を受けたオブジェクトコードに対してソースコー
ドレベルデバッグができ、デバッグ工程の作業効率を大
幅に向上できる優れた効果がある。
【図面の簡単な説明】
【図1】本発明一実施例ソースコードレベルデバッグ装
置のブロック構成図。
【図2】本発明のソースコードレベルデバッグ装置の分
解された基本ブロックの一例を示す図。
【図3】本発明のソースコードレベルデバッグ装置の画
面表示の一例を示す図。
【符号の説明】
10 コンピュータ 100 デバッグシステム 110 基本ブロック分解部 120 基本ブロックオブジェクトコード対応情報生成
部 130 コマンド解析部 140 コマンド実行部 141 ブレークポイント設定部 142 変数内容表示部 150 被試験装置通信部 200 ソースコードファイル 300 基本ブロック情報 400 最適オブジェクトコードファイル 500 基本ブロックオブジェクトコード対応情報 600 デバッグコマンド 700 被試験装置 710 デバッグモニタ 720 被試験プログラム

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 デバッグ手段を含むコンピュータと、こ
    のデバッグ手段の制御により被試験プログラムの試験を
    行う被試験装置とを備えたソースコードレベルデバッグ
    装置において、 前記デバッグ手段は、前記被試験プログラムのソースコ
    ードを基本ブロックに分解して基本ブロック情報を生成
    する手段と、この基本ブロック情報に基づきコンパイル
    の最適化処理を受けて生成されたオブジェクトコードお
    よびデバッグ用のシンボル情報を各基本ブロックに対応
    づけ基本ブロックオブジェクトコード対応情報を生成す
    る手段と、利用者より入力されたデバッグ用のコマンド
    を解釈するコマンド解析部と、前記基本ブロック情報お
    よび前記基本ブロックオブジェクトコード対応情報に基
    づき最適化されたオブジェクトコードに対して基本ブロ
    ックに対応したソースコード単位に前記解釈されたコマ
    ンドを実行するコマンド実行部と、前記被試験装置との
    通信を行う通信部とを含むことを特徴とするソースコー
    ドレベルデバッグ装置。
  2. 【請求項2】前記被試験装置は、前記コマンド実行部と
    の通信および前記被試験プログラムの走行制御を行うモ
    ニタプログラムを含む請求項1記載のソースコードレベ
    ルデバッグ装置。
  3. 【請求項3】 前コマンド実行部は、最適化されたオブ
    ジェクトコードに対して基本ブロックに対応したソース
    コード単位にブレークポイント設定を行うブレークポイ
    ント設定部と、最適化されたオブジェクトコードに対し
    て基本ブロックに対応したソースコード単位に変数内容
    の表示を行う変数内容表示部とを含む請求項1記載のソ
    ースコードレベルデバッグ装置。
JP5025794A 1993-02-15 1993-02-15 ソースコードレベルデバッグ装置 Pending JPH06242943A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5025794A JPH06242943A (ja) 1993-02-15 1993-02-15 ソースコードレベルデバッグ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5025794A JPH06242943A (ja) 1993-02-15 1993-02-15 ソースコードレベルデバッグ装置

Publications (1)

Publication Number Publication Date
JPH06242943A true JPH06242943A (ja) 1994-09-02

Family

ID=12175748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5025794A Pending JPH06242943A (ja) 1993-02-15 1993-02-15 ソースコードレベルデバッグ装置

Country Status (1)

Country Link
JP (1) JPH06242943A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078309A (ja) * 2003-08-29 2005-03-24 Nec Corp データ処理システム
JP2007179567A (ja) * 2007-02-26 2007-07-12 Nec Corp データ処理システム
US8473903B2 (en) 2009-09-28 2013-06-25 The Bank Of Tokyo-Mitsubishi Ufj, Ltd. Code edit apparatus and recording medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01166141A (ja) * 1987-11-16 1989-06-30 Hewlett Packard Co <Hp> デバッグ情報提供方法
JPH03179535A (ja) * 1989-12-08 1991-08-05 Nec Corp デバッグ支援装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01166141A (ja) * 1987-11-16 1989-06-30 Hewlett Packard Co <Hp> デバッグ情報提供方法
JPH03179535A (ja) * 1989-12-08 1991-08-05 Nec Corp デバッグ支援装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005078309A (ja) * 2003-08-29 2005-03-24 Nec Corp データ処理システム
US7647485B2 (en) 2003-08-29 2010-01-12 Nec Corporation Data processing system for debugging utilizing halts in a parallel device
JP2007179567A (ja) * 2007-02-26 2007-07-12 Nec Corp データ処理システム
US8473903B2 (en) 2009-09-28 2013-06-25 The Bank Of Tokyo-Mitsubishi Ufj, Ltd. Code edit apparatus and recording medium

Similar Documents

Publication Publication Date Title
JPH0950389A (ja) コンピュータシステムを使って実装される装置及び方法
KR20000028921A (ko) 반도체 시험장치의 프로그램 작성 시스템
JP2004139458A (ja) プログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法
JPH06242943A (ja) ソースコードレベルデバッグ装置
JPS62113244A (ja) プログラムテスト装置
JPH03241439A (ja) テストデータ作成ツール
EP0801348A1 (en) Method of monitoring the operation of a computer
JPH05265802A (ja) ソフトウェアデバッグ装置
JPS6292034A (ja) プログラムデバツグ装置
JP2007004516A (ja) 組込みシステムのプログラムデバッグ方法
JP2001356928A (ja) 試験評価システム
JP2659366B2 (ja) デバッグ方法及びその装置
JPS6292033A (ja) プログラムデバツグ装置
JPH07110780A (ja) デバッグ装置
JPH07319730A (ja) テスト・デバッグ方法
JPH05250221A (ja) シミュレータ実行方式
JPH04333146A (ja) デバッグにおけるプログラムの実行制御方式
JPS6365542A (ja) デバツグ方式
KR0175469B1 (ko) 칠프로그램 변수의 가시성 제어방법
JPH0766343B2 (ja) プログラムテスト装置
JP2006350676A (ja) 組込みシステムのプログラムデバッグ方法
JP2008077278A (ja) テストシミュレータ
JPS6292035A (ja) プログラムデバツグ装置
JPH06242942A (ja) ソースコードレベルデバッグ装置
JPS6292032A (ja) プログラムテスト方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees