JPH04287134A - 簡易トレース情報取得方式 - Google Patents

簡易トレース情報取得方式

Info

Publication number
JPH04287134A
JPH04287134A JP3074337A JP7433791A JPH04287134A JP H04287134 A JPH04287134 A JP H04287134A JP 3074337 A JP3074337 A JP 3074337A JP 7433791 A JP7433791 A JP 7433791A JP H04287134 A JPH04287134 A JP H04287134A
Authority
JP
Japan
Prior art keywords
trace information
function
information output
output function
instruction sequence
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
JP3074337A
Other languages
English (en)
Inventor
Hidekazu Kimura
英一 木村
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 JP3074337A priority Critical patent/JPH04287134A/ja
Publication of JPH04287134A publication Critical patent/JPH04287134A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は情報処理における実行プ
ログラムのデバッグ処理に関し、特に実行プログラムの
実行時のトレース情報を取得する処理に関する。
【0002】
【従来の技術】従来この種の実行プログラムの実行時の
トレース情報を取得する処理では、ソースプログラム中
の関数の入口毎にその関数に制御が移った旨の情報を出
力するようなコーディングを行っていた。
【0003】上述した従来のソースプログラム中の関数
の入口毎にその関数に制御が移った旨の情報を出力する
ようなコーディングを行っていた方式では、トレース情
報を取得するためだけに無駄なコーディングが行われ、
見落としによるトレース情報用のコーディングもれがあ
るという欠点がある。
【0004】
【発明が解決しようとする課題】本発明はソースプログ
ラムを修正せずにコンパイラの処理により実行時トレー
スが取得できる簡易トレース情報取得方式を提供するこ
とにある。
【0005】
【課題を解決するための手段】本発明の簡易トレース情
報取得方式は、実行プログラムのトレース情報を取得す
る処理においてコンパイラを起動するさいに簡易トレー
ス機能を有効にするオプションが指定されているかを判
定するオプション設定判定手段と、前記オプション設定
判定手段で簡易トレース機能を有効にするオプションが
指定されていると判定された場合、コード生成部によっ
て生成された命令列から関数呼び出し命令列を判定する
ための関数呼び出し命令判定手段と、前記関数呼び出し
命令判定手段で関数呼び出し命令列であると判定された
命令列を簡易トレース情報出力関数を呼び出す命令列に
置き換える簡易トレース情報出力関数呼び出し命令生成
手段と、前記簡易トレース情報出力関数呼び出し命令生
成手段で生成された呼び出し命令列によって呼び出され
る簡易トレース情報出力関数の本体の命令列を生成する
簡易トレース情報出力関数本体命令生成手段と、を備え
ている。
【0006】
【実施例】次に、本発明について図面を参照して説明す
る。
【0007】図1は本発明の一実施例を構成するブロッ
ク図である。
【0008】本実施例の簡易トレース情報取得方式は、
ソースプログラム1とコンパイラ2とオブジェクトファ
イル3とで構成されている。
【0009】そしてコンパイラ2は、オプション設定判
定手段101とコード生成部102と関数呼び出し命令
判定手段103と簡易トレース情報出力関数呼び出し命
令生成手段104と簡易トレース情報出力関数本体命令
生成手段105とで構成されている。
【0010】図2は、簡易トレース情報出力関数本体命
令生成手段105で生成する簡易トレース情報出力関数
本体命令列の一実施例を示す流れ図である。
【0011】本発明の簡易トレース情報出力関数本体命
令列は、スタックポインタ更新201と本関数で使用す
る全レジスタをセーブする202と関数への飛び先アド
レスとシンボル情報内の関数入口アドレスとの比較20
3とその入口アドレスを持つ関数の名前を取得する20
4と取得した関数名を出力する205と呼び出す関数の
引数の値を出力する206とセーブしたレジスタの内容
を回復する207とスタックポインタを回復する208
とで構成されている。
【0012】次に、本実施例の全体的な動作を具体的に
説明する。
【0013】オプション設定判定手段101は、コンパ
イラ2が認識するオプションのうち簡易トレース情報取
得用オブジェクト作成オプションが指定されているかを
判定し、指定されていれば簡易トレース情報取得モード
としコード生成部102を介して関数呼び出し命令判定
手段103を起動し、指定されていなければ通常の翻訳
処理を行う。
【0014】関数呼び出し命令判定手段103は、コー
ド生成部102によって生成された命令列から関数呼び
出し命令列を捜し出し、関数呼び出し命令列の部分を簡
易トレース情報出力関数呼び出し命令に置き換えるため
に簡易トレース情報出力関数呼び出し命令生成手段10
4を起動する。
【0015】簡易トレース情報出力関数呼び出し命令生
成手段104は、関数呼び出し命令判定手段103で判
定された関数呼び出し命令列を簡易トレース情報出力関
数呼び出し命令列に置き換え、全ての関数呼び出し命令
列を簡易トレース情報出力関数呼び出し命令列に置き換
えた後に、簡易トレース情報出力関数本体の命令列を追
加生成するために、簡易トレース情報出力関数本体命令
生成手段105を起動する。
【0016】簡易トレース情報出力関数本体命令生成手
段105は、簡易トレース情報出力関数呼び出し命令生
成手段104で置き換えた簡易トレース情報出力関数呼
び出し命令列によって呼び出される簡易トレース情報出
力関数の本体命令列を追加生成する。
【0017】簡易トレース情報出力関数本体の命令列は
、スタックポインタ更新201で本関数内で使用するレ
ジスタを退避するのに必要な分だけスタック領域を確保
し、スタックポインタを更新する。
【0018】次に本関数で使用する全レジスタをセーブ
する202で本関数スタックポインタ更新201で確保
したスタック領域に本関数で使用するレジスタの内容を
セーブする。
【0019】その後、関数への飛び先アドレスとシンボ
ル情報の関数入口アドレスとの比較203で、本来呼ば
れる関数の入口アドレスと、生成される実行プログラム
中に存在するシンボル情報内の関数入口アドレスとを等
しくなるまで、生成される実行プログラム中に存在する
シンボル情報を検索し、等しくなったらその入口アドレ
スを持つ関数の名前を取得する204の処理を行う。
【0020】その入口アドレスを持つ関数の名前を取得
する204は、等しくなったアドレスに対応するシンボ
ル情報内の関数名を取得し、取得した関数名を出力する
205でその取得した関数名を出力する。さらに、呼び
出す関数の引数の値を出力する206では、本来呼び出
される関数に対する引数を値を出力する。
【0021】そして、セーブしたレジスタの内容を回復
する207で、本関数で使用する全レジスタをセーブす
る202で退避したレジスタの内容を復帰し、スタック
ポインタを回復する208でスタックポインタを元の値
に戻し、本来呼び出すべき関数に分岐する209。
【0022】
【発明の効果】以上説明したように本発明は、実行プロ
グラムの実行時のトレース情報を取得する処理において
、そのソースプログラムを翻訳する段階でトレース情報
出力関数をコンパイラが自動生成し、関数呼び出し命令
をそのトレース情報出力関数を呼び出すように置き換え
ることにより、ソースプログラム中の関数の入口毎にそ
の関数に制御が移った旨の情報を出力するようなコーデ
ィングを行っていた場合より、コンパイラに対するオプ
ションを指定するだけで実行プログラムの実行時のトレ
ース情報が得られるので、そのソースプログラムに対す
る余分な変更や追加コーディングを行わずにすみ、トレ
ース情報用のコーディングもれや余分な変更や追加コー
ディングによる記述間違いが無くなるという効果がある
【図面の簡単な説明】
【図1】本発明の簡易トレース情報取得方式の一実施例
を示す構成図である。
【図2】簡易トレース情報出力関数本体命令生成手段1
05で生成される命令列の流れ図である。
【符号の説明】
1  ソースプログラム 2  コンパイラ 3  オブジェクトファイル 101  オプション設定判定手段 102  コード生成部 103  関数呼び出し命令判定手段 104  簡易トレース情報出力関数呼び出し命令生成
手段 105  簡易トレース情報出力関数本体命令生成手段
201  スタックポインタ更新 202  本関数で使用する全レジスタをセーブする2
03  関数への飛び先アドレスとシンボル情報内の関
数入口アドレスとの比較

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】  実行プログラムのトレース情報を取得
    する処理において、コンパイラを起動する際に簡易トレ
    ース機能を有効にするオプションが指定されているかを
    判定するオプション設定判定手段と、前記オプション設
    定判定手段で簡易トレース機能を有効にするオプション
    が指定されていると判定された場合、コード生成部によ
    って生成された命令列から関数呼び出し命令列を判定す
    るための関数呼び出し命令判定手段と、前記関数呼び出
    し命令判定手段で関数呼び出し命令列であると判定され
    た命令列を簡易トレース情報出力関数を呼び出す命令列
    に置き換える簡易トレース情報出力関数呼び出し命令生
    成手段と、前記簡易トレース情報出力関数呼び出し命令
    生成手段で生成された呼び出し命令列によって呼び出さ
    れる簡易トレース情報出力関数の本体の命令列を生成す
    る簡易トレース情報出力関数本体命令生成手段と、を備
    えることを特徴とする簡易トレース情報取得方式。
