JPH06337780A - ロードモジュールのパッチ修正装置および方法 - Google Patents

ロードモジュールのパッチ修正装置および方法

Info

Publication number
JPH06337780A
JPH06337780A JP5126819A JP12681993A JPH06337780A JP H06337780 A JPH06337780 A JP H06337780A JP 5126819 A JP5126819 A JP 5126819A JP 12681993 A JP12681993 A JP 12681993A JP H06337780 A JPH06337780 A JP H06337780A
Authority
JP
Japan
Prior art keywords
modified
basic block
load module
modification
target
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
JP5126819A
Other languages
English (en)
Inventor
Takeshi Sawazaki
武 澤崎
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP5126819A priority Critical patent/JPH06337780A/ja
Publication of JPH06337780A publication Critical patent/JPH06337780A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

(57)【要約】 【目的】ロードモジュールのパッチ修正が、その修正範
囲を指定するだけでソースファイルの修正版をもとに正
しく行えるようにする。 【構成】外部指定の修正範囲111の示す修正版ソース
ファイル11の修正部分を含むBB(基本ブロック)
を、BB検出部によりミニコンパイル対象BB112と
して切出して、ミニコンパイル部によるコンパイルを行
わせ、修正版BB113を得る。また、修正対象LMF
12の修正対象箇所121を含むBBを、BB検出部に
より修正対象BB122として検出させ、修正版LMF
イメージ作成部により、その修正対象BB122に修正
版BB113が上書きされた、または修正対象BB11
3がJUMP命令212のみに書換えられ、パッチ領域
123に修正版BB113が書込まれ、その後に修正対
象BB122の次のBBへのJUMP命令213が書込
まれた修正版LMFイメージ21を作成する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、ロードモジュールの
部分的修正を行うのに好適なロードモジュールのパッチ
修正装置および方法に関する。
【0002】
【従来の技術】従来、プログラムに不具合があった場合
等におけるプログラムの修正方法としては、ソースファ
イルを修正し、その修正後のソースファイルを再コンパ
イルにより新しくロードモジュールを作成し直す第1の
方法と、ロードモジュールの修正部分のコードそのもの
を書換える第2の方法とが知られていた。
【0003】上記第1の方法は、簡便ではあるものの、
ソースコードの僅かな修正でも、その修正前のロードモ
ジュールと修正後のロードモジュールとで、該当箇所以
降において位置関係等の対応が全て変化するため、OS
(オペレーティングシステム)ロードモジュールのよう
にプログラムの規模が大きいものの場合には、その対応
関係を記述したリストは膨大なものとなる。このため、
OSロードモジュールの出荷元において、上記第1の方
法により、修正前のロードモジュールと修正後のロード
モジュールの対応関係を示すリストを作成し、そのリス
トを用いて、客先の計算機に搭載されているOSロード
モジュールを修正する場合、保守性に乏しいという問題
があった。
【0004】一方、上記第2の方法は、パッチ修正と呼
ばれるもので、修正の対象とならない部分については、
修正前のロードモジュールと修正後のロードモジュール
とで変わらないために、第1の方法と異なって、特にO
Sロードモジュールの修正の場合には、その保守性の良
さ、バグの再混入の危険性の少なさから、この修正方法
が用いられることが多い。
【0005】従来、この第2の方法(パッチ修正方法)
は、プログラマ自身がソースコードの修正イメージを机
上でハンドコンパイルし、ロードモジュールの修正箇所
を見つけ、コードを書換えるものであった。このための
ツールとしては、プログラマが指定したロードモジュー
ル上の箇所を、プログラマ指定のデータで置換えるもの
であった。
【0006】
【発明が解決しようとする課題】上記したように、OS
ロードモジュール等の修正には、保守性の良さと、バグ
の再混入の危険性の少なさから、ロードモジュールの修
正部分のコードそのものを書換えるパッチ修正方法が従
来より適用されていた。
【0007】しかし従来のパッチ修正方法では、プログ
ラマ自身がソースコードの修正イメージを机上でハンド
コンパイルし、ロードモジュールの修正箇所を見つけ、
コードを書換えるものであったため、特にVLIW(Ve
ry Long Instruction Word)型並列処理方式(以下、単
にVLIW方式と称する)等のアーキテクチャを適用し
た計算機上で動作するロードモジュールのコードは、高
度に最適化・並列化されているため、ソースコードとの
対応をとるのは難しく、またハンドコンパイルを最適化
・並列化を考慮して行うのは、極めて困難であるという
問題があった。
【0008】この発明は上記事情を考慮してなされたも
のでその目的は、ロードモジュールの部分的修正(パッ
チ修正)が、その修正範囲を指定するだけでソースファ
イルの修正版をもとに正しく行え、特にVLIW方式対
応のロードモジュールを修正する場合には、その修正部
分の並列化・最適化が図れるロードモジュールのパッチ
修正装置および方法を提供することにある。
【0009】
【課題を解決するための手段】この発明は、既存のソー
スファイルの一部を修正した修正版ソースファイルの修
正範囲を指定入力するための修正範囲入力手段と、この
修正範囲入力手段により指定入力された修正範囲を含む
基本ブロック(BB)を上記修正版ソースファイル中で
検出してミニコンパイル対象基本ブロック(ミニコンパ
イル対象BB)として切出す第1の基本ブロック検出手
段(ミニコンパイル対象BB検出手段)と、上記切出さ
れたミニコンパイル対象BBをコンパイルして部分的な
コンパイル結果である修正版基本ブロック(修正版B
B)を得るミニコンパイル手段と、上記既存のソースフ
ァイルに対応した修正対象ロードモジュールの中から修
正対象部分を含む基本ブロックを修正対象基本ブロック
(修正対象BB)として検出する第2の基本ブロック検
出手段(修正対象BB検出手段)と、上記修正版BBを
用いて修正対象ロードモジュール中の修正対象BBを修
正することにより、修正対象ロードモジュールに修正版
BBの修正内容が反映された修正版ロードモジュールの
イメージを作成する修正版ロードモジュールイメージ作
成手段とを備えたことを特徴とするものである。
【0010】また、この発明は、修正対象ロードモジュ
ールと修正版ロードモジュールイメージとを比較して、
修正対象ロードモジュール中の修正対象部分と、対応す
る修正版ロードモジュールイメージ中の修正部分とを検
出して、両者の対応関係を示す修正対応リストを作成
し、この対応リストをもとに修正対象ロードモジュール
を書換えることをも特徴とする。
【0011】また、この発明は、修正版ロードモジュー
ルイメージ作成手段により修正版ロードモジュールのイ
メージを作成するのに、修正版BBのサイズが修正対象
BB以下ならば、修正版BBを修正対象ロードモジュー
ル中の修正対象BBに上書きし、修正版BBのサイズが
修正対象BBより大きいならば、この修正対象BBを、
修正対象ロードモジュールに確保されたパッチ領域(空
き領域)への第1のジャンプ命令のみに書換えると共
に、同パッチ領域に、修正版BBと、修正対象BBの次
のBBへの第2のジャンプ命令とを書込むようにしたこ
とをも特徴とする。
【0012】
【作用】上記の構成において、ミニコンパイル対象BB
検出手段は、プログラマ等が指定した修正版ソースファ
イルの修正範囲が修正範囲入力手段により入力される
と、その修正範囲を含むコンパイル時の最適化の最小単
位であるBB(Basic Block )を検出してミニコンパイ
ル対象BBとして切出す。この切り出されたミニコンパ
イル対象BBはミニコンパイル手段によりコンパイルさ
れ、これにより部分的なコンパイル結果である修正版B
Bが得られる。ここで、ミニコンパイル手段が、VLI
W方式の計算機上で動作するロードモジュールを作成す
るためのものであるとすると、ソースファイルの修正部
分を含むミニコンパイル対象BBから、高度に最適化・
並列化されたコンパイル結果(オブジェクトコード)が
修正版BBとして得られる。
【0013】一方、修正対象BB検出手段は、既存のソ
ースファイルに対応した修正対象ロードモジュール(即
ち元の修正前のソースファイルをコンパイルして作成さ
れたロードモジュール)の中から修正対象部分を含むB
Bを修正対象BBとして検出する。すると修正版ロード
モジュールイメージ作成手段は、修正版BBを用いて修
正対象ロードモジュール中の修正対象BBを修正するこ
とにより、修正対象ロードモジュールに修正版BBの修
正内容が反映された修正版ロードモジュールのイメージ
を作成する。
【0014】この修正版ロードモジュールのイメージ
は、修正版BBのサイズが修正対象BB以下であるか否
かによって、異なる形態をとる。即ち修正版BBのサイ
ズが修正対象BB以下ならば、修正版BBが修正対象B
Bに上書きされる。これに対し、修正版BBのサイズが
修正対象BBより大きいならば、この修正対象BBが、
修正対象ロードモジュールに確保されたパッチ領域への
ジャンプ命令のみに書換えられる他、同パッチ領域に、
修正版BBと、修正対象BBの次のBBへのジャンプ命
令とが書込まれる。
【0015】以上のようにして修正版ソースファイルを
もとに作成された修正版ロードモジュールのイメージと
修正対象ロードモジュールとでは、修正版BB上のコー
ドと修正対象BB上のコードとの間(修正版BBのサイ
ズが修正対象BBより大きい場合には、更にパッチ領域
間)でのみ一部対応が変化するだけであり、その対応リ
ストは小規模のもので済む。
【0016】したがって、この対応リスト(修正対応リ
スト)を作成し、このリストをもとに、例えば客先の計
算機に搭載されているロードモジュールを簡単に修正す
ることができ、また対応が明確なため保守性に富む。
【0017】
【実施例】図1はこの発明の一実施例に係るロードモジ
ュールのパッチ修正装置の構成を示すブロック図であ
る。図1に示すロードモジュールのパッチ修正装置は、
例えばVLIW方式対応のロードモジュール(LMF)
をパッチ修正するためのもので、ファイル装置1、メモ
リ装置2、端末装置3および演算装置4から構成され
る。
【0018】ファイル装置1は、既存のソースファイル
の一部を修正した(例えばシステム記述言語で記述され
ている)修正版ソースファイル11、既存ソースファイ
ル(元の修正前のソースファイル)に対応したVLIW
対応の修正対象ロードモジュール、即ち同ソースファイ
ルをコンパイルして作成された修正対象ロードモジュー
ル(以下、修正対象LMFと称する)12、およびロー
ドモジュール修正用プログラム(以下、LMF修正用プ
ログラムと称する)13等を格納するのに用いられる。
LMF12には、モジュール修正のための空き領域であ
るパッチ領域123が確保されている。
【0019】メモリ装置2は、演算装置4が実行するプ
ログラム類の他、修正版ロードモジュールのイメージ
(以下、修正版LMFイメージと称する)21等を記憶
するのに用いられる。この修正版LMFイメージ21
は、修正版ソースファイル11および修正対象LMF1
2をもとに演算装置4(内の後述するパッチ修正機構4
0)によって作成されるものである。
【0020】端末装置3は、プログラマ等の入力操作に
用いられるもので、特に、修正対象LMF12の作成に
用いられたソースファイル(元のソースファイル)の一
部を修正した修正版ソースファイル11とその修正範囲
111の指定入力、および修正対象LMF12と同LM
F12中の修正対象箇所121に対応する元のソースフ
ァイルの修正箇所の指定入力等に用いられる。
【0021】演算装置4は、メモリ装置2に記憶されて
いるプログラムに従う処理を行うもので、特に修正対象
LMF12のパッチ修正を修正版ソースファイル11を
用いて行うためのパッチ修正機構40を有する。
【0022】パッチ修正機構40は、メモリ装置2に記
憶されているパッチ修正ルーチンと同ルーチンを実行す
る演算装置4により実現される機能ブロックであり、ミ
ニコンパイル部41、基本ブロック(Basic Block )検
出部(以下、BB検出部と称する)42、修正版ロード
モジュールイメージ作成部(以下、修正版LMFイメー
ジ作成部と称する)43、およびLMF修正用プログラ
ム作成部44から構成される。
【0023】ミニコンパイル部41は、BB検出部42
により修正版ソースファイル11から切出されたミニコ
ンパイル対象BBをコンパイルして修正版BBを得る。
BB検出部42は、修正版ソースファイル11中の指定
の修正範囲111を含むBB(コンパイル時の最適化の
最小単位である基本ブロック)を検出してミニコンパイ
ル対象BBとして切出す処理と、修正対象LMF12中
の指定の修正対象箇所121を含むBBを修正対象BB
として検出する処理とを行う。
【0024】修正版LMFイメージ作成部43は、ミニ
コンパイル部41により求められた修正版BBを用いて
修正対象LMF12中の修正対象BBを修正し、修正対
象LMF12に修正版BBの修正内容が反映された修正
版LMF(ロードモジュール)のイメージ(修正版LM
Fイメージ)21を作成する。
【0025】LMF修正用プログラム作成部44は、修
正対象LMF12中の修正対象部分と修正版LMFイメ
ージ21中の修正部分とを検出して、両者の対応関係を
示す修正対応リストを作成し、同リストをもとに修正対
象LMF12と同種のLMF(客先の計算機に搭載され
ているLMF)を修正版LMFイメージ21の通りに書
換えるためのLMF修正用プログラム13を作成する。
【0026】次に、図1の構成においてVLIW対応L
MFである修正対象LMF12をパッチ修正する場合の
動作を、図2のフローチャートおよび図3の動作説明図
を参照して説明する。
【0027】まず、客先のVLIW型並列処理方式を適
用する計算機に搭載されているOSロードモジュール
(LMF)の不具合箇所が発見された場合、そのLMF
を提供したメーカー側のプログラマは、そのLMF作成
のもとになったソースファイル(既存ソースファイル)
の該当部分を修正する。そしてプログラマは、図1の装
置を用いることで、修正されたソースファイル(修正版
ソースファイル)11と、不具合箇所が発見されたLM
Fと同一のメーカー側のLMF(修正対象LMF)12
とから、客先のLMFを修正するためのLMF修正用プ
ログラム13を作成するための操作を行う。
【0028】即ちプログラマは、ファイル装置1に修正
版ソースファイル11と修正対象LMF12とが格納さ
れているものとすると、パッチ修正機構40への入力と
して、修正対象LMF12と同LMF12中での修正対
象箇所121に対応する既存ソースファイルの修正箇所
(即ち元のソースファイルを修正して修正版ソースファ
イル11を作成した際の、元のソースファイルの修正箇
所)、および修正版ソースファイル11と同ファイル1
1中での修正部分の範囲(修正範囲)111を、端末装
置3から指定する。ここで、修正対象LMF12中での
修正対象箇所121に対応する元のソースファイルの修
正箇所は、同ファイルの行番号で指定される。また、修
正版ソースファイル11の修正範囲111も、行番号で
指定される。
【0029】端末装置3は、プログラマの指定に従っ
て、修正対象LMF12とその修正対象箇所121に対
応した元のソースファイルの修正箇所、および修正版ソ
ースファイル11とその修正範囲111の指定情報を演
算装置4のパッチ修正機構40に入力する(ステップS
1)。
【0030】すると、まずパッチ修正機構40内のBB
検出部42が起動される。BB検出部42は、端末装置
3から指定入力された修正版ソースファイル11と(同
ファイル11の行番号で指定された)その修正範囲11
1の情報をもとに、その修正範囲111が含まれるBB
を検出し、図3において符号31で示すように、ミニコ
ンパイル対象BB112として修正版ソースファイル1
1から切出す(ステップS2)。このミニコンパイル対
象BB112はミニコンパイル部41に渡される。
【0031】ミニコンパイル部41は、BB検出部42
によって修正版ソースファイル11から切出されたミニ
コンパイル対象BB112、即ち指定の修正範囲111
を含むBB中のコードを、図3において符号32で示す
ようにコンパイル(ミニコンパイル)し、VLIW対応
のオブジェクトコードを修正版BB113として作成す
る(ステップS3)。この修正版BB113は、修正版
ソースファイル11中の指定の修正範囲111を含むB
B、即ち修正部分を含む、コンパイル時の最適化の最小
単位である基本ブロックに対するコンパイル(ミニコン
パイル)結果であることから、高度の並列化・最適化が
正しく行われたものである。この修正版BB113は、
修正版LMFイメージ作成部43に渡される。
【0032】するとBB検出部42が再び検出される。
BB検出部42は、端末装置3から指定入力された修正
対象LMF12とその修正対象箇所121に対応した元
のソースファイルの修正箇所の情報をもとに、修正対象
LMF12上のその修正対象箇所121のコードを含む
BBを、図3において符号33で示すように修正対象B
B122として検出する(ステップS4)。この修正対
象BB検出の詳細を以下に説明する。
【0033】まず、VLIW対応のLMF(ロードモジ
ュール)中には、一般にシンボル情報が記述されてい
る。このシンボル情報は、LMFの各BB毎に、そのB
Bが同LMFの作成に用いられたソースファイルのどの
行番号の範囲に対応しているかを記述したものであり、
修正対象LMF12中にも存在する。そこでBB検出部
42は、この修正対象LMF12中のシンボル情報と、
端末装置3から指定入力された修正対象箇所121に対
応した元のソースファイルの修正箇所の情報をもとに、
修正対象LMF12上のその修正対象箇所121のコー
ドを含むBBを、修正対象BB122として検出するよ
うにしている。
【0034】BB検出部42によって検出された修正対
象BB122の情報は修正版LMFイメージ作成部43
に渡される。これにより修正版LMFイメージ作成部4
3は、修正対象LMF12のコピーをメモリ装置2上に
とった後、ミニコンパイル部41から渡された修正版B
B113のサイズ(修正版BBサイズ)Sa と、BB検
出部42によって検出された修正対象BB122のサイ
ズ(修正対象BBサイズ)Sb との大小を比較し(ステ
ップS5)、その比較結果に応じて以下に述べる修正版
LMFイメージ作成を行う。
【0035】まず、修正版BBサイズSa が修正対象B
BサイズSb 以下(Sa ≦Sb )の場合、修正版LMF
イメージ作成部43は、修正版BB113の内容を、メ
モリ装置2上にとった修正対象LMF12のコピーの修
正対象BB122の領域に、その開始位置を一致させて
上書きする(ステップS6)。これにより、修正対象L
MF12に修正版BB113の内容が反映された修正版
LMFイメージ21が、図3に示すように作成される。
なお、Sa <Sb の場合には、上書きされない領域が発
生し、その領域に修正対象BB122中の対応コード部
分が残るため、上書きした修正版BB113の内容の後
に、図3に示すように、修正対象BB122の次のBB
へのJUMP(ジャンプ)命令211を書込む必要があ
る。
【0036】これに対して、修正版BBサイズSa が修
正対象BBサイズSb より大きい(Sa >Sb の)場合
には、修正版LMFイメージ作成部43は、メモリ装置
2上にとった修正対象LMF12のコピーのパッチ領域
123を利用して、修正版LMFイメージ21を以下に
述べるように作成する。
【0037】まず修正版LMFイメージ作成部43は、
修正対象LMF12のコピーの修正対象BB122の領
域の開始位置に、図3に示すように、同コピー上のパッ
チ領域123へ飛ぶためのJUMP命令212を書込む
(ステップS7)。即ち修正版LMFイメージ作成部4
3は、修正対象BB122を、パッチ領域123へのJ
UMP命令212のみに書換える。
【0038】次に修正版LMFイメージ作成部43は、
図3に示すように、修正版BB113の内容を、パッチ
領域123に、その開始位置を一致させて書込むと共
に、その後に、修正対象BB122の次のBBへのJU
MP命令213を書込む(ステップS9)。この結果、
メモリ装置2上にとられた修正対象LMF12のコピー
が、修正対象LMF12を修正した修正版LMFイメー
ジ21に書換えられたことになる。ここでは、パッチ領
域123に書込まれた修正版BB113(の内容)がサ
ブルーチン的な働きをすることになる。この後は、パッ
チ領域123の残りの領域が新たなパッチ領域となる。
【0039】修正LMFイメージ作成部43により修正
版LMFイメージ21が作成されると、LMF修正用プ
ログラム作成部44が起動される。このLMF修正用プ
ログラム作成部44は、LMFイメージ作成部43によ
り作成された修正版LMFイメージ21と修正対象LM
F12とを比較して、修正対象LMF12中の修正対象
部分と修正版LMFイメージ21中の修正部分とを検出
することにより、両者の対応関係を示す修正対応リスト
を作成し、同リストをもとに修正対象LMF12と同種
のLMF(客先の計算機に搭載されているLMF)のコ
ードを修正版LMFイメージ21の通りに書換えるため
のLMF修正用プログラム13を作成する(ステップS
9)。
【0040】ここで、修正版BBサイズSa ≦修正対象
BBサイズSb の場合には、上記の比較は、BB検出部
42により検出された修正対象LMF12中の修正対象
BB122の内容と、修正版LMFイメージ21中の対
応する領域の内容(修正版BB113の内容)との間で
行えばよい。また、修正版BBサイズSa >修正対象B
BサイズSb の場合には、上記の比較は、BB検出部4
2により検出された修正対象LMF12中の修正対象B
B122の内容と、修正版LMFイメージ21中の対応
する領域の内容(修正版BB113の内容)およびパッ
チ領域123の内容との間で行えばよい。
【0041】LMF修正用プログラム作成部44によっ
て作成されたLMF修正用プログラム13はファイル装
置1に保存される。なお、前記実施例では、説明の便宜
上、修正版ソースファイル11の修正部分を含むBB
(ミニコンパイル対象BB)がBB112の1つである
ものとしたが、当該修正部分が複数のBBにまたがって
いる場合、即ち複数のミニコンパイル対象BBが切り出
される場合にも、同様に適用できる。また、修正版ソー
スファイル11の修正部分が複数箇所の場合にも同様に
適用可能である。
【0042】また、前記実施例では、パッチ修正機構4
0内にLMF修正用プログラム作成部44を設け、同作
成部44にてLMF修正用プログラム13を作成するも
のとして説明したが、これに限るものではない。例え
ば、修正対応リストを参照してLMFを修正する、当該
リストの内容に無関係のLMF修正用プログラムを用意
することにより、修正対応リストのみを作成するだけで
もよい。
【0043】また、前記実施例では、VLIW対応LM
Fのパッチ修正に実施した場合について説明したが、こ
の発明は、他の高度並列化・最適化LMFのパッチ修正
にも応用可能である。
【0044】
【発明の効果】以上詳述したようにこの発明によれば、
外部指定された修正版ソースファイルの修正範囲を含む
BB(コンパイル時の最適化の最小単位である基本ブロ
ック)を同ファイルから切出して、そのBBをコンパイ
ル(ミニコンパイル)し、そのコンパイル結果(修正版
BB)を用いて、元のソースファイルに対応した修正対
象LMF(ロードモジュール)中の修正対象部分を含む
BBを修正することで、修正対象LMFに修正版BBの
修正内容が反映された修正版LMFのイメージを作成す
る構成としたので、次のような作用効果を得ることがで
きる。
【0045】(1)LMFのパッチ修正が修正版ソース
ファイルの修正部分を含むBBに対するコンパイルの結
果を用いて行えるため、VLIW方式など高度並列化・
最適化が要求されるLMFに対する、高度並列化・最適
化に起因する修正時のミスをなくすことができ、修正部
分の並列化・最適化が図れる。
【0046】(2)修正版ソースファイルをもとに作成
された修正版LMFのイメージと修正対象LMFとで
は、修正版BB上のコードと修正対象BB上のコードと
の間(修正版BBのサイズが修正対象BBより大きい場
合には、更にパッチ領域間)でのみ一部対応が変化する
だけであり、その対応リスト(修正対応リスト)は小規
模のもので済むことから、このリストをもとに、例えば
客先の計算機に搭載されているロードモジュールを簡単
に修正することができ、また対応が明確なため保守性に
富む。
【図面の簡単な説明】
【図1】この発明の一実施例に係るロードモジュールの
パッチ修正装置の構成を示すブロック図。
【図2】同実施例におけるLMF(ロードモジュール)
のパッチ修正処理手順を説明するためのフローチャー
ト。
【図3】上記LMFパッチ修正処理でのデータの流れを
説明するための図。
【符号の説明】
1…ファイル装置、2…メモリ装置、3…端末装置(修
正範囲入力手段)、4…演算装置、11…修正版ソース
ファイル、12…修正対象LMF(ロードモジュー
ル)、13…LMF修正用プログラム、21…修正版L
MFイメージ、40…パッチ修正機構、41…ミニコン
パイル部、42…BB(基本ブロック)検出部、43…
修正版LMFイメージ作成部、44…LMF修正用プロ
グラム作成部、111…修正範囲、112…ミニコンパ
イル対象BB、113…修正版BB、121…修正対象
箇所、122…修正対象BB、123…パッチ領域、2
11〜213…JUMP命令。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 既存のソースファイルの一部を修正した
    修正版ソースファイルの修正範囲を指定入力するための
    修正範囲入力手段と、 この修正範囲入力手段により指定入力された修正範囲を
    含む、コンパイル時の最適化の最小単位である基本ブロ
    ックを、前記修正版ソースファイル中で検出して、部分
    的なコンパイルの対象となるミニコンパイル対象基本ブ
    ロックとして切出す第1の基本ブロック検出手段と、 この第1の基本ブロック検出手段により切出された前記
    ミニコンパイル対象基本ブロックをコンパイルして部分
    的なコンパイル結果である修正版基本ブロックを得るミ
    ニコンパイル手段と、 前記既存ソースファイルに対応した修正対象ロードモジ
    ュールの中から修正対象部分を含む基本ブロックを修正
    対象基本ブロックとして検出する第2の基本ブロック検
    出手段と、 前記修正版基本ブロックを用いて前記修正対象ロードモ
    ジュール中の前記修正対象基本ブロックを修正して、前
    記修正対象ロードモジュールに前記修正版基本ブロック
    の修正内容が反映された修正版ロードモジュールのイメ
    ージを作成する修正版ロードモジュールイメージ作成手
    段とを具備することを特徴とするロードモジュールのパ
    ッチ修正装置。
  2. 【請求項2】 前記修正対象ロードモジュールと前記修
    正版ロードモジュールイメージとを比較して、前記修正
    対象ロードモジュール中の修正対象部分と、対応する前
    記修正版ロードモジュールイメージ中の修正部分とを検
    出し、両者の対応関係を示す修正対応リストを作成する
    修正対応リスト作成手段を更に具備し、前記修正対応リ
    ストをもとに修正対象ロードモジュールを書換えること
    を特徴とする請求項1記載のロードモジュールのパッチ
    修正装置。
  3. 【請求項3】 前記修正対象ロードモジュールには、空
    き領域であるパッチ領域が確保されており、前記修正版
    ロードモジュールイメージ作成手段は、前記修正版基本
    ブロックのサイズが前記修正対象基本ブロック以下なら
    ば、前記修正版基本ブロックを前記修正対象ロードモジ
    ュール中の前記修正対象基本ブロックに上書きし、前記
    修正版基本ブロックのサイズが前記修正対象基本ブロッ
    クより大きいならば、前記修正対象基本ブロックを、前
    記修正対象ロードモジュール中の前記パッチ領域への第
    1のジャンプ命令のみに書換えると共に、同パッチ領域
    に、前記修正版基本ブロックと、前記修正対象基本ブロ
    ックの次の基本ブロックへの第2のジャンプ命令とを書
    込むことを特徴とする請求項1または請求項2に記載の
    ロードモジュールのパッチ修正装置。
  4. 【請求項4】 既存のソースファイルの一部を修正した
    修正版ソースファイルの修正範囲の入力を受付ける第1
    のステップと、 この第1のステップで受付けた修正範囲を含む、コンパ
    イル時の最適化の最小単位である基本ブロックを、前記
    修正版ソースファイルから検出して、部分的なコンパイ
    ルの対象となるミニコンパイル対象基本ブロックとして
    切出す第2のステップと、 この第2のステップで切出された前記ミニコンパイル対
    象基本ブロックをコンパイルして部分的なコンパイル結
    果である修正版基本ブロックを得る第3のステップと、 前記既存ソースファイルに対応した修正対象ロードモジ
    ュールの中から修正対象部分を含む基本ブロックを修正
    対象基本ブロックとして検出する第4のステップと、 前記第3のステップで得られた前記修正版基本ブロック
    を用いて前記第4のステップで検出された前記修正対象
    ロードモジュール中の前記修正対象基本ブロックを修正
    して、前記修正対象ロードモジュールに前記修正版基本
    ブロックの修正内容が反映された修正版ロードモジュー
    ルのイメージを作成する第5のステップとを具備するこ
    とを特徴とするロードモジュールのパッチ修正方法。
  5. 【請求項5】 前記修正対象ロードモジュールと前記第
    5のステップで作成された前記修正版ロードモジュール
    イメージとを比較して、前記修正対象ロードモジュール
    中の修正対象部分と、対応する前記修正版ロードモジュ
    ールイメージ中の修正部分とを検出し、両者の対応関係
    を示す修正対応リストを作成する第6のステップを更に
    具備し、前記修正対応リストをもとに修正対象ロードモ
    ジュールを書換えることを特徴とする請求項4記載のロ
    ードモジュールのパッチ修正方法。
  6. 【請求項6】 前記第5のステップにおいて、前記修正
    版基本ブロックのサイズが前記修正対象基本ブロック以
    下ならば、前記修正版基本ブロックを前記修正対象ロー
    ドモジュール中の前記修正対象基本ブロックに上書き
    し、前記修正版基本ブロックのサイズが前記修正対象基
    本ブロックより大きいならば、前記修正対象基本ブロッ
    クを、前記修正対象ロードモジュール中に確保された空
    き領域であるパッチ領域への第1のジャンプ命令のみに
    書換えると共に、同パッチ領域に、前記修正版基本ブロ
    ックと、前記修正対象基本ブロックの次の基本ブロック
    への第2のジャンプ命令とを書込むことを特徴とする請
    求項4または請求項5に記載のロードモジュールのパッ
    チ修正方法。
