JPS63178341A - プログラムデバツグ方式 - Google Patents
プログラムデバツグ方式Info
- Publication number
- JPS63178341A JPS63178341A JP62010395A JP1039587A JPS63178341A JP S63178341 A JPS63178341 A JP S63178341A JP 62010395 A JP62010395 A JP 62010395A JP 1039587 A JP1039587 A JP 1039587A JP S63178341 A JPS63178341 A JP S63178341A
- Authority
- JP
- Japan
- Prior art keywords
- program
- source
- list
- position information
- compiler
- 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
Links
- 238000000034 method Methods 0.000 claims description 26
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔目 次〕
概要
産業上の利用分野
従来の技術と発明が解決しようとする問題点問題点を解
決するための手段 作用 実施例 発明の効果 〔概要〕 プログラムデバッグ方式において、プログラム作成者が
デバッグの為に、特別なルーチンを記述していた作業と
、デバッグ計算機において、目的とするポイントで、一
時停止させる為のアドレスを計算する作業を無くする為
に、コンパイラ、又はアセンブラに、目的プログラム上
の分岐命令。
決するための手段 作用 実施例 発明の効果 〔概要〕 プログラムデバッグ方式において、プログラム作成者が
デバッグの為に、特別なルーチンを記述していた作業と
、デバッグ計算機において、目的とするポイントで、一
時停止させる為のアドレスを計算する作業を無くする為
に、コンパイラ、又はアセンブラに、目的プログラム上
の分岐命令。
或いはサブルーチンコール命令を検出して、該命令の直
前に、ソースリスト上に表記されるソースプログラム名
、ページ、行、カラム等の位置情報と、ソフトウェア割
込みを発生するルーチンを自動挿入する手段と、デバッ
グ計算機上のデバッガプログラムに、上記コンパイラ、
又はアセンブラで盛り込んだソースリスト上の位置を指
定して、該プログラムの走行を一時停止する手段と、該
ソフトウェア割込みが発生したソースリスト上の位置を
表示する手段とを備えて、プログラムのデバッグをソー
スリストを基に行うようにしたものである。
前に、ソースリスト上に表記されるソースプログラム名
、ページ、行、カラム等の位置情報と、ソフトウェア割
込みを発生するルーチンを自動挿入する手段と、デバッ
グ計算機上のデバッガプログラムに、上記コンパイラ、
又はアセンブラで盛り込んだソースリスト上の位置を指
定して、該プログラムの走行を一時停止する手段と、該
ソフトウェア割込みが発生したソースリスト上の位置を
表示する手段とを備えて、プログラムのデバッグをソー
スリストを基に行うようにしたものである。
本発明は、高級言語で記述されたソースプログラムを、
コンパイラ、又はアセンブラで翻訳した目的プログラム
を、例えば、プログラム開発システム以外のシステムで
デバッグする場合に、該プログラムの通過点を、コンパ
イルリスト、又はアセンブルリスト上の位置(プログラ
ム名、ページ。
コンパイラ、又はアセンブラで翻訳した目的プログラム
を、例えば、プログラム開発システム以外のシステムで
デバッグする場合に、該プログラムの通過点を、コンパ
イルリスト、又はアセンブルリスト上の位置(プログラ
ム名、ページ。
行、カラム等)で指定して、デバッグするプログラムデ
バッグ方式に関する。
バッグ方式に関する。
従来から、ソフトウェアの開発を効率化する為に、高級
言語(簡易言語)によるソフトウェアの開発が行われて
いる。
言語(簡易言語)によるソフトウェアの開発が行われて
いる。
このように、ソフトウェアが高級言語で記述されると、
コンパイルリスト、又は、アセンブルリスト上の位置情
報(例えば、プログラム名、ページ、行、カラム等)と
、該コンパイラ、又はアセンブラで翻訳された目的プロ
グラムが走行するハードウェアとの接点(例えば、アド
レス)が遠くなる傾向になる。
コンパイルリスト、又は、アセンブルリスト上の位置情
報(例えば、プログラム名、ページ、行、カラム等)と
、該コンパイラ、又はアセンブラで翻訳された目的プロ
グラムが走行するハードウェアとの接点(例えば、アド
レス)が遠くなる傾向になる。
特に、開発途上のハードウェアを使用して、プログラム
の実機デバッグを行う場合には、開発支援用のソフトウ
ェアツールが使用できないか、又は存在しないので、実
際のハードウェアのレジスタや、メモリの内容を別の方
法(例えば、コンソールパネルや、基本デバッガによる
方法)で参照するが、このとき、実行上のアドレスや、
メモリ領域の内容が、上記高級言語リストとの対応が取
りにくい問題があり、該コンパイルリスト、又はアセン
ブルリスト上で、効果的にデバッグできるプログラムデ
バッグ方式が待たれていた。
の実機デバッグを行う場合には、開発支援用のソフトウ
ェアツールが使用できないか、又は存在しないので、実
際のハードウェアのレジスタや、メモリの内容を別の方
法(例えば、コンソールパネルや、基本デバッガによる
方法)で参照するが、このとき、実行上のアドレスや、
メモリ領域の内容が、上記高級言語リストとの対応が取
りにくい問題があり、該コンパイルリスト、又はアセン
ブルリスト上で、効果的にデバッグできるプログラムデ
バッグ方式が待たれていた。
〔従来の技術と発明が解決しようとする問題点〕第4図
は、従来のプログラムデバッグ方式を説明する図である
。
は、従来のプログラムデバッグ方式を説明する図である
。
先ず、コンパイラ、又はアセンブラにおいては、本図に
示すように、ソースプログラムをコーディングする時点
において、プログラム作成者が、該プログラムのデバッ
グを行い易いように、デバッグ用のルーチンを記述、挿
入して、例えば、コンパイラ1゛でコンパイルし、ロー
ドモジュール5”、ソースリスト2′を生成していた。
示すように、ソースプログラムをコーディングする時点
において、プログラム作成者が、該プログラムのデバッ
グを行い易いように、デバッグ用のルーチンを記述、挿
入して、例えば、コンパイラ1゛でコンパイルし、ロー
ドモジュール5”、ソースリスト2′を生成していた。
具体的には、実際に走行したプログラムのユニット番号
や、該ユニットの中の特定のサブルーチン番号の通過を
表示するプリント文を、ソースプログラムをコーディン
グする時点で、挿入していた。
や、該ユニットの中の特定のサブルーチン番号の通過を
表示するプリント文を、ソースプログラムをコーディン
グする時点で、挿入していた。
従って、コンパイラや、アセンブラが生成するソースリ
スト2′上のプログラム名、ページ、行。
スト2′上のプログラム名、ページ、行。
カラム等の情報をデータとして作り出し、作成者がコー
ディングしたソースプログラムの特定の位置に自動的に
挿入する機能は無かった。
ディングしたソースプログラムの特定の位置に自動的に
挿入する機能は無かった。
又、従来のデバッガにおいては、例えば、開発システム
以外のハードウェアで、目的プログラムのロードモジュ
ールを動作させた場合、該プログラム作成者がコンソー
ルパネル等から投入するラベル名や、実行アドレスでの
一時停止指定は可能であったが、上記コンパイルリスト
や、アセンブルリスト (ソースリスト)2”上のプロ
グラム名。
以外のハードウェアで、目的プログラムのロードモジュ
ールを動作させた場合、該プログラム作成者がコンソー
ルパネル等から投入するラベル名や、実行アドレスでの
一時停止指定は可能であったが、上記コンパイルリスト
や、アセンブルリスト (ソースリスト)2”上のプロ
グラム名。
ページ、行、カラム等を指定して、一時停止させる機能
は無かった。
は無かった。
このように、従来のプログラムデバッグ方式においては
、高級言語で記述されたプログラムのデバッグにおいて
、プログラム走行中のメモリアドレスと、コンパイルリ
スト、又はアセンブルリスト (ソースリスト)2゛上
の位置情報との対応が取り難くかった。又、該ソースリ
スト上の位置情報(ソースプログラム名、ページ、行、
カラム等)で、一時停止させたり、該プログラムの走行
上の位置を表示する機能が無かった。
、高級言語で記述されたプログラムのデバッグにおいて
、プログラム走行中のメモリアドレスと、コンパイルリ
スト、又はアセンブルリスト (ソースリスト)2゛上
の位置情報との対応が取り難くかった。又、該ソースリ
スト上の位置情報(ソースプログラム名、ページ、行、
カラム等)で、一時停止させたり、該プログラムの走行
上の位置を表示する機能が無かった。
更に、ソースプログラムからコンパイラを通すことによ
って、再配置可能な形式(即ち、各命令を、0番地から
割り付けられる形式)の目的プログラム(ロードモジュ
ール)5゛が出力されるが、このようにして、生成され
た複数個のソースプログラムを゛リンカ゛を通して1本
のロードモジュールにして、実ハードウェアで走行させ
る為、2木目以降の目的プログラムのアドレスは、人手
で計算する必要があり、デバッグの操作性が悪いと云う
問題があった。
って、再配置可能な形式(即ち、各命令を、0番地から
割り付けられる形式)の目的プログラム(ロードモジュ
ール)5゛が出力されるが、このようにして、生成され
た複数個のソースプログラムを゛リンカ゛を通して1本
のロードモジュールにして、実ハードウェアで走行させ
る為、2木目以降の目的プログラムのアドレスは、人手
で計算する必要があり、デバッグの操作性が悪いと云う
問題があった。
本発明は上記従来の欠点に鑑み、実ハードウェア上で走
行している目的プログラムをデバッグするのに、コンパ
イルリスト又はアセンブルリスト上の位置情報で、直接
該走行している目的プログラムを停止させたり、該走行
位置を表示させたりしてデバッグする方法を提供するこ
とを目的とするものである。
行している目的プログラムをデバッグするのに、コンパ
イルリスト又はアセンブルリスト上の位置情報で、直接
該走行している目的プログラムを停止させたり、該走行
位置を表示させたりしてデバッグする方法を提供するこ
とを目的とするものである。
c問題点を解決するための手段〕
第1図は、本発明のプログラムデバッグ方式の構成例を
示した図である。
示した図である。
本発明においては、
(1) 高級言語で記述されたソースプログラムをコ
ンパイラ、又はアセンブラ1で翻訳した時に出力される
ソースリスト (リストA)2を基に、該翻訳されたプ
ログラム(ロードモジュールA) 5をデバッグする方
式において、 該コンパイラ、又はアセンブラ1に、該翻訳されたプロ
グラム(ロードモジュールA)5の少なくとも分岐命令
、又はサブルーチンコール命令を検出して、上記ソース
リスト (リストA)2上の、少なくともプログラム名
、ページ、行、カラムの位置情報と、ソフトウェア割込
みを発生するルーチン(ソース5OB) 3を挿入する
手段と、該プログラム実行時に指示した上記位置情報で
一時停止することを判定する手段と、 を備え、 該コンパイラ、又はアセンブラ1で翻訳したプログラム
(ロードモジュールA)5を実行して、上記ソースリス
ト (リストA)2上の位置情報で一時停止させたり、
該ソフトウェア割込みの位置情報を表示させてデバッグ
するように構成する。
ンパイラ、又はアセンブラ1で翻訳した時に出力される
ソースリスト (リストA)2を基に、該翻訳されたプ
ログラム(ロードモジュールA) 5をデバッグする方
式において、 該コンパイラ、又はアセンブラ1に、該翻訳されたプロ
グラム(ロードモジュールA)5の少なくとも分岐命令
、又はサブルーチンコール命令を検出して、上記ソース
リスト (リストA)2上の、少なくともプログラム名
、ページ、行、カラムの位置情報と、ソフトウェア割込
みを発生するルーチン(ソース5OB) 3を挿入する
手段と、該プログラム実行時に指示した上記位置情報で
一時停止することを判定する手段と、 を備え、 該コンパイラ、又はアセンブラ1で翻訳したプログラム
(ロードモジュールA)5を実行して、上記ソースリス
ト (リストA)2上の位置情報で一時停止させたり、
該ソフトウェア割込みの位置情報を表示させてデバッグ
するように構成する。
(2)高級言語で記述されたソースプログラムをコンパ
イラ、又はアセンブラ1で翻訳した時に出力されるソー
スリスト (リストA)2を基に、該翻訳されたプログ
ラム(ロードモジュールA) 5をデバッグする方式に
おいて、 該コンパイラ、又はアセンブラ1に、該翻訳されたプロ
グラム(ロードモジュールA)5の少なくとも分岐命令
、又はサブルーチンコール命令を検出して、上記ソース
リスト (ソースA)2上の、少なくともプログラム名
、ページ、行、カラムの位置情報と、ソフトウェア割込
みを発生するルーチン(ソース5UB) 3を挿入する
手段と、デバッガに、該プログラム実行時に指示した上
記ソースリスト (リストA)2上の位置情報で一時停
止する手段とを備え、 該コンパイラ、又はアセンブラ1で翻訳したブログラム
(ロードモジュールA) 5を実行して、上記ソースリ
スト (ソースA) 2上の位置情報で一時停止させた
り、該ソフトウェア割込みの位置情報を表示させてデバ
ッグするように構成する。
イラ、又はアセンブラ1で翻訳した時に出力されるソー
スリスト (リストA)2を基に、該翻訳されたプログ
ラム(ロードモジュールA) 5をデバッグする方式に
おいて、 該コンパイラ、又はアセンブラ1に、該翻訳されたプロ
グラム(ロードモジュールA)5の少なくとも分岐命令
、又はサブルーチンコール命令を検出して、上記ソース
リスト (ソースA)2上の、少なくともプログラム名
、ページ、行、カラムの位置情報と、ソフトウェア割込
みを発生するルーチン(ソース5UB) 3を挿入する
手段と、デバッガに、該プログラム実行時に指示した上
記ソースリスト (リストA)2上の位置情報で一時停
止する手段とを備え、 該コンパイラ、又はアセンブラ1で翻訳したブログラム
(ロードモジュールA) 5を実行して、上記ソースリ
スト (ソースA) 2上の位置情報で一時停止させた
り、該ソフトウェア割込みの位置情報を表示させてデバ
ッグするように構成する。
即ち、本発明によれば、プログラムデバッグ方式におい
て、プログラム作成者がデバッグの為に、特別なルーチ
ンを記述していた作業と、デバッグ計算機において、目
的とするポイントで、一時停止させる為のアドレスを計
算する作業を無くする為に、コンパイラ、又はアセンブ
ラに、目的プログラム上の分岐命令、或いはサブルーチ
ンコール命令を検出して、該命令の直前に、ソースリス
ト上に表記されるソースプログラム名、ページ、行。
て、プログラム作成者がデバッグの為に、特別なルーチ
ンを記述していた作業と、デバッグ計算機において、目
的とするポイントで、一時停止させる為のアドレスを計
算する作業を無くする為に、コンパイラ、又はアセンブ
ラに、目的プログラム上の分岐命令、或いはサブルーチ
ンコール命令を検出して、該命令の直前に、ソースリス
ト上に表記されるソースプログラム名、ページ、行。
カラム等の位置情報と、ソフトウェア割込みを発生する
ルーチンを自動挿入する手段と、デバッグ計算機上のデ
バッガプログラムに、上記コンパイラ、又はアセンブラ
で盛り込んだソースリスト上の位置−を指定して、該プ
ログラムの走行を一時停止する手段と、該ソフトウェア
割込みが発生したソースリスト上の位置を表示する手段
とを備えて、プログラムのデバッグをソースリストを基
に行うようにしたものであるので、ソースリスト上の表
記位置くソースプログラム名、ページ、行、カラム)に
よるデバッグが可能となり、実行計算機上でのアドレス
計算や、ブレークポイントの設定が容易となり、デバッ
グ効率が向上する効果がある。
ルーチンを自動挿入する手段と、デバッグ計算機上のデ
バッガプログラムに、上記コンパイラ、又はアセンブラ
で盛り込んだソースリスト上の位置−を指定して、該プ
ログラムの走行を一時停止する手段と、該ソフトウェア
割込みが発生したソースリスト上の位置を表示する手段
とを備えて、プログラムのデバッグをソースリストを基
に行うようにしたものであるので、ソースリスト上の表
記位置くソースプログラム名、ページ、行、カラム)に
よるデバッグが可能となり、実行計算機上でのアドレス
計算や、ブレークポイントの設定が容易となり、デバッ
グ効率が向上する効果がある。
以下本発明の実施例を図面によって詳述する。
前述の第1図が本発明のプログラムデバッグ方式の構成
例を示した図であり、第2図は本発明のデバッグシステ
ムの構成例を模式的に示した図であり、第3図は本発明
によるデバッグ方式の流れ図であって、第1図における
、ソースSOB 3.コンパイラ、又はアセンブラ1が
本発明を実施するのに必要な手段である。尚、企図を通
して同じ符号は同じ対象物を示している。
例を示した図であり、第2図は本発明のデバッグシステ
ムの構成例を模式的に示した図であり、第3図は本発明
によるデバッグ方式の流れ図であって、第1図における
、ソースSOB 3.コンパイラ、又はアセンブラ1が
本発明を実施するのに必要な手段である。尚、企図を通
して同じ符号は同じ対象物を示している。
以下、第1図〜第3図によって、本発明のプログラムデ
バッグ方式を説明する。
バッグ方式を説明する。
先ず、第1図において、ソース(1)4はプログラム作
成者がコーディングしたソースプログラムであり、ソー
スSUB 3はソフトウェア割込み発生ルーチン(コン
パイラ、又はアセンブラ1が作り出しても良い)である
。
成者がコーディングしたソースプログラムであり、ソー
スSUB 3はソフトウェア割込み発生ルーチン(コン
パイラ、又はアセンブラ1が作り出しても良い)である
。
本発明によるコンパイラ、又はアセンブラlは、ソース
(1)4上のソースプログラム内の分岐命令や、サブル
ーチンコール命令のコードを解読して、該命令の、例え
ば、直前に、上記ソースSOB 3で用意した割込み発
生ルーチンと、該ソースプログラムをコンパイル、又は
アセンブルした時に生成されるソースリスト (リスト
A)2上の上記分岐命令や、サブルーチンコール命令の
記述位置(ソースプログラム名、ページ、行、カラム等
)とを挿入し、ソース(2)6を生成する。
(1)4上のソースプログラム内の分岐命令や、サブル
ーチンコール命令のコードを解読して、該命令の、例え
ば、直前に、上記ソースSOB 3で用意した割込み発
生ルーチンと、該ソースプログラムをコンパイル、又は
アセンブルした時に生成されるソースリスト (リスト
A)2上の上記分岐命令や、サブルーチンコール命令の
記述位置(ソースプログラム名、ページ、行、カラム等
)とを挿入し、ソース(2)6を生成する。
該生成されたソース(2)6を、従来と同じコンパイル
、又はアセンブル機能で翻訳して、ロードモジュールA
5と、リストA2を生成する。
、又はアセンブル機能で翻訳して、ロードモジュールA
5と、リストA2を生成する。
このようにして、生成されたロードモジュールA5を、
第2図に示したデバッグシステム7上で実行する。
第2図に示したデバッグシステム7上で実行する。
具体的には、該ロードモジュールA5を、当該デバッグ
システム7の主記憶装置(MS) 71上にローディン
グし、中央処理部(CPU) 72に該ロードモジュー
ルA5を実行させる。
システム7の主記憶装置(MS) 71上にローディン
グし、中央処理部(CPU) 72に該ロードモジュー
ルA5を実行させる。
このとき、本発明が実施されている場合には、コンソー
ル(CRT/KEY) 73を用いて、ソースリスト(
リストA)2上の位置情報で一時停止するコマンドを投
入し、該目的の場所で一時停止させたり、ソフトウェア
割込みが発生すると、その発生時点の位置情報の表示を
行うことができる。
ル(CRT/KEY) 73を用いて、ソースリスト(
リストA)2上の位置情報で一時停止するコマンドを投
入し、該目的の場所で一時停止させたり、ソフトウェア
割込みが発生すると、その発生時点の位置情報の表示を
行うことができる。
第3図は、上記ソフトウェア割込みが発生したときのデ
バッグプログラム(デバッガ)71の動作を流れ図で示
したものである。
バッグプログラム(デバッガ)71の動作を流れ図で示
したものである。
本図において、■はソフトウェア割込みの発生によるデ
バッガ起動事象を示し、■は操作者によるコンソール(
CRT/KEY) 73からのデバッガ起動(即ち、各
種デバッガコマンドを投入する為のデバッガ起動)事象
を示している。
バッガ起動事象を示し、■は操作者によるコンソール(
CRT/KEY) 73からのデバッガ起動(即ち、各
種デバッガコマンドを投入する為のデバッガ起動)事象
を示している。
ステップ100: デバッガ71に対する起動は、上
記の■か、■かを判定し、■の場合には、ステ・ノブ1
01に移るが、■の場合には、ステップ110に飛ぶ。
記の■か、■かを判定し、■の場合には、ステ・ノブ1
01に移るが、■の場合には、ステップ110に飛ぶ。
。
ステップ101: ロードモジュールA5上に、位置
情報表示要求が有るか否かを見て、有ればステップ10
2に移るが、無い場合には、ステップ103に飛ぶ。
情報表示要求が有るか否かを見て、有ればステップ10
2に移るが、無い場合には、ステップ103に飛ぶ。
ステップ102: ソースリスト(ソースA) 2に
対応した位置情報の表示を指示する、図示していない表
示フラグを°オン”として、ステップ121に飛ぶ。
対応した位置情報の表示を指示する、図示していない表
示フラグを°オン”として、ステップ121に飛ぶ。
ステップ103: 走行位置情報と、コンソール(C
RT/KEY) 73から指定された一時停止位置とが
同じかどうかを見て、一致であれば、ステップ122に
飛ぶが、不一致の場合には、元の実行プログラムに戻る
。
RT/KEY) 73から指定された一時停止位置とが
同じかどうかを見て、一致であれば、ステップ122に
飛ぶが、不一致の場合には、元の実行プログラムに戻る
。
ステン7’ 110 : t、9作者が、コンソール
73に表示されているコマンド投入指示(ENTER)
を見て、デバッガに対するコマンド、例えば、通常のデ
バッグコマンド、一時停止を指示するコマンド。
73に表示されているコマンド投入指示(ENTER)
を見て、デバッガに対するコマンド、例えば、通常のデ
バッグコマンド、一時停止を指示するコマンド。
或いは、ソフトウェア割込み時の位置情報の表示を指示
するコマンドと、該コマンドが必要とするデータ (ソ
ースリスト上の位置情報等)を入力する。
するコマンドと、該コマンドが必要とするデータ (ソ
ースリスト上の位置情報等)を入力する。
ステップ111: コンソール73から入力されたコ
マンドの判定を行い、該コマンドの種別に対応して、ス
テップ120〜124の何れかに分岐する。
マンドの判定を行い、該コマンドの種別に対応して、ス
テップ120〜124の何れかに分岐する。
ステップ120: コンソール73からの通常のコマ
ンド種別に対応して、アドレス停止、メモリ内容のリー
ド、ライト等、既存の各種デバッガ機能の実行を行う。
ンド種別に対応して、アドレス停止、メモリ内容のリー
ド、ライト等、既存の各種デバッガ機能の実行を行う。
ステップ121: コンソール73からのコマンド種
別が位置情報の表示コマンドであることを認識し、ステ
ップ102で付勢されているフラグを見て、8亥フラグ
が°オン゛であると、ソフトウェア割込み発生時の、ソ
ースリスト上の位置情報を表示するが、該フラグが°オ
フ”であると、位置情報の表示は行わない。
別が位置情報の表示コマンドであることを認識し、ステ
ップ102で付勢されているフラグを見て、8亥フラグ
が°オン゛であると、ソフトウェア割込み発生時の、ソ
ースリスト上の位置情報を表示するが、該フラグが°オ
フ”であると、位置情報の表示は行わない。
ステップ122: コンソール73からのコマンド種
別が一時停止コマントであることを認識し、コンソール
73から指示されているソースリスト上の位置情報と、
走行中のプログラムの位置情報とが一致した時点(ステ
ップ103実行時点)で、一時停止動作に入り、プログ
ラムの走行を一時停止させる。
別が一時停止コマントであることを認識し、コンソール
73から指示されているソースリスト上の位置情報と、
走行中のプログラムの位置情報とが一致した時点(ステ
ップ103実行時点)で、一時停止動作に入り、プログ
ラムの走行を一時停止させる。
ステップ123: コンソール73からのコマンド種
別がプログラムの続行指定であることを認識し、プログ
ラムの続行処理(リターン)に戻る。
別がプログラムの続行指定であることを認識し、プログ
ラムの続行処理(リターン)に戻る。
このように、本発明は、コンパイラ、又はアセンブラに
、ソースリスト上に表記されるソースプログラム名、ペ
ージ、行、カラム等の位置情報と。
、ソースリスト上に表記されるソースプログラム名、ペ
ージ、行、カラム等の位置情報と。
ソフトウェア割込みを発生させるルーチンを、該ソース
プログラム上の分岐命令、或いはサブルーチンコール命
令の、例えば、直前に挿入する手段を設け、該プログラ
ムをハードウェア上で走行させたとき、該分岐命令、或
いはサブルーチンコール命令を実行する直前にソフトウ
ェア割込みが発生し、デバッガが起動されることにより
、操作者がコンソールから投入するコマンドに従って、
該ソースリスト上の該ソフトウェア割込みの発生した位
置情報を表示したり、該位置情報のプログラムを実行し
た時点で、プログラムの走行を停止させるようにして、
ソースリストによるプログラムデバッグができるように
した所に特徴がある。
プログラム上の分岐命令、或いはサブルーチンコール命
令の、例えば、直前に挿入する手段を設け、該プログラ
ムをハードウェア上で走行させたとき、該分岐命令、或
いはサブルーチンコール命令を実行する直前にソフトウ
ェア割込みが発生し、デバッガが起動されることにより
、操作者がコンソールから投入するコマンドに従って、
該ソースリスト上の該ソフトウェア割込みの発生した位
置情報を表示したり、該位置情報のプログラムを実行し
た時点で、プログラムの走行を停止させるようにして、
ソースリストによるプログラムデバッグができるように
した所に特徴がある。
尚、上記実施例においては、ステップ100〜103の
処理を、デバッガでの処理として説明したが、これに限
定されるものではな(、例えば、ソースプログラム実行
中に発生するソフトウェア割込みルーチンの中に組み込
むようにしても良いことは云う迄もないことである。
処理を、デバッガでの処理として説明したが、これに限
定されるものではな(、例えば、ソースプログラム実行
中に発生するソフトウェア割込みルーチンの中に組み込
むようにしても良いことは云う迄もないことである。
以上、詳細に説明したように、本発明のプログラムデバ
ッグ方式は、プログラムデバッグ方式において、プログ
ラム作成者がデバッグの為に、特別なルーチンを記述し
ていた作業と、デバッグ計算機において、目的とするポ
イントで、一時停止させる為のアドレスを計算する作業
を無くする為に、コンパイラ、又はアセンブラに、目的
プログラム上の分岐命令、或いはサブルーチンコール命
令を検出して、該命令の直前に、ソースリスト上に表記
されるソースプログラム名、ページ、行。
ッグ方式は、プログラムデバッグ方式において、プログ
ラム作成者がデバッグの為に、特別なルーチンを記述し
ていた作業と、デバッグ計算機において、目的とするポ
イントで、一時停止させる為のアドレスを計算する作業
を無くする為に、コンパイラ、又はアセンブラに、目的
プログラム上の分岐命令、或いはサブルーチンコール命
令を検出して、該命令の直前に、ソースリスト上に表記
されるソースプログラム名、ページ、行。
カラム等の位置情報と、ソフトウェア割込みを発生する
ルーチンを自動挿入する手段と、デバッグ計算機上のデ
バッガプログラムに、上記コンパイラ、又はアセンブラ
で盛り込んだソースリスト上の位置を指定して、該プロ
グラムの走行を一時停止する手段と、該ソフトウェア割
込みが発生したソースリスト上の位置を表示する手段と
を備えて、プログラムのデバッグをソースリストを基に
行うようにしたものであるので、ソースリスト上の表記
位置(ソースプログラム名、ページ、行、カラム)によ
るデバッグが可能となり、実行計算機上でのアドレス計
算や、ブレークポイントの設定が容易となり、デバッグ
効率が向上する効果がある。
ルーチンを自動挿入する手段と、デバッグ計算機上のデ
バッガプログラムに、上記コンパイラ、又はアセンブラ
で盛り込んだソースリスト上の位置を指定して、該プロ
グラムの走行を一時停止する手段と、該ソフトウェア割
込みが発生したソースリスト上の位置を表示する手段と
を備えて、プログラムのデバッグをソースリストを基に
行うようにしたものであるので、ソースリスト上の表記
位置(ソースプログラム名、ページ、行、カラム)によ
るデバッグが可能となり、実行計算機上でのアドレス計
算や、ブレークポイントの設定が容易となり、デバッグ
効率が向上する効果がある。
第1図は本発明のプログラムデバッグ方式の構成例を示
した図。 第2図は本発明のデバッグシステムの構成例を模式的に
示した図。 第3図は本発明によるデバッグ方式の流れ図。 第4図は従来のプログラムデバッグ方式を説明する図。 である。 図面において、 1.1°はコンパイラ、又はアセンブラ。 2はソースA、又はソースリスト。 2”とソースリスト、 3はソースSOB。 4はソース(1)、 5はロードモジュールA
。 51はロードモジュール、6はソース(2)。 71は主記憶装置(MS) 。 72は中央処理部(CPU)、 73はコンソール(
CRT/KEY) 。 100〜103,110.111,120〜123は処
理ステップ。 ■、■はデバッガ起動事象。
した図。 第2図は本発明のデバッグシステムの構成例を模式的に
示した図。 第3図は本発明によるデバッグ方式の流れ図。 第4図は従来のプログラムデバッグ方式を説明する図。 である。 図面において、 1.1°はコンパイラ、又はアセンブラ。 2はソースA、又はソースリスト。 2”とソースリスト、 3はソースSOB。 4はソース(1)、 5はロードモジュールA
。 51はロードモジュール、6はソース(2)。 71は主記憶装置(MS) 。 72は中央処理部(CPU)、 73はコンソール(
CRT/KEY) 。 100〜103,110.111,120〜123は処
理ステップ。 ■、■はデバッガ起動事象。
Claims (2)
- (1)高級言語で記述されたソースプログラムをコンパ
イラ、又はアセンブラ(1)で翻訳した時に出力される
ソースリスト(2)を基に、該翻訳されたプログラム(
5)をデバッグする方式において、該コンパイラ、又は
アセンブラ(1)に、該翻訳されたプログラム(5)の
少なくとも分岐命令、又はサブルーチンコール命令を検
出して、上記ソースリスト(2)上の、少なくともプロ
グラム名、ページ、行、カラムの位置情報と、ソフトウ
ェア割込みを発生するルーチン(3)を挿入する手段と
、該プログラム実行時に指示した上記位置情報で一時停
止することを判定する手段と、 を備え、 該コンパイラ、又はアセンブラ(1)で翻訳したプログ
ラム(5)を実行して、上記ソースリスト(2)上の位
置情報で一時停止させたり、該ソフトウェア割込みの位
置情報を表示させてデバッグすることを特徴とするプロ
グラムデバッグ方式。 - (2)高級言語で記述されたソースプログラムをコンパ
イラ、又はアセンブラ(1)で翻訳した時に出力される
ソースリスト(2)を基に、該翻訳されたプログラム(
5)をデバッグする方式において、該コンパイラ、又は
アセンブラ(1)に、該翻訳されたプログラム(5)の
少なくとも分岐命令、又はサブルーチンコール命令を検
出して、上記ソースリスト上の、少なくともプログラム
名、ページ、行、カラムの位置情報と、ソフトウェア割
込みを発生するルーチン(3)を挿入する手段と、デバ
ッガに、該プログラム実行時に指示した上記ソースリス
ト(2)上の位置情報で一時停止する手段とを備え、 該コンパイラ、又はアセンブラ(1)で翻訳したプログ
ラムを実行して、上記ソースリスト(2)上の位置情報
で一時停止させたり、該ソフトウェア割込みの位置情報
を表示させてデバッグすることを特徴とするプログラム
デバッグ方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62010395A JPS63178341A (ja) | 1987-01-20 | 1987-01-20 | プログラムデバツグ方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP62010395A JPS63178341A (ja) | 1987-01-20 | 1987-01-20 | プログラムデバツグ方式 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63178341A true JPS63178341A (ja) | 1988-07-22 |
Family
ID=11748936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP62010395A Pending JPS63178341A (ja) | 1987-01-20 | 1987-01-20 | プログラムデバツグ方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63178341A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03188537A (ja) * | 1989-12-18 | 1991-08-16 | Fujitsu Ltd | 命令が共用される文の中断通知装置 |
JPH04263339A (ja) * | 1991-02-18 | 1992-09-18 | Fujitsu Ltd | 中断位置検索方式 |
-
1987
- 1987-01-20 JP JP62010395A patent/JPS63178341A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03188537A (ja) * | 1989-12-18 | 1991-08-16 | Fujitsu Ltd | 命令が共用される文の中断通知装置 |
JPH04263339A (ja) * | 1991-02-18 | 1992-09-18 | Fujitsu Ltd | 中断位置検索方式 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7761855B2 (en) | Computer program product and system for altering execution flow of a computer program | |
US5313387A (en) | Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers | |
US5325531A (en) | Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines | |
US5182806A (en) | Incremental compiler for source-code development system | |
EP0785510B1 (en) | Program debugging system for debugging a program having a graphical user interface | |
US6003143A (en) | Tool and method for diagnosing and correcting errors in a computer program | |
US5170465A (en) | Incremental-scanning compiler for source-code development system | |
US5193191A (en) | Incremental linking in source-code development system | |
US5201050A (en) | Line-skip compiler for source-code development system | |
US6016474A (en) | Tool and method for diagnosing and correcting errors in a computer program | |
US20120317551A1 (en) | Post-compile instrumentation of object code for generating execution trace data | |
US5301327A (en) | Virtual memory management for source-code development system | |
EP0406028A2 (en) | Incremental compiler for source code development system | |
JPS63178341A (ja) | プログラムデバツグ方式 | |
JPH0766342B2 (ja) | プログラムテスト装置 | |
JP2659366B2 (ja) | デバッグ方法及びその装置 | |
JP2672968B2 (ja) | デバッグ用ソースリスト出力処理方式 | |
JPS6292034A (ja) | プログラムデバツグ装置 | |
JPH05250221A (ja) | シミュレータ実行方式 | |
JPH09146776A (ja) | オブジェクト生成方法、及びデバッグ方法 | |
JPS6292032A (ja) | プログラムテスト方法 | |
JPH05108404A (ja) | デバツガシステム | |
Impson | The Perl Debugger | |
JPH06242943A (ja) | ソースコードレベルデバッグ装置 | |
JPH03189737A (ja) | プログラム開発装置 |