JPS61213935A - 高級言語プログラムのデバック装置及びそのステップ方式 - Google Patents
高級言語プログラムのデバック装置及びそのステップ方式Info
- Publication number
- JPS61213935A JPS61213935A JP60054049A JP5404985A JPS61213935A JP S61213935 A JPS61213935 A JP S61213935A JP 60054049 A JP60054049 A JP 60054049A JP 5404985 A JP5404985 A JP 5404985A JP S61213935 A JPS61213935 A JP S61213935A
- Authority
- JP
- Japan
- Prior art keywords
- line number
- program
- level
- language
- machine language
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
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)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〈発明の分野〉
この発明は計算機システムのデバッグ技術に関し、特に
、プログラムの高級言語レベルでのステップ実行方式に
関する。
、プログラムの高級言語レベルでのステップ実行方式に
関する。
〈発明の概要〉
高級言語で記述された原始プログラムを機械語プログラ
ムに翻訳(コンパイル)して実行する計算機システムに
おいて、上記プログラムの原始言語レベルの用語と機械
語レベルの用語との対応関係を示す変換テーブルを作成
しておき、デバッグ・テスト時にこの変換テーブルを用
いることにより、原始言語レベルの行番号によるデバッ
グ・テスト指示を受けて、それを機械語レベルのアドレ
スに変換してトラッピングを行ない、プログラムを原始
言語レベルでステップ実行させる。
ムに翻訳(コンパイル)して実行する計算機システムに
おいて、上記プログラムの原始言語レベルの用語と機械
語レベルの用語との対応関係を示す変換テーブルを作成
しておき、デバッグ・テスト時にこの変換テーブルを用
いることにより、原始言語レベルの行番号によるデバッ
グ・テスト指示を受けて、それを機械語レベルのアドレ
スに変換してトラッピングを行ない、プログラムを原始
言語レベルでステップ実行させる。
〈発明の背景〉
高級言語で記述されたプログラムはコンパイラにより予
め機械語プログラムに翻訳され、計算機で実行される。
め機械語プログラムに翻訳され、計算機で実行される。
周知のように、高級言語の1実行分は多くの場合、複数
個の機械暗に翻訳される。
個の機械暗に翻訳される。
計算機システムのデバッグを行なう上で、プログラム実
行動作を原始プログラムの高級言語レベルの1実行文ご
とに停止させ、プログラム内の各変数の変化を調べる、
といったステップ実行による動作チェックが重要な操作
である。
行動作を原始プログラムの高級言語レベルの1実行文ご
とに停止させ、プログラム内の各変数の変化を調べる、
といったステップ実行による動作チェックが重要な操作
である。
ところが従来のデバッグ装置におけるステップ実行方式
は機械暗レベルであって、1機械語ごとに割込みが発生
して停止する。したがって、目的とする高級言語レベル
の1実行文のステップ実行を制御するために1機械語レ
ベルのステップ実行を何回も繰返さなければならない。
は機械暗レベルであって、1機械語ごとに割込みが発生
して停止する。したがって、目的とする高級言語レベル
の1実行文のステップ実行を制御するために1機械語レ
ベルのステップ実行を何回も繰返さなければならない。
そのために余分な処理時間を消費し、このことがデバッ
グの能率向上を阻害していた。
グの能率向上を阻害していた。
〈発明の目的〉
この発明の目的は、高級言語レベルでのステップ実行を
直接的に効率よく行なえるようにすることにある。
直接的に効率よく行なえるようにすることにある。
〈発明の構成と効果〉
上記の目的を達成するために、この発明に係るステップ
実行方式は、高級言語で記述された原始プログラムを計
算機の機械暗に翻訳し、当該計算様の主記憶上での動作
に適した形に連係編集して当該計算機の記憶装置に格納
する手段と、この翻訳に伴って上記プログラムの原始速
鎖レベルの用語と機械暗レベルの用語との対応関係を示
す変換テーブルを作成して尚該計算壁の記憶装置に格納
する手段と、プログラムのデバッグ・テストを行なうた
めのデバッグ機能部と、このデバッグ機能部に伝達され
た原始言語レベルの行番号によるデバッグ・テスト指示
を受け、上記変換テーブルを用いて上記行番号に対応し
た機械語レベルのアドレスを求める手段と、その求めて
アドレス上の元の機械語を保存してから、そのアドレス
にトラップを設定する手段と、設定されたトラップを解
除し、保存しておいた上記機械語を復旧する手段と、デ
バッグ・テスト中のプログラムの進行を把握し、 j
− 現状の行番号から次に実行すべき行番号を取出す手段と
を備えたことを特徴とする。
実行方式は、高級言語で記述された原始プログラムを計
算機の機械暗に翻訳し、当該計算様の主記憶上での動作
に適した形に連係編集して当該計算機の記憶装置に格納
する手段と、この翻訳に伴って上記プログラムの原始速
鎖レベルの用語と機械暗レベルの用語との対応関係を示
す変換テーブルを作成して尚該計算壁の記憶装置に格納
する手段と、プログラムのデバッグ・テストを行なうた
めのデバッグ機能部と、このデバッグ機能部に伝達され
た原始言語レベルの行番号によるデバッグ・テスト指示
を受け、上記変換テーブルを用いて上記行番号に対応し
た機械語レベルのアドレスを求める手段と、その求めて
アドレス上の元の機械語を保存してから、そのアドレス
にトラップを設定する手段と、設定されたトラップを解
除し、保存しておいた上記機械語を復旧する手段と、デ
バッグ・テスト中のプログラムの進行を把握し、 j
− 現状の行番号から次に実行すべき行番号を取出す手段と
を備えたことを特徴とする。
このステップ実行方式によれば、高級言語レベルの行番
号を指示して、原始プログラムの1実行文ごとのステッ
プ実行を直接的に効率よく行なうことができ、デバッグ
の能率向上に大いに寄与する。
号を指示して、原始プログラムの1実行文ごとのステッ
プ実行を直接的に効率よく行なうことができ、デバッグ
の能率向上に大いに寄与する。
〈実施例〉
第1図はこの発明の一実施例を示すフローチャートであ
る。翻訳ステップ(A)では、高級言語で記述された原
始プログラム51(全体は7〜8個で構成される)を翻
訳プログラム52で処理し、翻訳単位でとの機械語プロ
グラム53を得る。従来と異なり、この機械語プラグラ
ム53に付帯して、原始プログラム51の行番号情報5
3aおよび変数/関数情報53bが出力される。
る。翻訳ステップ(A)では、高級言語で記述された原
始プログラム51(全体は7〜8個で構成される)を翻
訳プログラム52で処理し、翻訳単位でとの機械語プロ
グラム53を得る。従来と異なり、この機械語プラグラ
ム53に付帯して、原始プログラム51の行番号情報5
3aおよび変数/関数情報53bが出力される。
次のステップ(ハ)では、翻訳単位ごとの機械語プログ
ラム53の全体を連係編集プログラム54で処理し、実
行単位としてまとまった機械語プログラム55を得る。
ラム53の全体を連係編集プログラム54で処理し、実
行単位としてまとまった機械語プログラム55を得る。
この機械語プログラム55が計= 4−
算機の主記憶上で実行される形のもので、当該計算機の
記憶装置に格納される。第2図に示すように、高級言語
による原始プログラム51が機械語プログラム55に翻
訳されると、原始プラグラム51の1実行文は複数個の
機械語命令になる。
記憶装置に格納される。第2図に示すように、高級言語
による原始プログラム51が機械語プログラム55に翻
訳されると、原始プラグラム51の1実行文は複数個の
機械語命令になる。
実行単位にまとまった機械語プログラム55を得る際に
、上述の翻訳単位ごとの行番号情報53aと変数/関数
情報53bもプログラム55の付帯情報55a 、 5
5bとしてまとめられる。
、上述の翻訳単位ごとの行番号情報53aと変数/関数
情報53bもプログラム55の付帯情報55a 、 5
5bとしてまとめられる。
次にデバッグ・テストステップについて説明する。第1
図の56は機械語プログラム55がプログラマの所望の
機能、性能を発揮するか否かを確認するプログラムで、
一般にデパック・テストツールと称されている。57は
デバッグ・テストツール56に対して与えるデバッグ・
テスト指示であり、58は機械言語プログラム55およ
びデ□バッグ・テストツール56からのデバッグ・テス
ト結果の情報である。
図の56は機械語プログラム55がプログラマの所望の
機能、性能を発揮するか否かを確認するプログラムで、
一般にデパック・テストツールと称されている。57は
デバッグ・テストツール56に対して与えるデバッグ・
テスト指示であり、58は機械言語プログラム55およ
びデ□バッグ・テストツール56からのデバッグ・テス
ト結果の情報である。
デバッグ・テストツール56が作動し、機械暗プログラ
ム55がデバッグ・テストされるために主記憶上に取出
されると、まず、機械語プログラム55に付帯した行番
号情報55aと変数/関数情報55bに基づいて、第3
図に示す行番号テーブル100と変数/関数テーブル2
00が主記憶上に作成される。
ム55がデバッグ・テストされるために主記憶上に取出
されると、まず、機械語プログラム55に付帯した行番
号情報55aと変数/関数情報55bに基づいて、第3
図に示す行番号テーブル100と変数/関数テーブル2
00が主記憶上に作成される。
行番号テーブル100には、原始プログラム51の行番
号15と、行番号15に対応した機械語プログラム55
のアドレス16と、次に実行する実行文の行番号17と
、機械語保存エリア18とが1つのまとまりとして、通
常はプログラムの関数単位に整頓され、記憶される。
号15と、行番号15に対応した機械語プログラム55
のアドレス16と、次に実行する実行文の行番号17と
、機械語保存エリア18とが1つのまとまりとして、通
常はプログラムの関数単位に整頓され、記憶される。
変数/関数テーブル200には、関数名19と、す
関数のエンドデアドレスや変数の所在を示すアドレス2
0と、関数の戻り値の型や変数の型2工と、変数のサイ
ズ22と、変数名23などが含まれる。
0と、関数の戻り値の型や変数の型2工と、変数のサイ
ズ22と、変数名23などが含まれる。
才た行番号テーブル100のポインター4は、変数/関
数テーブル200の関数茗19と関連をとるための情報
である。このポインター4によって、行番号テーブル1
00と変数/関数テーブル200とが関連づけられてい
る。この関連があることで、数に含まれているかを知る
ことができる。
数テーブル200の関数茗19と関連をとるための情報
である。このポインター4によって、行番号テーブル1
00と変数/関数テーブル200とが関連づけられてい
る。この関連があることで、数に含まれているかを知る
ことができる。
上記の両テーブル100 、200の作成が終了してか
ら、デバッグ・テストツール56に対して、尚級官語レ
ベルのステップ実行の指示が発せられる。
ら、デバッグ・テストツール56に対して、尚級官語レ
ベルのステップ実行の指示が発せられる。
このステップ実行の指示を受けて、デバッグ・テストツ
ール56は、現在のプログラムカウンタの値と行番号テ
ーブル100のアドレス16とを比較し、停止位置の行
番号15を求める。求めた行番号15から次に実行する
行番号17を取出す。
ール56は、現在のプログラムカウンタの値と行番号テ
ーブル100のアドレス16とを比較し、停止位置の行
番号15を求める。求めた行番号15から次に実行する
行番号17を取出す。
さらに、次に実行する行番号17に対応するアドレスを
求め、主記憶上のアドレスに割込みを発生するためのト
ラップ命÷をセットする。ただし、トラップ命令をセッ
トする前に、そのアドレスにあったもとの機械語命令を
テーブル100の機械語保存エリア18に保存しておく
。
求め、主記憶上のアドレスに割込みを発生するためのト
ラップ命÷をセットする。ただし、トラップ命令をセッ
トする前に、そのアドレスにあったもとの機械語命令を
テーブル100の機械語保存エリア18に保存しておく
。
その後デバッグ・テストツール56は機械語プログラム
55を実行させる。機械語プログラムはセットされた上
記トラップ命命に出合う才で実時間で実行される。トラ
ップ命令に出合うと、トラップ命令と入れ変えに保存エ
リア18に退避しておいて機械語命令を主記憶上のもと
のアドレスに戻す。そしてステップ実行′の完了をデバ
ッグ・テスト結果58として報告する。
55を実行させる。機械語プログラムはセットされた上
記トラップ命命に出合う才で実時間で実行される。トラ
ップ命令に出合うと、トラップ命令と入れ変えに保存エ
リア18に退避しておいて機械語命令を主記憶上のもと
のアドレスに戻す。そしてステップ実行′の完了をデバ
ッグ・テスト結果58として報告する。
上記の説明で明かなように、複数個の機械語命令ごとに
停止させることなく、高級言語の1実行文だけをステッ
プ実行させることができる。上記の処理を順次繰返すこ
とによって、実行時のメモリ容量の増加をきたすことな
く、直接的で高速な高級言語レベルのステップ実行を実
現することができる。
停止させることなく、高級言語の1実行文だけをステッ
プ実行させることができる。上記の処理を順次繰返すこ
とによって、実行時のメモリ容量の増加をきたすことな
く、直接的で高速な高級言語レベルのステップ実行を実
現することができる。
第1図は本発明を適用したデバッグ・テスト作業の流れ
を示すフローチャート、第2図は高級言語プログラムと
機械語プログラムの対応関係を示す図、第3図は本発明
のステップ実行のために作成される行番号テーブルと変
数/関数テーブルを示す図である。 100・・・行番号テーブル、200・・・変数/関数
テーブル、56・・・デバッグ−テストツール。 第1図 第2図 第3図
を示すフローチャート、第2図は高級言語プログラムと
機械語プログラムの対応関係を示す図、第3図は本発明
のステップ実行のために作成される行番号テーブルと変
数/関数テーブルを示す図である。 100・・・行番号テーブル、200・・・変数/関数
テーブル、56・・・デバッグ−テストツール。 第1図 第2図 第3図
Claims (1)
- (1)高級言語で記述された原始プログラムを計算機の
機械語に翻訳し、当該計算機の主記憶上での動作に適し
た形に連係編集して当該計算機の記憶装置に格納する手
段と、この翻訳に伴つて上記プログラムの原始原語レベ
ルの用語と機械語レベルの用語との対応関係を示す変換
テーブルを作成して当該計算機の記憶装置に格納する手
段と、プログラムのデバッグ・テストを行なうためのデ
バッグ機能部と、このデバッグ機能部に伝達された原始
言語レベルの行番号によるデバッグ・テスト指示を受け
、上記変換テーブルを用いて上記行番号に対応した機械
語レベルのアドレスを求める手段と、その求めてアドレ
ス上の元の機械語を保存してから、そのアドレスにトラ
ップを設定する手段と、設定されたトラップを解除し、
保存しておいた上記機械語を復旧する手段と、デバッグ
・テスト中のプログラムの進行を把握し、現状の行番号
から次に実行すべき行番号を取出す手段とを備えた高級
言語プログラムのステップ実行方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60054049A JPS61213935A (ja) | 1985-03-18 | 1985-03-18 | 高級言語プログラムのデバック装置及びそのステップ方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP60054049A JPS61213935A (ja) | 1985-03-18 | 1985-03-18 | 高級言語プログラムのデバック装置及びそのステップ方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS61213935A true JPS61213935A (ja) | 1986-09-22 |
| JPH0510692B2 JPH0510692B2 (ja) | 1993-02-10 |
Family
ID=12959750
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60054049A Granted JPS61213935A (ja) | 1985-03-18 | 1985-03-18 | 高級言語プログラムのデバック装置及びそのステップ方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPS61213935A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63223928A (ja) * | 1987-03-13 | 1988-09-19 | Fujitsu Ltd | 論理図デバツグ処理方式 |
| JPS63223931A (ja) * | 1987-03-13 | 1988-09-19 | Fujitsu Ltd | 論理図実行ル−ト出力処理方式 |
| JPH0734178B2 (ja) * | 1991-03-07 | 1995-04-12 | ディジタル イクイプメント コーポレイション | 変換コードを実行するための効果的エラー報告 |
| JP2013025559A (ja) * | 2011-07-21 | 2013-02-04 | Mitsubishi Electric Corp | プログラムトレース管理装置及びプログラムトレース管理方法及びプログラム |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5723154A (en) * | 1980-07-17 | 1982-02-06 | Mitsubishi Electric Corp | Test debugging device for program |
| JPS57100544A (en) * | 1980-12-15 | 1982-06-22 | Mitsubishi Electric Corp | Debug device |
-
1985
- 1985-03-18 JP JP60054049A patent/JPS61213935A/ja active Granted
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5723154A (en) * | 1980-07-17 | 1982-02-06 | Mitsubishi Electric Corp | Test debugging device for program |
| JPS57100544A (en) * | 1980-12-15 | 1982-06-22 | Mitsubishi Electric Corp | Debug device |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63223928A (ja) * | 1987-03-13 | 1988-09-19 | Fujitsu Ltd | 論理図デバツグ処理方式 |
| JPS63223931A (ja) * | 1987-03-13 | 1988-09-19 | Fujitsu Ltd | 論理図実行ル−ト出力処理方式 |
| JPH0734178B2 (ja) * | 1991-03-07 | 1995-04-12 | ディジタル イクイプメント コーポレイション | 変換コードを実行するための効果的エラー報告 |
| JP2013025559A (ja) * | 2011-07-21 | 2013-02-04 | Mitsubishi Electric Corp | プログラムトレース管理装置及びプログラムトレース管理方法及びプログラム |
Also Published As
| Publication number | Publication date |
|---|---|
| JPH0510692B2 (ja) | 1993-02-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6219832B1 (en) | System and method of using annotations to optimize dynamically translated code in the presence of signals | |
| US7725883B1 (en) | Program interpreter | |
| US8448152B2 (en) | High-level language, architecture-independent probe program compiler | |
| CN111709031A (zh) | 一种覆盖率引导的VxWorks内核模糊测试方法 | |
| US6467082B1 (en) | Methods and apparatus for simulating external linkage points and control transfers in source translation systems | |
| US20040054991A1 (en) | Debugging tool and method for tracking code execution paths | |
| JPH10111818A (ja) | バーストプロファイリング方法およびシステム | |
| JPH10301807A (ja) | コンピュータソフトウェアの評価のための高速トラップ | |
| US6330714B1 (en) | Method and computer program product for implementing redundant lock avoidance | |
| CN114281709A (zh) | 一种单元测试方法、系统、电子设备及存储介质 | |
| JPS61213935A (ja) | 高級言語プログラムのデバック装置及びそのステップ方式 | |
| US12072789B2 (en) | Resumable instruction generation | |
| Berglund et al. | Method summaries for JPF | |
| CN120386709A (zh) | 一种数据代码调试方法及终端 | |
| JP2842571B2 (ja) | 手続き呼出し方法 | |
| JPS6331811B2 (ja) | ||
| JPH05204705A (ja) | 未定義変数検出処理方法 | |
| JPH08320813A (ja) | プログラムシミュレータ装置及びプログラムデバッグ方法 | |
| JPH0695890A (ja) | コンパイラにおける名前置換方式 | |
| Majzik | Software monitoring and debugging using compressed signature sequences | |
| JP2697230B2 (ja) | デバッグ支援装置 | |
| JPS6365542A (ja) | デバツグ方式 | |
| JPH06274351A (ja) | コンパイラの最適化方式 | |
| Malone | Implementation of a retrospective tracing facility | |
| JPH10207738A (ja) | 言語処理システム |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| EXPY | Cancellation because of completion of term |