JP3074337A 1991-03-15 1991-03-15 簡易トレース情報取得方式 Pending JPH04287134A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3074337A JPH04287134A (ja) 1991-03-15 1991-03-15 簡易トレース情報取得方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3074337A JPH04287134A (ja) 1991-03-15 1991-03-15 簡易トレース情報取得方式

Publications (1)

Publication Number Publication Date
JPH04287134A true JPH04287134A (ja) 1992-10-12

Family

ID=13544208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3074337A Pending JPH04287134A (ja) 1991-03-15 1991-03-15 簡易トレース情報取得方式

Country Status (1)

Country Link
JP (1) JPH04287134A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526135A (ja) * 1998-11-16 2003-09-02 インシグニア・ソリューションズ・ピーエルシー コンピュータ・システム、コンピュータ読取り可能な記憶媒体および同媒体を動作させる方法、およびコンピュータ・システムを動作させる方法
JP2008217751A (ja) * 2007-02-09 2008-09-18 Ntt Docomo Inc コード検出装置及びコード検出方法
JP2011216056A (ja) * 2010-04-02 2011-10-27 Mitsubishi Electric Corp プログラマブルコントローラ及びその周辺装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003526135A (ja) * 1998-11-16 2003-09-02 インシグニア・ソリューションズ・ピーエルシー コンピュータ・システム、コンピュータ読取り可能な記憶媒体および同媒体を動作させる方法、およびコンピュータ・システムを動作させる方法
JP2008217751A (ja) * 2007-02-09 2008-09-18 Ntt Docomo Inc コード検出装置及びコード検出方法
JP2011216056A (ja) * 2010-04-02 2011-10-27 Mitsubishi Electric Corp プログラマブルコントローラ及びその周辺装置

