JP3019330B2 - コンパイル装置 - Google Patents

コンパイル装置

Info

Publication number
JP3019330B2
JP3019330B2 JP1213503A JP21350389A JP3019330B2 JP 3019330 B2 JP3019330 B2 JP 3019330B2 JP 1213503 A JP1213503 A JP 1213503A JP 21350389 A JP21350389 A JP 21350389A JP 3019330 B2 JP3019330 B2 JP 3019330B2
Authority
JP
Japan
Prior art keywords
program
mode
execution
time
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.)
Expired - Fee Related
Application number
JP1213503A
Other languages
English (en)
Other versions
JPH0377140A (ja
Inventor
浩子 飯田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP1213503A priority Critical patent/JP3019330B2/ja
Publication of JPH0377140A publication Critical patent/JPH0377140A/ja
Application granted granted Critical
Publication of JP3019330B2 publication Critical patent/JP3019330B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Devices For Executing Special Programs (AREA)

Description

【発明の詳細な説明】 〔概 要〕 原始プログラムをコンパイルし目的プログラムを生成
するコンパイル装置に関し、実行時に動作モードを動的
に切り換えるときにも、各プログラム毎にコンパイル時
に指定した動作モードを優先し、コンパイル時に特に指
定しなかったプログラムについては実行時の指定動作モ
ードとするプログラムを生成するコンパイル装置を目的
とし、実行時に他のプログラムから制御を受け取る当該
プログラムの入口点に、コンパイル時に指定された動作
モードを設定するプログラムを挿入する手段と、実行時
に他のプログラムに制御を移す当該プログラムの出口点
に、実行時に指定された動作モードを設定するプログラ
ムを挿入する手段とを備えるように構成する。
〔産業上の利用分野〕
本発明は、実行時に動作モードを動的に切り換えると
きにも、各プログラム毎にコンパイル時に指定した動作
モードを優先し、コンパイル時に特に指定しなかったプ
ログラムについては実行時の指定動作モードとするプロ
グラムを生成するコンパイル装置に関する。
〔従来の技術と発明が解決しようとする課題〕
計算機のプログラム開発における、プログラムのいわ
ゆるデバッグに際し、当該プログラムを実行させて実行
結果をチェックする実行デバッグが行われるが、その際
計算機が高度の並行処理機能を有する場合に、デバッグ
中はその機能を抑止してシーケンシャルに実行を進める
こと等が必要な場合がある。
そのために、そのような高速化機能を持つ計算機に
は、必要な機能を抑止する機能が設けられ、例えば実行
モードとしてデバッグモードと非デバッグモードを設
け、実行モードを設定することによって、非デバッグモ
ードでは高速化機能を生かして高速にプログラムを実行
するが、デバッグモードに設定されたときは、高速化機
能を抑止するようにし、それらのモード設定は例えば一
定の制御レジスタに設けるモードビットのリセットによ
って切り換えるようにされる。
FORTRAN等のプログラミング言語で記述されたプログ
ラムのデバッグにおいて、前記の実行モードを利用でき
るようにするために、そのようなプログミング言語で記
述された原始プログラムを処理するコンパイラには、い
わゆるコンパイルオプションとして、翻訳処理要求時に
実行モード指定ができるようにし、その指定があった場
合にコンパイラは、翻訳して生成する目的プログラム
に、指定された実行モードで実行するための処理を行う
プログラムを挿入するようになっている。
第3図(a)は、このようにして実行モード切換処理
が挿入されたプログラムを、説明のために原始プログラ
ムのイメージで示す図であり、図において「MODE=NOAD
VANCED」により、その位置に挿入されるプログラムによ
って所定の制御レジスタのモードビットを非デバッグモ
ード(ADVANCEDモード)からデバッグモード(NOADVANC
EDモード)に設定することを示すものとする。なお、プ
ログラムの実行開始時はシステムの管理プログラムによ
って非デバッグモードに設定される。
この構成により、開発中のサブルーチンSUB1プログラ
ムがMAINプログラムから呼ばれて実行開始すると、実行
モードがデバッグモードに設定され、SUB1プログラムが
デバッグモードで実行されることになる。その結果、そ
の後にSUB1プログラムから呼ばれるサブルーチンSUB2プ
ログラムもデバッグモードで実行されるが、そのために
例えばサブルーチンSUB2が既存のデバッグ済のサブルー
チンであり、従ってSUB2については高速の非デバッグモ
ードで実行させたいというような場合等にも、サブルー
チンSUB1以後に実行するプログラムをすべてデバッグモ
ードで実行させざるを得ないという問題がある。
本発明は、複数の動作モードがある実行環境でコンパ
イル時に指定した動作モードはそのプログラムのみに有
効な指定となり、呼び出される他のプログラムの動作モ
ードはコンパイル時に特に指定されていなければ実行時
に指定された動作モードで動作するようにすることを目
的とする。
〔課題を解決するための手段〕
第1図は、本発明の構成を示すブロック図である。
実行時にはプログラムは実際には不図示の他のプログ
ラムとの間に呼び出し関係を持った状態で実行されるも
のであり、図には、一つのプログラムについて動作モー
ドの切り換える場合を示しているが他の各プログラムの
動作モードの切り換えも同様である。
コンパイラ1が原始プログラム2から目的プログラム
5を生成するときに、コンパイラ1が各原始プログラム
2毎に指定された動作モードすなわち実行モード指定6
に基いて上記目的プログラム5に動作モード切換の処理
ステップ(第1のプログラム3、第2のプログラム4)
を挿入し、実行時には実行モード7は上記プログラムに
挿入された処理ステップ(第1のプログラム3、第2の
プログラム4)により、第1のプログラム3が他のプロ
グラムからの制御の入口点でコンパイル時に指定された
動作モード6に切り換え、第2のプログラム4が他プロ
グラムへの制御の出口点で実行時に指定された動作モー
ド8に切り換えるようになっている。
〔作 用〕
前記のようなコンパイル装置により、コンパイル時と
実行時の動作モード指定の組み合わせにより、コンパイ
ル時に特に動作モードの指定がないプログラムについて
は実行時の指定により動作モードが決まり、コンパイル
時に動作モードの指定があったプログラムはその指定に
従った動作モードで実行させるので、例えば、デバッグ
モードと非デバッグモードの2つのモードがあった時に
は新規にデバッグしたいプログラムについてのみデバッ
グモードで実行し、これを呼び出すプログラム、これに
呼び出されるプログラムについては非デバッグモードで
実行することができ、効率よくデバッグを行なうことが
できる。
〔実施例〕
第2図は第1図のコンパイラ1によって、実行モード
制御のためのプログラムを挿入する処理の流れの一例を
示し、処理ステップ10でコンパイルオプションにデバッ
グモードを指定する実行モード指定の「MODE=NOADVANC
ED」があるか識別し、指定があれば処理ステップ11で目
的プログラムの実行命令文の先頭にデバッグモードを設
定するプログラム(第1図における第1のプログラム
3)を挿入する。
次に処理ステップ12でこの翻訳対象のプログラムにサ
ブルーチン呼出及び関数呼場等の他のプログラムの呼出
及び呼出元への復帰命令文があるか走査し、呼出及び復
帰命令文がある場合には、処理ステップ13でそれらの各
命令文の直前に実行モードを実行時モード指定に従って
設定するプログラム(第1図における第2のプログラム
4)を挿入する。又それらの呼出文の直後、即ち呼出先
からの復帰時には、元のデバッグモードに戻すプログラ
ムを置く。
こゝで第1のプログラム3であるデバッグモード設定
のプログラムは、所定の制御レジスタにデバッグモード
を示す定数をセットするように構成したプログラムであ
る。又、第2のプログラム4である実行時モード指定設
定のプログラムは、その制御レジスタに例えば一定の制
御情報記憶領域に設定されている内容をセットするプロ
グラムとする。その制御情報記憶領域の内容は、プログ
ラムの実行開始時に例えばシステムの管理プログラムが
実行時モード指定を識別して指定の非デバッグ又はデバ
ッグモードを示す内容に設定しておくものとする。
第3図(b)は以上の処理の結果生成されるプログラ
ムの構成を説明する図であり、前記第3図(a)と同じ
プログラムについて、サブルーチンSUB1をデバッグする
ために、SUB1をコンパイルオプション「MODE=NOADVANC
ED」でコンパイルした場合を示し、「MODE=P」が実行
時モード指定によって実行モードを設定するプログラム
の挿入位置を示す。
このプログラムの実行時に、実行時モード指定「MODE
=ADVANCED」が指定されたとすると、図から明らかなよ
うに、MAINからSUB1が呼ばれたとき、最初の「MODE=NO
ADOVANCED」でデバッグモードが設定されて実行を開始
するが、「CALL SUB2」の前の「MODE=P」の実行で、
実行時モード指定の非デバッグモードに切り換えられる
ので、呼び出されるSUB2は非デバッグモードで高速に実
行されることになる。
次にSUB2からSUB1へ復帰したときは、CALL命令文直後
のモード設定によって、デバッグモードに戻ってSUB1の
実行が継続し、最後にMAINに復帰する直前に再びモード
を実行時モード指定で指定された非デバッグモードに切
り換える。
又SUB2もデバッグモードで実行したい場合には、実行
時に「MODE=NOADVANCED」を指定すれば、「MODE=P」
の位置でのモード設定でデバッグモードが設定されるの
で、従来と同様にSUB1、SUB2共にデバッグモードで実行
することができる。
〔発明の効果〕
以上の説明から明らかなように本発明によれば、計算
機における、プログラムの実行デバッグにおいて、実行
モードをプログラムの実行時に指定でき、且つモードを
動的に切り換えることができるので、デバッグ対象のプ
ログラムのみを選択的にデバッグモードとし、他を非デ
バッグモードで実行させて、デバッグ効率を向上するこ
とができるという著しい工業的効果がある。
【図面の簡単な説明】
第1図は本発明の構成を示すブロック図、 第2図は本発明の処理の流れ図、 第3図はプログラム例の説明図 である。 図において、 1はコンパイラ、2は原始プログラム、 3は第1のプログラム、4は第2のプログラム、 5は目的プログラム、6は実行モード指定、 7は実行モード、8は実行時モード指定、 10〜13は処理ステップ を示す。

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】原始プログラムをコンパイルし目的プログ
    ラムを生成するコンパイル装置であって、 実行時に他のプログラムから制御を受け取る上記生成さ
    れる目的プログラムの入口点に、コンパイル時に指定さ
    れる動作モードを設定するプログラムを挿入する手段
    と、 実行時に他のプログラムに制御を移す上記生成される目
    的プログラムの出口点に、実行時に指定される動作モー
    ドを設定するプログラムを挿入する手段と、を備えるコ
    ンパイル装置。
JP1213503A 1989-08-18 1989-08-18 コンパイル装置 Expired - Fee Related JP3019330B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1213503A JP3019330B2 (ja) 1989-08-18 1989-08-18 コンパイル装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1213503A JP3019330B2 (ja) 1989-08-18 1989-08-18 コンパイル装置

Publications (2)

Publication Number Publication Date
JPH0377140A JPH0377140A (ja) 1991-04-02
JP3019330B2 true JP3019330B2 (ja) 2000-03-13

Family

ID=16640278

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1213503A Expired - Fee Related JP3019330B2 (ja) 1989-08-18 1989-08-18 コンパイル装置

Country Status (1)

Country Link
JP (1) JP3019330B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63259736A (ja) * 1987-04-17 1988-10-26 Nec Corp デバツグ用セグメント分割方式

Also Published As

Publication number Publication date
JPH0377140A (ja) 1991-04-02

Similar Documents

Publication Publication Date Title
US6161216A (en) Source code debugging tool
US5732210A (en) Use of dynamic translation to provide fast debug event checks
US5687375A (en) Debugging of High Performance Fortran programs with backup breakpoints
JP2810675B2 (ja) デバック方式
US8745596B2 (en) Program debugging with dynamically inserted instrumentation
JPH01154267A (ja) 入出力機器制御プログラムのアドレス解決方法
US6330691B1 (en) Use of dynamic translation to provide breakpoints in non-writeable object code
EP0595540A1 (en) Debugging/modifying of software in ROM
US5737521A (en) Tracer system for analyzing errors in running real-time systems
JP3019330B2 (ja) コンパイル装置
US6134708A (en) Program compilation execution system
US6275985B1 (en) Method and apparatus for developing an application that implements garbage collection efficiently by combining proxy objects with compiler support
JPH01277934A (ja) パラメータリスト参照方法の切換え方式
US20020073133A1 (en) Register allocation method and software development method for various execution environments and LSI for executing developed software
JP2002055848A (ja) プログラム実行方式及び当該プログラム実行方式を格納した記憶媒体
KR100303307B1 (ko) 실시간 오퍼레이팅 시스템에서 디버깅동작을 위한 다운로드장치 및 방법
JPH0581069A (ja) プログラムのデバツグ方法
JP3372387B2 (ja) プログラム検査方法
KR100293932B1 (ko) 소프트웨어 코드인 이미지의 후처리 방법
JP2007249828A (ja) プログラマブルコントローラシステム、プログラマブルコントローラのデバッグ方法、プログラミング支援プログラム、プログラマブルコントローラのデバッグ制御プログラム
JP3293821B2 (ja) 動的リンクシステム
JPS63292338A (ja) 最適化プログラムデバツグ方式
Berthaud et al. Coupling virtual machines and system construction
KR19990030244A (ko) 2단 점프를 이용하여 소오스 프로그램으로부터 오브젝트 프로그램을 생성하는 언어처리 시스템 및 방법
JPS6292032A (ja) プログラムテスト方法

Legal Events

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