JPH06236294A - ソースプログラム・レベルでのデバッグ・モニタ制御方式 - Google Patents

ソースプログラム・レベルでのデバッグ・モニタ制御方式

Info

Publication number
JPH06236294A
JPH06236294A JP5022223A JP2222393A JPH06236294A JP H06236294 A JPH06236294 A JP H06236294A JP 5022223 A JP5022223 A JP 5022223A JP 2222393 A JP2222393 A JP 2222393A JP H06236294 A JPH06236294 A JP H06236294A
Authority
JP
Japan
Prior art keywords
source
code
program
address
instruction
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
JP5022223A
Other languages
English (en)
Inventor
Hideaki Shioda
英明 塩田
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.)
Fuji Electric Co Ltd
Fuji Facom Corp
Original Assignee
Fuji Electric Co Ltd
Fuji Facom 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 Fuji Electric Co Ltd, Fuji Facom Corp filed Critical Fuji Electric Co Ltd
Priority to JP5022223A priority Critical patent/JPH06236294A/ja
Publication of JPH06236294A publication Critical patent/JPH06236294A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【目的】 本発明は、ソースレベルでプログラムのデバ
ッグを行うためのデバッグ・モニタ制御方式に関し、簡
素な装置で、容易かつ高速にモニタすべきソース・コー
ドを検索・表示できるようにすることを目的とする。 【構成】 ソースレベル・デバッガ613は、PC30
0′からMPU301′によって実行された命令コード
のアドレスが送られてくると、このアドレスを基にプロ
グラム・メモリ303から“PUSH”または“PO
P”命令の命令コードを見つけ、この命令コードに設定
されているアドレスを基に、所定のアルゴリズムで上記
アドレスの送信された命令コードに相当するソース・コ
ードのソース・プログラム103上のアドレスを算出す
る。アドレス検索部614は、外部記憶装置103から
ソース・プログラム121内で上記算出アドレスに配置
されているソース・コードを読み出し、このソース・コ
ードの表示データをCRTディスプレイ101へ出力す
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、コンパイラ言語によっ
て記述されたプログラムのデバッグをソースレベル(ソ
ースプログラム・レベル)で行う場合において、命令実
行状態のソースレベルでのモニタ表示を制御するデバッ
グ・モニタ制御方式に関する。
【0002】
【従来の技術】従来は、アセンブラ言語でコーディング
されることが多かったマイクロコンピュータ応用システ
ムやラダーダイヤグラムによりプログラミング入力を行
うプログラマブル・コントローラなどにおいても最近に
おいては、コンパイラ言語(compiler language)でプロ
グラム開発ができようになってきている。
【0003】このようなコンパイラ言語でプログラム開
発ができる利点は、デバッグ作業が容易になることであ
る。すなわち、プログラムの処理内容の理解が容易なソ
ースプログラム・レベル(以下、ソースレベルと記述す
る)でデバッグができるようになることである。
【0004】ソースレベルでのプログラムのデバッグ作
業は、一般に、ターゲットシステムのマイクロプロセッ
サで開発中のプログラム(ターゲットプログラム)を実
際に実行させ、その命令実行状態をソースレベルでモニ
タ画面に表示させることにより行う。
【0005】図8に、このようなターゲットシステムの
デバッグ支援システムの全体構成を示す。このデバッグ
環境は、プログラミングローダ100,ローダ・インタ
フェース200、及びターゲット・システム300とか
ら成り、プログラムローダ100とターゲット・システ
ム300は、ローダ・インタフェース200を介して互
いに接続されている。
【0006】プログラミングローダ100は、ハードウ
ェア的には、デバッグ用のモニタ画面表示装置であるC
RTディスプレイ101、不図示のキーボード並びにマ
イクロプロセッサ、RAM(ランダム・アクセス・メモ
リ)から成るエミュレーション102、外部記憶装置
(103)、さらには上記ローダ・インタフェース20
0が接続されるインタフェース部(I/F部)104等
から構成される。
【0007】また、エディタ111、コンパイラ11
2、及びソースレベル・デバッガ113は、上記マイク
ロプロセッサによって不図示の主メモリにロードされて
実行されるソフトウェアである。
【0008】ソース・プログラム作成用のソフトウェア
ツールであるエディタ111は、オペレータの上記キー
ボードでのキー入力によって実行される。そして、この
エディタ111によって作成されたコンパイラ言語で記
述されたソース・プログラム121は、ソース・コード
の形式で上記外部記憶装置103に一旦格納される。
【0009】このソース・プログラム121は、上記エ
ディタ111と同様にオペレータのキー入力によって実
行されるコンパイラ112によってオブジェクト・プロ
グラム122に変換されると同時に、同じくコンパイラ
112によってソース・プログラム121のデバッグ
(ソースデバッグ)を行うために必要なソース・プログ
ラム121−オブジェクト・プログラム122間の対応
関係を定義するオブジェクト・プログラム122内の各
命令コードとそれらの各コードに対応するソース・プロ
グラム121内の各ソース・コードの格納位置を示すア
ドレス情報や、ソース・プログラム121内の各シンボ
ルの情報、ソース・プログラム121のモジュール名な
どの各種情報を含んだシンボリック・データベース12
3が作成される。
【0010】上記のようにして生成されたオブジェクト
・プログラム122は、プログラムローダ100内部の
エミュレーション・メモリ102、またはインタフェー
ス部104及びローダ・インタフェース200を経由し
てターゲット・システム300内部のプログラム・メモ
リ303にダウンロードされる。
【0011】また、上記シンボリック・データベース1
23は、デバッグ情報としてプログラムローダ100内
部のエミュレーション・メモリ102内に格納・保持さ
れる。
【0012】ターゲット・システム300は、ターゲッ
ト・マイクロプロセッサ301、このターゲット・マイ
クロプロセッサ301に内部バス(内部−BUS)30
2を介して接続される上記プログラム・メモリ303と
インタフェース部(I/F部)304等から構成されて
いる。
【0013】尚、上記インタフェース部304は、前記
ローダ・インタフェース200との接続インタフェース
である。続いて、上記構成のデバッグ支援システムにお
ける前記ソース・プログラムのソースレベルでのデバッ
グ方法を説明する。
【0014】実際に、デバッグ時に前記ソース・プログ
ラムの実行状態をソースレベルでCRTディスプレイ1
01にモニタ表示する場合、プログラムローダ100
は、ターゲット・システム300内のターゲット・マイ
クロプロセッサ301が現在実行中(または実行終了
済)の命令コードのアドレス、この命令コードにおける
オペランド(動的変数)、及びこの命令コードのステー
タスライン(ライン番号)等のエミュレーション情報
を、ローダ・インタフェース200を介しデバッグ情報
として収集する。
【0015】ソースレベル・デバッガ113は、このエ
ミュレーション情報の収集に連動しながら、エミュレー
ション・メモリ102に格納されているシンボリック・
データベース123を参照し、上記命令コードに対応
(相当)するソース・プログラム121内のソース・コ
ードを見つけ出す。そして、このソース・コードの表示
データを、モニタ画面の表示情報としてCRTディスプ
レイ101に送信する。
【0016】このことによって、CRTディスプレイ1
01にはターゲット・マイクロプロセッサ301によっ
て実行されたプログラム(ソース・プログラム)のソー
ス・コードが表示される。
【0017】したがって、プログラマは、CRTディス
プレイ101上のモニタ画面を見ながら実際に作成され
たソース・プログラムがターゲット・マイクロプロセッ
サ301上で正しく動作しているか否かをソースレベル
で確認することができる。
【0018】
【発明が解決しようとする課題】しかしながら、前述の
方式でデバッグ用のソース・プログラムの実行状態をソ
ースレベルで表示させる場合、下記の,等の問題が
発生していた。 ターゲット・システム300のプログラム・メモリ
303、またはエミュレーション・メモリ102内に格
納されているオブジェクト・プログラム122やシンボ
リック・データベース123、さらにはターゲット・シ
ステム300から送信されてくるデバッグ情報などを基
に、CRTディスプレイ101に表示すべきソース・プ
ログラム121内のソース・コードを検索・生成する作
業には相当複雑な手順が必要となり、このために、モニ
タすべきソース・コードの検索・生成に時間がかかって
いた。 シンボリック・データベース129の情報量が膨大
になるため、エミュレーション・メモリ102には大容
量のメモリが必要になるばかりか、もし、シンボリック
・データベース129の情報量が大きくなりすぎてエミ
ュレーション・メモリ102にダウンロードしきれなか
った場合、正常にソースレベルデバッグを行うことは不
可能になってしまう。
【0019】本発明は、上記のような問題を解消するた
めになされたもので、その目的とするところは、簡素な
装置で、容易かつ短時間でモニタすべきソース・プログ
ラム内のソース・コードを検索・表示できるようにする
ことである。
【0020】
【課題を解決するための手段】図1は、本発明の原理ブ
ロック図である。本発明は、同図に示すように、ソース
プログラム・レベルでのデバッグ・モニタ制御方式であ
って、ソース・プログラムからオブジェクト・プログラ
ムを生成する際、該オブジェクト・プログラム内の特定
の命令コードに前記ソース・プログラム内の所定のソー
ス・コードのアドレス情報を設定するコンパイラ1と、
前記ソース・プログラムを格納する記憶手段2と、前記
オブジェクト・プログラム内の命令コードのアドレスを
受け取って、そのアドレスを基に上記命令コードに相当
するソース・コードを前記記憶手段2に格納されている
ソース・プログラムから見つけ出す検索手段3と、該検
索手段3により見つけ出されたソース・コードの画面表
示制御を行う表示制御手段4と、を備えたことを特徴と
する。
【0021】前記検索手段3は、例えば、請求項2記載
のように前記命令コードのアドレスを基に、前記オブジ
ェクト・プログラム内のそのアドレスの前方または後方
で最も近いアドレスの前記特定の命令コードを見つけ出
す命令コード検索手段3と、該命令コード検索手段3に
よって見つけ出された命令コードに設定されたアドレス
情報と上記命令コード検索手段3が上記命令コードを見
つけ出すまでに行った命令コードの検索回数とから、前
記アドレスを受け取った命令コードに相当するソース・
コードの前記ソース・プログラム内でのアドレスを算出
する算出手段32と、該算出手段32によって算出され
たアドレスを基に、前記記憶手段2に格納されているソ
ース・プログラムを検索して、前記アドレスを受け取っ
た命令コードに相当するソース・コードを見つけ出すソ
ース・コード検索手段33と、から成るような構成にし
てもよい(図2参照)。
【0022】
【作用】まず、コンパイラ1により記憶手段2に格納さ
れているソース・プログラムのコンパイルを行い、この
ソース・プログラムをターゲット・システムのマイクロ
プロセッサが実行可能な形式のオブジェクト・プログラ
ムに変換する。
【0023】続いて、このオブジェクト・プログラムを
ターゲット・システムのマイクロプロセッサ上で実際に
実行させて上記ソース・プログラムのデバッグを行う
が、このデバッグ時において、検索手段3は、ターゲッ
ト・システムから送信されてくるターゲット・システム
のマイクロプロセッサが現在実行中(または既に実行終
了)の命令コードのアドレスを受信し、このアドレスを
基にして、上記命令コードを上記オブジェクト・プログ
ラムから見つけ出す。そして、次に、上記命令コードの
前方または後方に位置するソース・プログラム上の所定
のソース・コードのアドレス情報が設定されている命令
コードを上記オブジェクト・プログラムから読み出す。
【0024】続いて、検索手段3は、上記命令コードに
設定されている上記ソース・プログラムの所定のソース
・コードのアドレス情報を読み出し、このアドレス情報
を基に、予め定められた所定のアルゴリズムを用いて、
上記ターゲット・システムから送信されてきた命令コー
ドに相当する上記ソース・プログラム上のソース・コー
ドを、記憶手段2に格納されている上記ソース・プログ
ラムから読み出す。
【0025】表示制御手段4は、このソース・コードを
所定の表示装置に画面表示させる。このことにより、タ
ーゲット・システムのマイクロプロセッサにより実行さ
れた命令コードに対応(相当)するソース・コードが実
行順に画面表示され、プログラマは、ターゲット・シス
テム上で実行される開発中のプログラムを、その動作を
ソースレベルで確認しながらデバッグすることができ
る。
【0026】このように、ターゲット・システムから送
信されてくるそのマイクロプロセッサが実行した命令コ
ードのアドレスとコンパイル時に生成されているオブジ
ェクト・プログラム上の特定の命令コードに設定された
アドレス情報とを基に、上記実行された命令コードに対
応(相当)するソース・コードのソース・プログラム上
でのアドレスを見つけ出すので、画面に表示すべきソー
ス・コードの検索・表示を高速に行うことができる。
【0027】また、この検索・表示のために、従来のよ
うに大容量のシンボリック・データベースを必要としな
いので、エミュレーション・メモリの容量も小さくて済
む。
【0028】
【実施例】以下、図面を参照しながら本発明の実施例を
説明する。図3は、本発明の第1実施例であるスタック
・アーキテクチャを有するターゲット・マイクロプロセ
ッサ(以下、MPUと略称する)301′を核として構
成され、ラダーダイヤグラムで記述されたプログラムに
よって制御されるプログラマブル・コントローラ(以
下、PCと略称する)300′で実行されるプログラム
のソースレベルでのデバッグを行うためのデバッグ支援
システムの全体構成を示すブロック図である。
【0029】同図において、前述した図8に示すデバッ
グ支援システムにおけるブロックと同一のブロックには
同一の符号を付している。MPU301′は、スタック
・アーキテクチャであるため、全ての命令は、スタック
・ポインタの示す値をベース・アドレスに、ターゲット
・レジスタとして指定されたレジスタの値をディスティ
ネーションとしてアドレス指定されるオペランドを操作
する。
【0030】同図に示すプログラムローダ600のコン
パイラ612は、ソース・プログラム121をオブジェ
クト・プログラム622に変換して、このオブジェクト
・プログラム622を外部記憶装置103に格納する
が、この変換の際、このオブジェクト・プログラム62
2内の“NOP”命令や“PUSH”,“POP”命令
(スタック・ポインタの更新命令)などの様に、オペレ
ーションコードのみで成り立ち、後述するレジスタやイ
ミディエート/オペランド・フィールド( IMMEDIATE/
OPERAND-FIELD)の内容に関与しない命令の命令コード
(マシン語)の上記イミディエート/オペランド・フィ
ールドに、この命令のソース・プログラム121内での
対応するソース・コードの位置を示すアドレス情報を設
定する。
【0031】アドレス検索部614は、PC300′か
らローダ・インタフェース200を経由して送られてく
るデバッグ情報を基に、命令実行時の現行ソース・コー
ド(現在、MPU301′で実行中の命令コードに相当
するソース・コードを外部記憶装置103内に格納され
ているソース・プログラム121から読み出し、その現
行ソース・コードの表示データをデバッグ用のモニタ画
面の表示情報としてCRTディスプレイ101に送信す
る。
【0032】図4は、32ビット固定長命令を実行する
MPU301′の命令コード(マシン語命令コード)の
フォーマットを示す図である。同図に示すように、この
命令コードは、操作指令の内容を符号化した第24ビッ
ト目から第31ビット目(MSB)までの操作符号部
(OPE−CODE;OPERATION CODE) 、操作対象のレ
ジスタを指定する第16ビット目から第23ビット目ま
でのターゲット・レジスタ指定部(T−REG;TARGET
REGISTER)、及び操作の対象となるデータ(オペラン
ド)または分岐先命令の記憶場所を指定する第0ビット
目(LSB)から第15ビット目までのイミディエート
/オペランド・フィールド(以下、イミディエートフィ
ールドと略称する)から成っている。
【0033】本実施例では、コンパイラ612が、ソー
ス・プログラム121をコンパイルする際、オブジェク
ト・プログラム622内の上述したような、操作符号部
(オペレーションコード部)のみから成る“PUS
H”,“POP”命令などの命令コードのイミディエー
ト・フィールドに、この命令コードに相当するソース・
コードのソース・プログラム121内でのアドレスを示
すアドレス情報を設定する。
【0034】ここで、プログラムローダ600にキー入
力されるラダーダイヤグラムによって記述されたプログ
ラムの一具体例を図5に示す。このプログラムは、エデ
ィタ111により、図6の左側に示す中間コード(本実
施例ではソース・コードに相当する)の形式に変換され
て、各シンボル 外1や 外2 等)毎に、ニーモニッ
クコード(mnemonic code)と中間コードアド
【0035】
【外1】
【0036】
【外2】
【0037】レスが割り当てられ、ファイル(ソース・
プログラム)として外部記憶装置103に格納される。
上記中間コードから成るソース・プログラム121は、
コンパイラ612によって図6の右側に示すオブジェク
ト・プログラム622に変換される。
【0038】このコンパイルにおいて、スタック・アー
キテクチャを持つMPU301′の特長上、オブジェク
ト・プログラム622における一連の処理式(前記図5
に示すラダーダイヤグラムにおけるFUN−1,FUN
−2等に相当)の先頭と最後尾には、それぞれスタック
ポインタの更新命令(“PUSH”命令)、復帰命令
(“POP”命令)が配置される。
【0039】そして、これらの“PUSH”、“PO
P”命令のイミディエートフィールドに、それぞれ、ソ
ース・プログラム121内での上記処理式の先頭の中間
コードのアドレス、最後尾の中間コードのアドレスを設
定する。
【0040】次に、上記構成の本実施例におけるソース
レベルでのプログラム・デバッグ時における画面表示の
制御方法を説明する。まず、PC300′は、現在MP
U301′で実行されている命令コード(現行命令コー
ド)のアドレス(プログラムカウンタ値)をデバッグ情
報(エミュレーション情報)として、ローダ・インタフ
ェース200を介しプログラムローダ600に送信す
る。
【0041】プログラムローダ600のソースレベル・
デバッガ613は、PC300′のプログラム・メモリ
303上でその送信されてきたアドレスに格納されてい
る命令コードを、そのプログラム・メモリ303から読
み出し、そのオペレーションコードが“PUSH”命令
または“ POP”命令のオペレーションコードに等し
いか否かチェックする。
【0042】そして、“PUSH”命令または“PO
P”命令のオペレーションコードでなければ、1ステッ
プ前の命令コードをPC300′のプログラム・メモリ
303から読み出し、上記と同様のチェックを行う。そ
して、このチェック処理を、“PUSH”命令または
“POP”命令の命令コードが検索されるまで繰り返
す。
【0043】そして、“PUSH”命令または“PO
P”命令の命令コードが見つかったならば、そのイミデ
ィエートフィールドに設定されている中間コードアドレ
スを取り出す。
【0044】この場合、もし検索された命令コードが
“PUSH”命令の命令コードであったならば、この命
令コードのイミディエートフィールドに設定されている
アドレス情報は、次に配置されている命令コードに相当
する中間コード(ソース・コード)のソース・プログラ
ム121内でのアドレス(中間コードアドレス)を指し
ているものとみなす。
【0045】一方、もし上記検索された命令コードが
“POP”命令の命令コードであったならば、この命令
コードのイミディエートフィールドに設定されているア
ドレス情報は、この命令コードの前に配置されている命
令コードに相当する中間コード(ソース・コード)のソ
ース・プログラム121内でのアドレス(中間コードア
ドレス)を指すものとみなす。
【0046】そして、検索された命令が“PUSH”命
令または、“POP”命令のいずれであっても、その命
令コードのアドレス情報が示すアドレスにこの命令を検
索するまでに費やした命令検索回数より「1」小さい値
(これは、CRTディスプレイ101にモニタ表示すべ
き現行ソース・コード(前記現行命令コードに対応(相
当)するソース・コード)のソース・プログラム121
内での上記検索された“PUSH”命令または“PO
P”命令の次の命令コードに対応(相当)するソース・
コードからの後方相対アドレスに等しい)を加算する。
【0047】このようにして、算出された値は、CRT
ディスプレイ101のモニタ画面に表示すべき中間コー
ド(ソース・コード)のアドレスに等しくなっている。
このことを、図6を参照しながらより具体的に説明す
る。
【0048】同図、右側において、(*→の印で指され
ている「AND SP,G,bit」の命令の命令コー
ドのアドレスが送信されてきた場合、オブジェクト・プ
ログラム622内においてこの命令コードの2ステップ
前に“PUSH”命令の命令コードが存在し、かつこの
命令コードのイミディエートフィールドには「000
6」の中間コード(ソース・コード)アドレスが設定さ
れている。したがって、この場合、“PUSH”命令の
命令コードの次に来る命令コードに対応(相当)する中
間コード(ソース・コード)のソース・プログラム12
1内でのアドレス(中間コードアドレス)は、「000
6」であることがわかる。したがって、上記「AND
SP,G,bit」の命令の中間コード(ソース・コー
ド)アドレスは、「0007」(=0006+(2−
1))番地であることが分かる。
【0049】アドレス検索部614は、このようにして
ソースレベル・デバッガ613により算出された中間コ
ード(ソース・コード)アドレスをソースレベル・デバ
ッガ613から受け取り、外部記憶装置103からソー
ス・プログラム121内のこの中間コードアドレスに配
置されたソース・コード(中間コード)を読み出し、こ
のソース・コードの表示データをCRTディスプレイ1
01に出力する。
【0050】本実施例では、このようにしてPC30
0′から送信されてくる「AND SP,G,bit」
の命令の命令コードのオブジェクト・プログラム622
内でのアドレスを基に、この命令コードに対応するソー
ス・コードをソース・プログラム121を検索して見つ
け出し、その表示データを生成する。
【0051】次に、本発明をC言語で記述されるソース
・プログラム103に適用した第2実施例について説明
する。図7は、C言語で記述されたソース・プログラム
103のコンパイル方法を説明する図である。
【0052】この第2実施例では、コンパイラ612
は、C言語で記述されたソース・プログラム103をア
センブラ言語で記述されたオブジェクト・プログラム6
22に変換する。そして、このコンパイルにおいて、ソ
ース・プログラム103のある処理単位(同図の例で
は、「{」と「}」の間に囲まれた部分)毎、かつ、そ
れらの処理単位内の各処理式(同図の例では、式−1,
式−2,式−3が相当)毎に、上記第1実施例と同様に
して現行命令コードのアドレスを基にその現行命令コー
ドに対応(相当)するソース・コードを検索するために
必要となるソース・プログラム103内での所定のソー
ス・コードの行番号(これは、上記第1実施例における
中間コードアドレスに等しい)をオブジェクト・プログ
ラム622内の特定の命令コードに設定する。
【0053】本実施例では、同図右に示すように、コン
パイルの際、オブジェクト・プログラム622の所定位
置に“NOP”命令の命令コードを配置し、この命令コ
ードのイミディエートフィールドにソース・プログラム
103内に記述されている処理式等の特定のステートメ
ントの行番号を設定する。そして、実際にデバッグを実
行する際には、ターゲットシステム300′から送信さ
れてくる現在実行中または既に実行が終了した命令コー
ドのプログラム・メモリ303上のロードアドレスを基
に、この命令コードに対応(相当)するソース・コード
よりもソース・プログラム121内で後方に配置されて
いるソース・コードの行番号を、プログラム・メモリ3
03上にロードされているオブジェクト・プログラム6
22内の所定の“NOP”命令の命令コードから取り出
し、この行番号を基に上記命令コードに対応するソース
・コードのソース・プログラム121内での行番号を算
出する。
【0054】そして、この行番号を基に外部記憶装置1
03に格納されているソース・プログラム121を検索
して、上記命令コードに相当するソース・コードを見つ
け出す。そして、次にこのソース・コードの表示データ
を生成し、この表示データをCRTディスプレイ101
に送信することにより、上記ソース・コードをCRTデ
ィスプレイ101上に画面表示させる。
【0055】これにより、プログラマは、実際にC言語
で作成されたソース・プログラムがターゲット・システ
ム300′のターゲット・マイクロプロセッサ301上
で正しく動作しているかを、CRTディスプレイ101
上のモニタ画面を見ながら、ソースレベルで確認するこ
とができる。
【0056】このように、本実施例によれば、モニタ画
面表示によりソースレベルでプログラム・デバッグを行
う場合に、従来のように大容量のシンボリック・データ
ベースを必要としない。
【0057】このため、エミュレーション・メモリ60
2として、従来のように大容量のメモリを確保する必要
が無くなる。また、ソース・プログラムのコンパイルの
際、オペレーションコードのみで成り立つ命令のイミデ
ィエートフィールドにソース・コードのアドレス情報を
設定することにより、ターゲット・システムからは現在
実行中、または既に実行が終了した命令コードのアドレ
スのみを受け取り、このアドレスを基にターゲット・シ
ステム300′のプログラム・メモリ303及びプログ
ラムローダ600内の外部記憶装置103に格納されて
いるソース・プログラム121を参照して、上記命令コ
ードに相当するソース・コードを検索する。
【0058】したがって、モニタすべきソース・コード
を見つけ出す際に、従来のようにエミュレーションメモ
リ102に格納されている大容量のシンボリック・デー
タベースを検索するという複雑な手順を要する処理が不
要となるため、簡素な装置で、容易かつ高速にモニタ画
面に表示すべきソース・コードを検索できる。
【0059】そして、この結果として、ソースレベルの
デバッグ・モニタ画面の表示を高速に行うことができ
る。尚、上記実施例では、ターゲット・システム30
0′のターゲット・マイクロプロセッサ301′として
固定長命令コードを実行するMPUを用いているが、可
変長命令コードを実行するMPUをターゲット・マイク
ロプロセッサ301′とするターゲット・システム30
0′についても、本発明は適用可能である。
【0060】すなわち、この場合には、コンパイルの段
階でオブジェクト・プログラム622内のオペレーショ
ンコードのみで成り立つ命令に対し、イミディエートフ
ィールドをダミーとして指定し、このイミディエートフ
ィールドに、上記実施例のようにソースレベルでのデバ
ッグのためにソース・プログラム内の所定のソース・コ
ードのアドレス情報を設定する処理を行うようにする。
このことにより、実際のデバッグ実行時に、上記実施例
と同様な制御方法により、実行された命令コードに対応
(相当)するソース・コードをソース・プログラムから
検索して、画面表示させることができる。
【0061】また、オブジェクト・プログラム622の
検索についても、上記実施例のようにターゲット・シス
テム300′のプログラム・メモリ303内ではなく、
プログラムローダ600のエミュレーション・メモリ6
02内で行うようにしてもよい。この方が、ソース・コ
ードの検索・表示をより高速に行うことができる。
【0062】
【発明の効果】以上、説明したように本発明によれば、
従来のように大容量のシンボリック・データベースを作
成しなくても、ソースレベルでデバッグ用のモニタ画面
を表示できる。
【0063】したがって、エミュレーション・メモリと
して大容量のメモリを確保する必要が無くなるばかりで
はなく、ソースレベルでのデバッグ時において、表示す
べきソース・コードの検索を高速に行うことができ、ソ
ースレベルでのデバッグ用のモニタ画面の表示を従来よ
りも高速化できる。
【0064】また、ソース・コードの検索処理が従来よ
りも簡単になるので、装置も簡素化できる。
【図面の簡単な説明】
【図1】本発明の原理ブロック図(その1)である。
【図2】本発明の原理ブロック図(その2)である。
【図3】本発明の一実施例のシステム構成を示すブロッ
ク図である。
【図4】MPUによって実行される命令コードのフォー
マットを説明する図である。
【図5】PC用のラダーダイヤグラムによって記述され
たプログラムの一具体例を示す図である。
【図6】図5に示すラダーダイヤグラムに対応するソー
ス・プログラム及びこれをコンパイルすることによって
得られるオブジェクト・プログラムの内容を示す図であ
る。
【図7】第2実施例のソース・プログラム及びこれをコ
ンパイルすることによって得られるオブジェクト・プロ
グラムの内容を示す図である。
【図8】従来のソースレベル・デバッグ支援システムの
全体構成を示すブロック図である。
【符号の説明】
1 コンパイラ 2 記憶手段 3 検索手段 4 表示制御手段 31 命令コード検索手段 32 算出手段 33 ソース・コード検索手段

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 ソース・プログラムからオブジェクト・
    プログラムを生成する際、該オブジェクト・プログラム
    内の特定の命令コードに前記ソース・プログラム内の所
    定のソース・コードのアドレス情報を設定するコンパイ
    ラ(1)と、 前記ソース・プログラムを格納する記憶手段(2)と、 前記オブジェクト・プログラム内の命令コードのアドレ
    スを受け取って、そのアドレスを基に上記命令コードに
    相当するソース・コードを前記記憶手段(2)に格納さ
    れているソース・プログラムから見つけ出す検索手段
    (3)と、 該検索手段(3)により見つけ出されたソース・コード
    の画面表示制御を行う表示制御手段(4)と、 を備えたことを特徴とするソースプログラム・レベルで
    のデバッグ・モニタ制御方式。
  2. 【請求項2】 前記検索手段(3)は、 前記命令コードのアドレスを基に、前記オブジェクト・
    プログラム内のそのアドレスの前方または後方で最も近
    いアドレスの前記特定の命令コードを見つけ出す命令コ
    ード検索手段(31)と、 該命令コード検索手段(31)によって見つけ出された
    命令コードに設定されたアドレス情報と上記命令コード
    検索手段(31)が上記命令コードを見つけ出すまでに
    行った命令コードの検索回数とから、前記アドレスを受
    け取った命令コードに相当するソース・コードの前記ソ
    ース・プログラム内でのアドレスを算出する算出手段
    (32)と、 該算出手段(32)によって算出されたアドレスを基
    に、前記記憶手段(2)に格納されているソース・プロ
    グラムを検索して、前記アドレスを受け取った命令コー
    ドに相当するソース・コードを見つけ出すソース・コー
    ド検索手段(33)と、 から成ることを特徴とする請求項1記載のソースプログ
    ラム・レベルでのデバッグ・モニタ制御方式。
JP5022223A 1993-02-10 1993-02-10 ソースプログラム・レベルでのデバッグ・モニタ制御方式 Pending JPH06236294A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5022223A JPH06236294A (ja) 1993-02-10 1993-02-10 ソースプログラム・レベルでのデバッグ・モニタ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5022223A JPH06236294A (ja) 1993-02-10 1993-02-10 ソースプログラム・レベルでのデバッグ・モニタ制御方式

Publications (1)

Publication Number Publication Date
JPH06236294A true JPH06236294A (ja) 1994-08-23

Family

ID=12076807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5022223A Pending JPH06236294A (ja) 1993-02-10 1993-02-10 ソースプログラム・レベルでのデバッグ・モニタ制御方式

Country Status (1)

Country Link
JP (1) JPH06236294A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013122740A (ja) * 2011-12-12 2013-06-20 Fujitsu Ltd データ処理装置、変換装置、データ処理システム、変換方法、および変換プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013122740A (ja) * 2011-12-12 2013-06-20 Fujitsu Ltd データ処理装置、変換装置、データ処理システム、変換方法、および変換プログラム

Similar Documents

Publication Publication Date Title
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US5557774A (en) Method for making test environmental programs
JP4766540B2 (ja) プログラムコード変換の検証を実行するための方法および装置
JP5050019B2 (ja) ソースコード解析システム
EP0582738A1 (en) Language compiler
JP2002532804A (ja) ハイブリッドコンピュータプログラミング環境
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
JPH06236294A (ja) ソースプログラム・レベルでのデバッグ・モニタ制御方式
US5963725A (en) Simulation system and method for microcomputer program
KR100417655B1 (ko) 최적화과정을참조하면서동작검증을행하도록디버그정보를생성하는디버그정보생성장치및프로그래머가최적화과정을의식하면서동작검증을할수있는디버그장치로이루어지는프로그램개발시스템
JPH0554277A (ja) プラント監視装置
JPH10320212A (ja) キャッシュ向け最適化方法
JPH0410081B2 (ja)
JP3430635B2 (ja) 定数参照最適化処理装置
WO2024069730A1 (ja) デバッグ装置及びデバッグ方法
JP2653880B2 (ja) プログラム内容解析装置
JP2827724B2 (ja) プログラムデバッグ処理方法
JP2672968B2 (ja) デバッグ用ソースリスト出力処理方式
JPS61180342A (ja) 高級言語のステツプ実行方式
JPH0756723A (ja) コンパイラ装置
JP3077627B2 (ja) デバッグ方法およびデバッグプログラムを記録する記録媒体
KR0175469B1 (ko) 칠프로그램 변수의 가시성 제어방법
JPS59225449A (ja) 文番号変換方式
JP2754533B2 (ja) 流れ図作成装置
JP2659366B2 (ja) デバッグ方法及びその装置

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20000815