Similar Documents

Publication Publication Date Title
US20040230957A1 (en) Methods for comparing versions of a program
JPH04287134A (ja) 簡易トレース情報取得方式
JP2817786B2 (ja) シミュレーション装置及びシミュレーション方法
JPH0667871A (ja) プログラム自動更新方式
JPH07210397A (ja) プログラム変換方法およびそれを用いたプログラム実行方法
JPH04239338A (ja) マイクロプログラム網羅率測定方式
JPH05197561A (ja) コンパイル方式
JPH05297911A (ja) シーケンスコントローラ用シーケンス制御回路
JP2001125793A (ja) コンパイラシステム及びコンパイル方法並びに記録媒体
JPH0362227A (ja) 高速再翻訳処理方式
CN115344247A (zh) 用于iOS中不同接口数据结构类型的适配器及适配方法
CN117762406A (zh) 低代码开发转换引擎系统
JP3021697B2 (ja) プログラミング言語における例外処理方法
JPS63228341A (ja) プログラム構文チエツク方式
JPH01282651A (ja) 網羅度管理のための制御項目自動管理方式
JPH06103080A (ja) インクルードファイル取込方式
JPH04195549A (ja) デバッグ処理方式
JPH05204699A (ja) デバッグ時識別子探索方式
JPH01140239A (ja) 命令実行アドレス保存処理方式
JPH02284239A (ja) 言語処理プログラムの実行方式
JPH03156641A (ja) コンパイル処理方式
JPH0944347A (ja) エラー知識ベース作成装置
JPH0566949A (ja) 関数定義コンパイルドコード呼出し方式
JPH0588879A (ja) プログラム開発支援システム
JPH01140236A (ja) プログラムの逆コンパイル方式