JP5126819A 1993-05-28 1993-05-28 ロードモジュールのパッチ修正装置および方法 Pending JPH06337780A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5126819A JPH06337780A (ja) 1993-05-28 1993-05-28 ロードモジュールのパッチ修正装置および方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5126819A JPH06337780A (ja) 1993-05-28 1993-05-28 ロードモジュールのパッチ修正装置および方法

Publications (1)

Publication Number Publication Date
JPH06337780A true JPH06337780A (ja) 1994-12-06

Family

ID=14944738

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5126819A Pending JPH06337780A (ja) 1993-05-28 1993-05-28 ロードモジュールのパッチ修正装置および方法

Country Status (1)

Country Link
JP (1) JPH06337780A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883174A (ja) * 1994-09-13 1996-03-26 Nec Commun Syst Ltd パッチ作成処理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0883174A (ja) * 1994-09-13 1996-03-26 Nec Commun Syst Ltd パッチ作成処理システム

Similar Documents

Publication Publication Date Title
US11579856B2 (en) Multi-chip compatible compiling method and device
US6594822B1 (en) Method and apparatus for creating a software patch by comparing object files
US5361357A (en) Method and apparatus for optimizing computer file compilation
US6658656B1 (en) Method and apparatus for creating alternative versions of code segments and dynamically substituting execution of the alternative code versions
US8694977B2 (en) Distributed compiling process with instruction signature support
US7000151B2 (en) System and method for providing run-time type checking
CN112882718B (zh) 编译处理方法、装置、设备及存储介质
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
KR20020070809A (ko) 포스트-링크 코드 최적화
CN111984307A (zh) 一个自动修复基线版本的处理方法及装置
US6086622A (en) Method and apparatus for converting an architecture of a program and method, and apparatus for debugging a program by using them
EP1202171A2 (en) Compile method and program recording medium
CN118069143B (zh) 访存处理方法、装置、电子设备及存储介质
JPH06337780A (ja) ロードモジュールのパッチ修正装置および方法
JPH11110256A (ja) プログラムデバッグ装置、プログラムデバッグ方法及びその方法を記録したコンピュータ読取り可能な記録媒体
JP4488227B2 (ja) 可変性を有する制御部品のデバッグ方法、及びデバッグ支援装置
US20040139425A1 (en) Method and apparatus for deriving multiple test source files from one source file
JP2907129B2 (ja) パッチ作成システム
JPH1185536A (ja) 原始プログラムのエラー自動修正装置及び方法
JP3094475B2 (ja) プログラム検証方法
CN115185834B (zh) 一种基于GNU Make的构建依赖错误检测方法
JPH10293683A (ja) プログラムの比較解析装置、プログラムの比較解析方法、及びプログラムの比較解析プログラムを記録した機械読み取り可能な記録媒体
JP3368795B2 (ja) コンパイル制御方法、コンパイル装置及び記録媒体
US7062400B2 (en) Apparatus and program for designing system LSI, and method for verifying integrity of the program for designing system LSI
JPH09265385A (ja) ソフトウェア整合性管理方法