JPH10307719A - High-level language patch preparation system - Google Patents

High-level language patch preparation system

Info

Publication number
JPH10307719A
JPH10307719A JP9115412A JP11541297A JPH10307719A JP H10307719 A JPH10307719 A JP H10307719A JP 9115412 A JP9115412 A JP 9115412A JP 11541297 A JP11541297 A JP 11541297A JP H10307719 A JPH10307719 A JP H10307719A
Authority
JP
Japan
Prior art keywords
patch
allocation
load module
function
data
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
JP9115412A
Other languages
Japanese (ja)
Inventor
Yasuo Mizushima
泰雄 水島
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 Communication Systems Ltd
Original Assignee
NEC Communication Systems 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 NEC Communication Systems Ltd filed Critical NEC Communication Systems Ltd
Priority to JP9115412A priority Critical patent/JPH10307719A/en
Publication of JPH10307719A publication Critical patent/JPH10307719A/en
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To provide a high-level language patch preparation system which attains the provision of patch dealing system using a high-level language in place of a conventional patch dealing system based on assembler language and machine word, enables quick dealing and required quality maintenance through irreducibly minimum correction and can improve maintainability and reliability. SOLUTION: In this system, a database preparing device 11 prepares out a function variable allocation data base 22 for patch load module preparation management through plural load modules 21 to become patch objects. Then, a patch data preparing device 13 extracts out data corresponding to the same allocation address and size as a patch load module 27 prepared this time from the load modules 21 consisting of the existent system and a patch load module 27 prepared the last time based on the information of function variable allocation data base 22 outputted from this data base preparing device 11 and prepares out this patch load module 27 prepared this time as an old memory image file 28.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、大規模交換機シス
テム等におけるプログラムの保守に係り、ロードモジュ
ールをソースプログラム(コンパイル前の原始プログラ
ム)から作成するパッチによって修正可能とした高級言
語パッチ作成システムに関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to maintenance of a program in a large-scale switching system and the like, and relates to a high-level language patch creating system in which a load module can be modified by a patch created from a source program (a source program before compilation). .

【0002】[0002]

【従来の技術】従来、プログラミング言語で書かれた実
行可能なオブジェクト(目的)プログラムであるロード
モジュールの一般的な修正方法として、修正対象のソー
スファイルを修正してコンパイラによる翻訳後、再びロ
ードモジュールを構築し直す方式と、当該ロードモジュ
ールから取り出されたメモリイメージの一部を直接修正
するパッチ対処方式がある。
2. Description of the Related Art Conventionally, as a general method of correcting a load module which is an executable object (object) program written in a programming language, a source file to be corrected is corrected, translated by a compiler, and then reloaded. And a patch handling method that directly corrects a part of the memory image extracted from the load module.

【0003】前者のロードモジュール再構築方式の場
合、修正による変更量の多少にかかわらず、ロードモジ
ュールの再作成を要する。そのため、大規模交換機シス
テムなどにあって特に高信頼性を要求されるシステムで
は、短期間でシステム全体の品質維持を実証することが
困難である。
In the former load module rebuilding method, the load module needs to be recreated regardless of the amount of change due to the modification. Therefore, it is difficult to prove the maintenance of the quality of the entire system in a short period of time in a system requiring high reliability particularly in a large-scale switching system.

【0004】つまり、修正変更部分が少ない場合でも、
システムを構成するロードモジュール全体が再構築され
るため、この再構築されたロードモジュールは、以前か
ら駆動してきたものとは全く別体として考える必要があ
ることである。結果、品質維持を実証するうえで、シス
テム全体に対する再検査と再評価試験が必要になるとい
った煩わしさがある。
[0004] In other words, even if there are few corrections and changes,
Since the entire load module constituting the system is reconstructed, it is necessary to consider the reconstructed load module completely different from the one that has been driven before. As a result, in order to demonstrate the quality maintenance, there is an annoyance that a re-inspection and a re-evaluation test are required for the entire system.

【0005】一般に、システム製品の保守にあたって
は、要求に迅速に対応して高品質を維持しなければなら
ない。ところが、そうした従来からのロードモジュール
再構築方式では、前述のように多大な検査および評価試
験の工数が嵩み、顧客対応に支障をきたす不具合があ
る。
In general, when maintaining system products, it is necessary to quickly respond to requests and maintain high quality. However, such a conventional load module rebuilding method has a problem that a large number of inspection and evaluation test steps are required as described above, which hinders customer service.

【0006】一方、後者のパッチ対処方式の場合、シス
テムの修正部分を最小限に止めるために、現状では交換
機システム等の機械語のメモリイメージが出力装置等で
取り出される。これに基づいて、図5に示すように、人
手操作により変更個所と関連個所の割付番地を求める。
さらに、取り出したメモリイメージをアセンブラ言語に
変換し、これにアセンブラ言語と機械語による修正を施
し、パッチを投入するために必要なシステム上のメモリ
領域を確保する。すなわち、直接実行形式のパッチイメ
ージデータを作成して交換機システム等に投入する方法
をとっている。
On the other hand, in the case of the latter patch handling system, a memory image of a machine language of an exchange system or the like is currently taken out by an output device or the like in order to minimize the correction portion of the system. Based on this, as shown in FIG. 5, the allocation addresses of the changed part and the related part are obtained by manual operation.
Furthermore, the extracted memory image is converted into an assembler language, corrected by an assembler language and a machine language, and a memory area on a system necessary for applying a patch is secured. That is, a method is employed in which patch image data in an executable format is directly created and input to an exchange system or the like.

【0007】修正された変更部分を除く他の部分は、既
存のロードモジュールそのものの状態である。その点、
前者方式で提示されたシステム全体に対して再検査と再
評価試験が不要となる利点がある。つまり、この場合は
修正による変更部分と関連部分のみを対象に再検査と評
価試験をすればよい。
[0007] The other parts except the modified part are the states of the existing load module itself. That point,
There is an advantage that re-examination and re-evaluation test are not required for the entire system presented in the former method. In other words, in this case, the re-examination and the evaluation test need only be performed on the part changed by the correction and the related part.

【0008】しかしながら、現実問題として、ロードモ
ジュールのメモリイメージに対して直に修正を行うため
のアセンブラ言語や機械語に習熟した技術者は限られて
おり、運用を困難にしている。
However, as a practical problem, engineers who are proficient in assembler language or machine language for directly correcting a memory image of a load module are limited, which makes operation difficult.

【0009】近年のコンパイラ技術の伸展に伴い、大規
模で高信頼性を要求されるシステムソフトウエアの大部
分は、高級言語を用いて書かれるようになっている。ま
た同時に、CPU(プロセッサ)の高性能化に伴い、ア
センブラ言語と機械語によるプログラム作成はかなり高
度な知識が要求される。このように、高級言語化が進む
今日において、アセンブラ言語と機械語に習熟した技術
者の減少化傾向は、従前からのパッチ対処方式では対応
しきれない。
With the recent development of compiler technology, most of the large-scale and high-reliability system software has been written using high-level languages. At the same time, as the performance of CPUs (processors) increases, the creation of programs in assembler language and machine language requires considerably higher knowledge. As described above, in today's high-level languages, the declining trend of engineers who are proficient in assembler languages and machine languages cannot be met by conventional patch handling methods.

【0010】以上から、品質維持と迅速対応による処理
といった以前の問題として、運用を簡易に実現するため
に、高級言語レベルでパッチ対処できるようにしたパッ
チイメージデータ作成の実現手段が望まれるようになっ
てきている。
[0010] From the above, as an earlier problem such as quality maintenance and quick response processing, in order to easily realize the operation, a means for creating patch image data capable of dealing with a patch at a high-level language level is desired. It has become to.

【0011】この実現にむけて、例えば特開平1−21
4928号公報に記載の高級言語パッチ作成装置が提案
されている。この場合、図1を参考にすると、パッチデ
ータ作成装置によって修正元のパッチソースファイルか
ら修正データファイルを作成する。そしてさらに、オブ
ジェクトファイル作成手段によってオブジェクトファイ
ルに変換し、変換後にリンクを行うことでパッチ挿入イ
メージを有するロードモジュールを作成し、かつパッチ
挿入イメージのカードファイルを作成する。
To achieve this, see, for example, Japanese Patent Application Laid-Open No. 1-221.
Japanese Patent No. 4928 discloses a high-level language patch creation device. In this case, referring to FIG. 1, the patch data creation device creates a correction data file from the patch source file of the correction source. Further, the object file is converted into an object file by the object file creating means, and a link module is created after the conversion to create a load module having a patch inserted image and a card file of the patch inserted image.

【0012】[0012]

【発明が解決しようとする課題】しかしながら、係る公
報に記載された装置をもってしても、前述のようなパッ
チ対処方式の抱える諸問題が基本的には解決されていな
い。
However, even with the apparatus described in this publication, the above-mentioned problems of the patch handling system have not been basically solved.

【0013】本発明の目的は、従来のアセンブラ言語と
機械語によるパッチ対処方式に代えて、高級言語を用い
たパッチ対処方式を実現し、必要最小限の修正により迅
速対応および所要の品質維持が可能となり、保守性と信
頼性が高められる高級言語パッチ作成システムを提供す
ることにある。
An object of the present invention is to realize a patch handling system using a high-level language instead of the conventional patch handling system using an assembler language and a machine language. It is an object of the present invention to provide a high-level language patch creation system that is capable of improving maintainability and reliability.

【0014】[0014]

【課題を解決するための手段】本発明の高級言語パッチ
作成システムは、パッチ対象となる複数のロードモジュ
ールによってパッチロードモジュール作成管理用の関数
変数割付データベースを作成して出力するデータベース
作成装置と、このデータベース作成装置から出力された
前記関数変数割付データベースの情報に基づいて、既存
システムを構成する前記ロードモジュールと前回作成の
パッチロードモジュールから、今回作成のパッチロード
モジュールと同一の割付番地とサイズに相当するデータ
を抽出して出力すると共に、この今回作成のパッチロー
ドモジュールをオールドメモリイメージファイルとして
作成して出力するパッチデータ作成装置と、を備えてな
っている。
According to the present invention, there is provided a high-level language patch creation system comprising: a database creation device for creating and outputting a function variable assignment database for patch load module creation management by a plurality of load modules to be patched; Based on the information of the function variable assignment database output from the database creation device, the load module constituting the existing system and the previously created patch load module are converted to the same allocation address and size as the currently created patch load module. A patch data creation device for extracting and outputting the corresponding data, and creating and outputting the patch load module created this time as an old memory image file.

【0015】この場合、前記パッチデータ作成装置とし
ては、パッチ対象となる複数のパッチソースファイルを
翻訳して作成した複数のパッチオブジェクトファイル
と、このパッチオブジェクトファイルに対していかなる
パッチ処理を行うかを指示するパッチリンク指示情報フ
ァイルと、前回までのパッチロードモジュールのそれぞ
れから出力された信号を受け取り、関数または変数によ
るパッチ対象データの割付アドレスを算出して既存領域
またはパッチ領域を割り当てて前記既存システムに結合
するように構成されている。
[0015] In this case, the patch data creation device includes a plurality of patch object files created by translating a plurality of patch source files to be patched, and what patch processing is to be performed on the patch object files. A patch link instruction information file to be instructed, and a signal output from each of the previous patch load modules are received, an allocation address of patch target data is calculated by a function or a variable, and an existing area or a patch area is assigned to the existing system. It is configured to be coupled to.

【0016】また、ここで、前記パッチリンク指示情報
ファイルは、関数または変数によるパッチ対象データに
対して既存システム上のものを修正して変更するか、新
規追加または削除するかのいずれかによってパッチ割付
を自動的に指示可能となっている。この場合、自動で行
われるパッチ割付としては、パッチ対象データのサイズ
を既存の割付サイズと比較して大小の判断を行い、小さ
ければ既存の割付領域に被せて同一の割付番地を割り当
て、大きければ予め準備されたパッチ領域内の空き領域
を求めて確保するようになっている。
Here, the patch link instruction information file may be modified by modifying the data to be patched by a function or a variable on the existing system, or may be newly added or deleted. Assignment can be automatically instructed. In this case, as the patch allocation performed automatically, the size of the patch target data is compared with the existing allocation size, and the size is determined.If the size is smaller, the same allocation address is allocated over the existing allocation area, A free area in a patch area prepared in advance is obtained and secured.

【0017】また、前記データベース作成装置として
は、複数のロードモジュールを構成情報を管理するロー
ドモジュール構成管理部、パッチ領域および過去のパッ
チ履歴を管理するパッチエリア管理部、各種エントリア
ドレスおよび割付アドレスを管理するエントリアドレス
管理部の各部での作成処理によって関数変数割付データ
ベースを出力するように構成されている。
Further, the database creation device includes a load module configuration management unit for managing configuration information of a plurality of load modules, a patch area management unit for managing patch areas and past patch histories, and various entry addresses and allocation addresses. It is configured to output a function variable allocation database by a creation process in each section of the entry address management section to be managed.

【0018】したがって、従来のパッチ対処方式ではロ
ードモジュールの更新を行うが、本発明では、パッチ単
位の新たなロードモジュールの作成とパッチ投入前のイ
メージファイルを同じくロードモジュールとして生成す
る機能を具備している。
Therefore, the load module is updated in the conventional patch handling method. However, the present invention has a function of creating a new load module for each patch and generating an image file before applying the patch as a load module. ing.

【0019】[0019]

【発明の実施の形態】以下、本発明による高級言語パッ
チ作成システムの実施の形態について図面を参照して詳
細に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of a high-level language patch creation system according to the present invention will be described below in detail with reference to the drawings.

【0020】図1は、本実施の形態の作成システム構成
を示すブロック図である。パッチ対象となる複数のロー
ドモジュール21を有し、これらを基にしてパッチロー
ドモジュール作成管理用のデータベースを作成するデー
タベース作成装置11を備えている。さらに、パッチデ
ータ作成装置13を有し、ここでは、複数のパッチソー
スファイル23をコンパイラ12で翻訳して複数のパッ
チオブジェクトファイル24を作成し、上記データベー
ス作成装置11から出力された関数変数割付情報データ
ベース22を受け取り、パッチリンク指示情報ファイル
25および前回までに作成済みの複数のパッチロードモ
ジュール26を受け取って処理を行い、変更対象データ
に対するパッチロードモジュール27と、これの割付領
域であるオールドメモリイメージファイル28をそれぞ
れ出力するようになっている。
FIG. 1 is a block diagram showing the configuration of a creation system according to the present embodiment. It has a plurality of load modules 21 to be patched, and includes a database creation device 11 that creates a database for patch load module creation management based on these. Further, a patch data creation device 13 is provided. Here, a plurality of patch source files 23 are translated by the compiler 12 to create a plurality of patch object files 24, and the function variable assignment information output from the database creation device 11 is output. A database 22 is received, a patch link instruction information file 25 and a plurality of patch load modules 26 created up to the previous time are received and processed, and a patch load module 27 for data to be changed and an old memory image which is an allocation area of the patch load module 27 are stored. The files 28 are respectively output.

【0021】内部構成として、一方のデータベース作成
装置11は、ロードモジュール構成管理部111、パッ
チエリア管理部112およびエントリアドレス管理部1
13等よりなっている。また、他方のパッチデータ作成
装置13としては、パッチエリア判別・確保手段13
1、関数・変数参照関連個所の番地割り出し手段13
2、リンク手段133、関数変数割付情報データベース
更新手段134、そしてオールドメモリイメージファイ
ル作成手段135等よりなっている。
As an internal configuration, one database creation device 11 includes a load module configuration management unit 111, a patch area management unit 112, and an entry address management unit 1
It is 13 mag. The other patch data creating device 13 includes a patch area determining / securing unit 13.
1. Means 13 for locating addresses related to function / variable reference
2, the link means 133, the function variable assignment information database updating means 134, the old memory image file creating means 135, and the like.

【0022】次に、以上の構成による本実施の形態につ
いて、図2のパッチ作成作業フローチャートと、図3の
パッチ投入元となる既存ロードモジュールのメモリ割付
イメージ、図4のパッチ投入後のメモリ割付イメージを
参照して一連のパッチ作成までの動作を説明する。
Next, with respect to the present embodiment having the above configuration, a patch creation work flowchart in FIG. 2, a memory allocation image of an existing load module as a patch input source in FIG. 3, and a memory allocation after patch input in FIG. The operation up to the creation of a series of patches will be described with reference to an image.

【0023】はじめに、図3に示すように、既存ロード
モジュールは、オブジェクトファイルα、オブジェクト
ファイルβ、オブジェクトファイルγがその順番で割り
付けられている。またメモリ上では、最後のオブジェク
トファイルの直後にパッチ投入用エリアが確保される。
既存ロードモジュールには、変数A及び関数F0、F
l、F2、FXが存在しており、そのうちの関数F0、
FXの修正変更と、変数Bの新規追加が発生している。
First, as shown in FIG. 3, in the existing load module, an object file α, an object file β, and an object file γ are allocated in that order. In the memory, a patch input area is secured immediately after the last object file.
The existing load module includes the variable A and the functions F0 and F
l, F2, FX exist, of which functions F0,
Correction and change of FX and addition of variable B have occurred.

【0024】そこで、図2において、先ず従来からのも
のと変わらない動作としてソースファイルが作成され
る。ソースファイル作成後、システムを構成する全ての
ロードモジュールをリンカを用いて構築する(ステップ
Al)。
Therefore, in FIG. 2, a source file is first created as an operation which is not different from the conventional one. After the source file is created, all load modules constituting the system are constructed using a linker (step Al).

【0025】本発明の場合はその後に直ちに保守に入ら
ず、データベース作成装置11を用いてパッチロードモ
ジュール作成管理用のデータベースを作成する(ステッ
プA2)。
In the case of the present invention, the maintenance is not immediately performed, but a database for managing the creation of patch load modules is created by using the database creating device 11 (step A2).

【0026】このデータベースは、ロードモジュール構
成情報管理部111によって、システムを構成する全て
のロードモジュール名とメモリ割付番地情報、割付サイ
ズ情報、そして個々のロードモジュールを構成するソー
スファイル名をロードモジュール構成情報として管理す
る。すなわち、既存ロードモジュール中の変数A、関数
F0、関数Fl、関数FX、関数F2の割付番地情報及
びサイズ情報、そしてパッチ投入用エリアの割付番地と
サイズ情報を管理する。
In this database, the load module configuration information management unit 111 stores the names of all load modules constituting the system, memory allocation address information, allocation size information, and source file names configuring individual load modules. Manage as information. That is, the allocation address information and the size information of the variable A, the function F0, the function F1, the function FX, and the function F2 in the existing load module, and the allocation address and the size information of the patch input area are managed.

【0027】関数F0としては、従来、関数FXの呼び
出しと変数Aを参照していたが、本実施の形態では、変
数Aの参照を変数Bに変更する。また、関数FXとして
は、従来、関数Flを呼び出していたが、関数F2も呼
び出すよう変更し、新たに変数Bも追加するパッチを投
入する。
Conventionally, the function F0 refers to the call of the function FX and the variable A. In this embodiment, the reference to the variable A is changed to the variable B. Further, as the function FX, the function Fl is conventionally called, but the function F2 is changed to be called, and a patch for adding a new variable B is input.

【0028】したがって、このデータベースの場合、パ
ッチエリア管理部112によって全てのロードモジュー
ル中に含まれる関数・変数の既存割付番地とサイズの管
理、新たにパッチロードモジュールを割り付けるための
領域のメモリ番地とサイズを管理する。これ以降におい
て、既存のロードモジュール割付領域と新たな割付領域
の双方が、パッチロードモジュールの割付対象領域とし
て用いられる。
Therefore, in the case of this database, the patch area management unit 112 manages the existing allocation addresses and sizes of the functions and variables included in all the load modules, and the memory addresses of the areas for newly allocating patch load modules. Manage size. Thereafter, both the existing load module allocation area and the new allocation area are used as allocation target areas of the patch load module.

【0029】さらに、データベースには、エントリアド
レス管理部113によって、全てのロードモジュール中
に含まれる関数・変数の各種属性情報・アドレス情報を
管理するようになっている。この情報は、リンク手段1
33におけるパッチと既存システムの結合時に用いる。
Further, in the database, various attribute information and address information of functions and variables included in all load modules are managed by the entry address management unit 113. This information is provided by link means 1
Used when the patch in 33 is combined with the existing system.

【0030】なお、データベースは、システムを再構
築、つまりシステムを構成する全てのロードモジュール
を再度作成し直すか、または初めてシステムを構成する
全てのロードモジュールを作成した時点で作成するもの
とする。これは新規にロードモジュールを作成した湯合
は別として、もし既にパッチロードモジュールを作成お
よび投入を行っていたとしても、システムの再構築(シ
ステムを構成するロードモジュールを全て作り直し)を
行った場合、それらパッチは無効なもの(無効とすべき
もの)となるためである。つまり、以降パッチロードモ
ジュールの作成投入が続く限りにおいて、このデータベ
ースを更新使用して行くものとする。
The database is created when the system is rebuilt, that is, all the load modules constituting the system are recreated again, or when all the load modules constituting the system are created for the first time. This is aside from creating a new load module, even if a patch load module has already been created and submitted, even if the system is reconfigured (all load modules that make up the system are recreated). This is because those patches are invalid (should be invalidated). In other words, this database is updated and used as long as the creation and input of the patch load module continue thereafter.

【0031】次に、パッチ対象となるロードモジュール
修正について説明する。
Next, the modification of the load module to be patched will be described.

【0032】本発明では、ロードモジュールの修正に対
し、直接ロードモジュールを修正するのではなく、該当
するソースファイルの修正に戻ることで、高級言語レベ
ルでのパッチ対処を実現している。
In the present invention, the patch handling at the high-level language level is realized by returning to the modification of the corresponding source file instead of directly modifying the load module in response to the modification of the load module.

【0033】その実現方法は、ソースファイルを解析し
修正個所を定めた後、修正個所を含む関数・変数毎にそ
れぞれ抜き出し独立したソースファイルを作成し、これ
に修正を加える(ステップA3)。以後、このソースフ
ァイルをパッチソースファイル23と呼ぶ。
In order to realize the method, after analyzing a source file to determine a correction portion, an independent source file is extracted for each function / variable including the correction portion, and the source file is corrected (step A3). Hereinafter, this source file is referred to as a patch source file 23.

【0034】パッチは既存のソースファイル中の関数・
変数の修正変更のみならず、新規に関数・変数の追加も
発生する。この追加分に対しても同様に関数・変数毎に
独立したソースファイルを作成する。すなわち、まず関
数F0、関数FX及び変数Bのそれぞれ単位のソースフ
ァイルを作成しパッチ用に処理を修正しパッチソースフ
ァイルを作成する。
A patch is a function in an existing source file.
In addition to modifying and changing variables, new functions and variables are added. Similarly, an independent source file is created for each function / variable for this additional portion. That is, first, a source file is created for each of the function F0, the function FX, and the variable B, the processing is modified for a patch, and a patch source file is created.

【0035】さらに、パッチソースファイル23をコン
パイル12により翻訳し(ステップA4)、オブジェク
トファイル生成したものをパッチオブジェクトファイル
24とする。ソースファイルに修正変更が発生する場
合、同時に複数個所の修正変更が発生するケースも少な
くない。その場合、全ての修正変更個所に対しパッチソ
ースファイル23の作成及びパッチオブジェクトファイ
ル24の作成をこの時点で行っておく。
Further, the patch source file 23 is translated by the compile 12 (step A4), and the object file generated is used as the patch object file 24. When a correction change is made to a source file, there are many cases where a plurality of correction changes occur at the same time. In this case, the creation of the patch source file 23 and the creation of the patch object file 24 are performed at this time for all the modification / change portions.

【0036】ここで作成した複数のパッチオブジェクト
ファイル24に対して、ユーザはどのようなパッチを行
うのかをパッチロードモジュールとオールドメモリイメ
ージファイル作成装置13に指示するファイルとしてパ
ッチリンク指示情報ファイル25を作成する(ステップ
A5)。
The patch link instruction information file 25 is used as a file for instructing the patch load module and the old memory image file creation device 13 on what kind of patch the user should perform on the plurality of patch object files 24 created here. It is created (step A5).

【0037】パッチリンク指示情報ファイル25は、パ
ッチ対象の関数・変数に対し既存システム上のものを修
正変更するのか、新規に追加するのか、あるいは削除す
るのかを指示するものである。その際の指示方法は、ど
のロードモジュール中のどのソースファイルに属する
(あるいは追加する)関数・変数について変更・追加・
削除するのか、また意識的に指定する番地に割り付ける
のか、あるいは意識せずに自動的に割付を行うのか、ま
たこの変更に対する管理上の番号(ソフトウエアの変更
を記録するユーザ管理の番号)を定義する。
The patch link instruction information file 25 is for instructing whether a function / variable to be patched is to be modified / changed in the existing system, newly added, or deleted. The instruction method at that time is to change / add / change functions / variables belonging to (or added to) which source file in which load module.
Whether to delete, assign to a designated address consciously, or automatically assign without consciousness, and specify the management number (user management number that records software changes) for this change Define.

【0038】すなわち、ここで3つのオブジェクトファ
イルが作成される。このパッチオブジェクトファイルか
らパッチロードモジュールを作成するための指示情報と
して、パッチリンク指示情報ファイルの作成を行うので
ある。このファイルには、パッチ対象オブジェクトファ
イル名及び、パッチ対象の関数・変数が属した既存ロー
ドモジュール名、同じく属する既存ソースファイル名及
びパッチ投入用エリア名を定義する。
That is, here, three object files are created. A patch link instruction information file is created as instruction information for creating a patch load module from the patch object file. In this file, the name of the patch target object file, the name of the existing load module to which the function / variable to be patched belongs, the name of the existing source file and the name of the patch input area to which the function / variable belongs also are defined.

【0039】次に、パッチリンク指示情報ファイル25
とパッチオブジェクトファイル24、既存システムを構
成するロードモジュール21、既にパッチロードモジュ
ールが存在するなら前回までの全てのパッチロードモジ
ュール26をパッチデータ作成装置13に入力する。
Next, the patch link instruction information file 25
And the patch object file 24, the load module 21 constituting the existing system, and if a patch load module already exists, all the patch load modules 26 up to the previous time are input to the patch data creating device 13.

【0040】このパッチデータ作成装置13において
は、パッチ投入エリア判別・確保手段131、関数・変
数参照関連個所の番地割り出し手段132、リンク手段
133、関数変数割付情報データベース更新手段13
4、オールドメモリイメージファイル作成手段135を
実行する。それによって、1つまたは複数のパッチロー
ドモジュール27とオールドメモリイメージファィル2
8を作成し、関数変数割付情報データベース22の更新
を行う(ステップA6)。
In the patch data creating apparatus 13, a patch input area determining / securing means 131, an address determining means 132 for a function / variable reference related location, a link means 133, a function variable assignment information database updating means 13
4. The old memory image file creating means 135 is executed. Thereby, one or more patch loading modules 27 and the old memory image file 2
8 and updates the function variable allocation information database 22 (step A6).

【0041】このステップA6において、先に作成済み
のデータベースよりパッチオブジェクトファイルでパッ
チ対象とする関数F0、関数FXの割付番地及びサイ
ズ、及びパッチが参照する既存ロードモジュール中の関
数Fl、関数F2の割付番地を求める。また、追加パッ
チとなる変数Bについては、その割付位置をパッチリン
ク指示情報ファイルで記述されたパッチ投入用エリアか
ら求め、割付領域を確保する。
In step A6, the allocation addresses and sizes of the function F0 and the function FX to be patched in the patch object file from the previously created database, and the functions F1 and F2 in the existing load module referred to by the patch. Find the assigned address. For the variable B to be an additional patch, the allocation position is obtained from the patch input area described in the patch link instruction information file, and the allocation area is secured.

【0042】次いで、関数F0と関数FXについて、そ
れぞれのパッチオブジェクトファイルより変更後のサイ
ズを求め、既存の割付サイズとの大小比較を行う。ここ
で関数F0についてはサイズに変化がなかったものとし
て、その場合既存の割付番地に再度割付くものとする。
関数FXについては、変更によりサイズが増加したとみ
なす。その場合、既存の割付領域には挿入できないの
で、新たにパッチ投入用エリアに割り付けるものと判断
する。これで関数FXの割付番地をパッチ投入用ェリア
から確保するが、新しい領域に勝手に移動割付してしま
うと、図3に示すように、既存の状態では関数Flが従
来の関数FXの割付番地を参照しているので、関数Fl
についてもパッチによ修正変更が必要になってくる。し
かし、関数FXは新規領域に移動割付するだけではな
く、既存の割付エリアにも新規エリアとの関連を示すパ
ッチを投入することで、関数Flに対しては影響させな
いようにする。その実施例として図4に示すように、既
存の関数FXの割付先頭番地に対し、ブランチ命令で新
規関数FX′割付番地に分岐させるパッチをパッチロー
ドモジュール作成にて自動生成することで実現する。
Next, for the functions F0 and FX, the sizes after the change are obtained from the respective patch object files, and the sizes are compared with the existing allocation sizes. Here, it is assumed that the size of the function F0 has not changed, and in that case, the function F0 is re-assigned to an existing assignment address.
Regarding the function FX, it is considered that the size has increased due to the change. In this case, since it cannot be inserted into the existing allocation area, it is determined that it is to be newly allocated to the patch input area. As a result, the allocation address of the function FX is secured from the patch input area. However, when the function FX is moved and allocated to a new area without permission, as shown in FIG. , The function Fl
Will need to be modified by patches. However, the function FX is not only moved and assigned to the new area, but also a patch indicating the relationship with the new area is input to the existing assigned area so that the function Fl is not affected. As an embodiment, as shown in FIG. 4, a patch for branching to a new function FX 'allocation address with a branch instruction for an existing allocation address of the function FX is automatically generated by creating a patch load module.

【0043】これで各パッチ対象オブジェクトファイル
の割付番地が確定したので、次に、先に抽出した参照す
る関数Fl、関数F2の割付番地のみで構成するオブジ
ェクトファイルを自動生成し、これとパッチオブジェク
トファイル及びパッチリンク指示情報ファイルによりリ
ンク処理を実行し、パッチロードモジュールを作成す
る。パッチ投入後の割付を図4に示す。
With this, the allocation addresses of the object files to be patched are determined. Next, an object file composed of only the allocation addresses of the previously extracted functions F1 and F2 to be referred to is automatically generated. The link processing is executed by using the file and the patch link instruction information file to create a patch load module. FIG. 4 shows the assignment after the patch is input.

【0044】係るパッチデータ作成装置13を実現する
最初の手段であるパッチ投入エリア判別・確保手段13
1は、入力されたパッチリンク指示情報ファイル25と
パッチオブジェクトファイル24をもとに、どの関数・
変数がパッチ対象なのかを判断し、同時にパッチ対象デ
ータのサイズを求める。次に関数変数割付情報データベ
ース22より、既存の関数・変数なのか新規追加の関数
・変数かを調べ、既存であれば割付番地とサイズ情報を
関数変数割付情報データベース22より取り出す。次に
パッチリンク指示情報ファイル25にてユーザがパッチ
の割付番地を自ら指定している場合は、その番地を優先
して割付に用いるが、本発明の特徴的機能の1つである
パッチの割付を自動的に行う指示がパッチリンク指示情
報ファイル25で行われる場合は、パッチオブジェクト
ファイル24中のパッチ対象データが既存システムに存
在するものであれば、パッチ対象データサイズが既存の
割付サイズと比べて大小を判断し、小さい湯合は既存の
割付領域に被せるように同一の割付番地を割り当てる。
The patch input area discriminating / securing means 13 which is the first means for realizing the patch data creating device 13
1 is based on the input patch link instruction information file 25 and patch object file 24,
It is determined whether the variable is to be patched and, at the same time, the size of the data to be patched is determined. Next, the function / variable assignment information database 22 checks whether the function / variable is an existing function / variable or a newly added function / variable. Next, when the user specifies the patch allocation address by himself in the patch link instruction information file 25, the address is preferentially used for the allocation, but the patch allocation which is one of the characteristic functions of the present invention is performed. Is automatically performed in the patch link instruction information file 25, if the patch target data in the patch object file 24 exists in the existing system, the patch target data size is compared with the existing allocation size. Then, the same allocation address is assigned so that the small area is covered by the existing allocation area.

【0045】大きい場合は、既存エリアには割付不可能
であるため、予め用意するパッチエリア中の空きエリア
を求めて領域確保する。その際、本手段131はパッチ
エリアの領域管理を行い関数変数割付情報データベース
更新手段134にてデータベース22上にエリアの空閉
管理を行う。
If the area is large, it cannot be allocated to the existing area. Therefore, an empty area in the patch area prepared in advance is obtained to secure an area. At this time, the present means 131 manages the area of the patch area, and performs the empty / closed management of the area on the database 22 by the function variable assignment information database updating means 134.

【0046】なお、パッチ対象データが変数である場合
で既存システムに存在するもので、かつ今回のパッチに
よりサイズが増加する場合は、パッチエリアに対する割
付移動は行わず、ユーザに対し警告を発する。これは直
接参照を受ける変数を勝手に移動すると、他で参照して
いるものに誤動作を与えるためである。またパッチ対象
データが関数である場合で既存システムに存在するもの
で且つ今回のパッチによりサイズが増加する場合は、パ
ッチエリアに対する割付移動と共に既存の割付領域に対
してもその先頭に新移動エリアに対するブランチ命令パ
ッチを自動生成させる。これでパッチ投入エリアの判別
・確保手段131を終了する。
If the data to be patched is a variable and exists in the existing system, and the size increases due to the current patch, the allocation to the patch area is not performed, and a warning is issued to the user. This is because if a variable that is directly referenced is moved on its own, a malfunction will be given to what is being referenced elsewhere. If the data to be patched is a function and exists in the existing system and the size increases due to the current patch, the assignment to the patch area and the existing assignment area will be added to the new Automatically generate branch instruction patches. Thus, the patch input area determining / securing means 131 ends.

【0047】次に、関数・変数参照関連個所の番地割り
出し手段132を用いてパッチ対象データが結合を必要
とする関数・変数をパッチオブジェクトファイル24よ
り抽出し関数変数割付情報データベース22より割付番
地を求める。そして、求めた関数・変数名と割付番地の
みからなる仮のオブジェクトファイルを中間的に生成さ
せる。
Next, the function / variable which needs to be combined with the data to be patched is extracted from the patch object file 24 using the function / variable reference-related address determining means 132, and the assigned address is obtained from the function variable assignment information database 22. Ask. Then, a temporary object file including only the obtained function / variable name and the assigned address is generated in the middle.

【0048】次に、前記の仮のオブジェクトファイルと
パッチオブジェクトファイル24を用いてリンク手段1
33にて結合を行い、パッチロードモジュール27を生
成する。リンク手段133は、既存システムのロードモ
ジュール21を作成する際に使用したリンカを利用して
実現する。これによりリンク処理そのものの機能はパッ
チであろうと既存システムのリンクであろうと一貫性を
保つようにする。
Next, using the temporary object file and the patch object file 24, the link means 1
The combination is performed at 33, and the patch load module 27 is generated. The link means 133 is realized by using the linker used when creating the load module 21 of the existing system. This ensures that the functionality of the link process itself is consistent whether it is a patch or a link in an existing system.

【0049】パッチロードモジュールが作成できると、
次に関数変数割付情報データベース更新手段134に
て、データベース22の更新を行う。更新内容として
は、先に触れたパッチエリアの利用情報の管理と新たな
関数・変数の割付番地、サイズ情報、そしてパッチ投入
履歴の登録を行う。この履歴としては、どのロードモジ
ュ−ル21に対する、どのソースファイル中の関数・変
数を変更・追加・削除したのか、またこの投入処理に対
するユーザの変更管理番号は何か、そしてどのエリアに
投入を行ったのかを管理する。
When a patch load module can be created,
Next, the function variable allocation information database updating means 134 updates the database 22. As the contents of the update, the management of the use information of the patch area mentioned above, the allocation address of the new function / variable, the size information, and the registration of the patch input history are performed. This history includes information on which load module 21 the function / variable in which source file has been changed / added / deleted, what the user's change control number is for this input processing, and what area to input. Manage what went.

【0050】そして、最後の手段としてオールドメモリ
イメージファイル作成手段135を行う。この手段で
は、今回作成したパッチロードモジュール27の投入前
メモリィメージをロードモジュールの形式でオールドメ
モリイメージファイルとして作成する。このファイル
は、パッチ投入が誤りであった場合に元のメモリイメー
ジに戻すための、いわゆる戻しパッチロードモジュール
の役割を持つ。
Then, the old memory image file creating means 135 is performed as the last means. In this means, the memory image before application of the patch load module 27 created this time is created as an old memory image file in the form of a load module. This file has a role of a so-called return patch load module for returning to the original memory image in the event of an incorrect patch input.

【0051】ファイルの内容は、関数変数割付情報デー
タベース22のロードモジュール構成情報とパッチ履歴
情報をもとに既存システムを構成するモジュール21と
前回までに作成されたパッチロードモジュール26か
ら、今回作成のパッチロードモジュール27と同一割付
番地及びサイズにあたるデータを抽出し作成する。
The contents of the file are obtained from the module 21 that constitutes the existing system and the patch load module 26 that has been created up to the last time, based on the load module configuration information and the patch history information of the function variable assignment information database 22. Data corresponding to the same address and size as the patch load module 27 is extracted and created.

【0052】ここまで説明した各手段によるパッチロー
ドモジュール作成を入力のパッチオブジェクトファイル
24で数分行う。
A patch load module is created by the above-described means in the input patch object file 24 for several minutes.

【0053】[0053]

【発明の効果】以上説明したように、本発明による高級
言語パッチ作成システムは、ロードモジュールに対して
パッチを作るための特別な知識修得を必要とせず、パッ
チデータの作成が短期間ででき、しかも誤りを減らすこ
とができる。すなわち、従来よりロードモジュールに対
するパッチということで、アセンブラ言語や機械語に習
熟した技術者にしか作成できなかったパッチが、ソース
プログラム開発で用いた言語がそのまま扱える。
As described above, the high-level language patch creation system according to the present invention does not require special knowledge acquisition for creating a patch for a load module, and can create patch data in a short time. Moreover, errors can be reduced. That is, the patch used for the source module can be used as it is for a patch for a load module, which can be created only by a technician who is proficient in assembler language or machine language.

【0054】また、本発明は、パッチと結合する部分つ
まり関連する参照個所の割付番地を調べる知識や調べる
作業が不要になる。すなわち、関数変数割付情報データ
ベースを取り入れたことにより、これら参照個所に対す
る最新情報を管理していることと、このデータベースを
本発明が自動的に検索及び取り出し、更新をすることで
ユーザの作業を不要とすることによる。
Further, according to the present invention, the knowledge and the work of examining the portion to be combined with the patch, that is, the assignment address of the related reference location are not required. In other words, by incorporating the function variable assignment information database, the latest information for these reference locations is managed, and the present invention automatically searches, retrieves, and updates this database, eliminating the need for user work. It depends on.

【0055】さらに、本発明は、パッチの割付領域の確
保のための人手工数が不要になる。すなわち、関数変数
割付情報データベースにおいて既存システム及びこれま
でに投入したパッチの割付エリアを管理していること、
及び空き領域の管理を行っていることによる。
Further, the present invention eliminates the need for man-hours for securing the patch allocation area. In other words, the function variable allocation information database manages the allocation area of the existing system and patches that have been submitted so far,
And the management of free space.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明による高級言語パッチ作成システムの実
施の形態を示す構成図。
FIG. 1 is a configuration diagram showing an embodiment of a high-level language patch creation system according to the present invention.

【図2】パッチロードモジュール生成手順のフロー図で
ある。
FIG. 2 is a flowchart of a patch load module generation procedure.

【図3】本実施の形態において既存ロードモジュールの
割付を表すメモリ割付イメージ図である。
FIG. 3 is a memory allocation image diagram showing allocation of existing load modules in the present embodiment.

【図4】本実施の形態においてパッチ投入後を表すメモ
リ割付イメージ図である。
FIG. 4 is a memory allocation image diagram showing a state after patch application in the present embodiment.

【図5】従来例のパッチ作成手順を示すフロー図であ
る。
FIG. 5 is a flowchart showing a conventional patch creation procedure.

【符号の説明】[Explanation of symbols]

11 データベース作成装置 12 コンパイル 13 パッチデータ作成装置 21 ロードモジュール 22 関数変数割付情報データベース 23 パッチソースファイル 24 パッチオブジェクトファイル 25 パッチリンク指示情報ファイル 26 前回までのパッチロードモジュール 27 パッチロードモジュール 28 オールドメモリイメージファイル 111 ロードモジュール構成管理部 112 パッチエリア管理部 113 エントリアドレス管理部 131 パッチ投入エリア判別・確保手段 132 関数・変数参照関連個所の番地割り出し手段 133 リンク手段 134 関数変数割付情報データベース更新手段 135 オールドメモリイメージファイル作成手段 11 Database Creation Device 12 Compilation 13 Patch Data Creation Device 21 Load Module 22 Function Variable Assignment Information Database 23 Patch Source File 24 Patch Object File 25 Patch Link Instruction Information File 26 Previous Patch Load Module 27 Patch Load Module 28 Old Memory Image File 111 Load module configuration management unit 112 Patch area management unit 113 Entry address management unit 131 Patch input area discrimination / reservation means 132 Address / address reference means for function / variable reference related locations 133 Linking means 134 Function variable assignment information database updating means 135 Old memory image File creation means

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】パッチ対象となる複数のロードモジュール
によってパッチロードモジュール作成管理用の関数変数
割付データベースを作成して出力するデータベース作成
装置と、 このデータベース作成装置から出力された前記関数変数
割付データベースの情報に基づいて、既存システムを構
成する前記ロードモジュールと前回作成のパッチロード
モジュールから、今回作成のパッチロードモジュールと
同一の割付番地とサイズに相当するデータを抽出して出
力すると共に、この今回作成のパッチロードモジュール
をオールドメモリイメージファイルとして作成して出力
するパッチデータ作成装置と、を備えていることを特徴
とする高級言語パッチ作成システム。
1. A database creation device for creating and outputting a function variable allocation database for patch load module creation management by a plurality of load modules to be patched, and a function variable allocation database output from the database creation device. Based on the information, data corresponding to the same allocation address and size as the patch load module created this time is extracted and output from the load module constituting the existing system and the patch load module created last time, and output this time. A patch data creation device for creating and outputting the patch load module as an old memory image file.
【請求項2】前記データベース作成装置は、前記複数の
ロードモジュールを構成情報を管理するロードモジュー
ル構成管理部、パッチ領域および過去のパッチ履歴を管
理するパッチエリア管理部、各種エントリアドレスおよ
び割付アドレスを管理するエントリアドレス管理部の各
部での作成処理によって前記関数変数割付データベース
を出力することを特徴とする請求項1に記載の高級言語
パッチ作成システム。
2. A database creation device comprising: a load module configuration management unit for managing configuration information of the plurality of load modules; a patch area management unit for managing patch areas and past patch histories; and various entry addresses and allocation addresses. 2. The high-level language patch creation system according to claim 1, wherein the function variable allocation database is output by creation processing in each section of an entry address management unit to be managed.
【請求項3】前記パッチデータ作成装置は、パッチ対象
となる複数のパッチソースファイルを翻訳して作成した
複数のパッチオブジェクトファイルと、このパッチオブ
ジェクトファイルに対していかなるパッチ処理を行うか
を指示するパッチリンク指示情報ファイルと、前回まで
のパッチロードモジュールのそれぞれから出力された信
号を受け取り、関数または変数によるパッチ対象データ
の割付アドレスを算出して既存領域またはパッチ領域を
割り当てて前記既存システムに結合することを特徴とす
る請求項1に記載の高級言語パッチ作成システム。
3. The patch data creating device instructs a plurality of patch object files created by translating a plurality of patch source files to be patched and what patch processing is to be performed on the patch object files. Receives the patch link instruction information file and the signal output from each of the previous patch load modules, calculates the allocation address of the patch target data by function or variable, allocates the existing area or patch area, and connects to the existing system The high-level language patch creation system according to claim 1, wherein
【請求項4】前記パッチリンク指示情報ファイルは、前
記関数または変数によるパッチ対象データに対して前記
既存システム上のものを修正して変更するか、新規追加
または削除するかのいずれかによってパッチ割付を自動
的に指示することを特徴とする請求項3に記載の高級言
語パッチ作成システム。
4. The patch link instruction information file is patch-allocated by either modifying the data to be patched by the function or the variable by modifying the existing data on the existing system, or adding or deleting the patch data. 4. The high-level language patch creation system according to claim 3, wherein the instruction is automatically given.
【請求項5】前記パッチ割付は、前記パッチ対象データ
のサイズを既存の割付サイズと比較して大小の判断を行
い、小さければ既存の割付領域に被せて同一の割付番地
を割り当て、大きければ予め準備されたパッチ領域内の
空き領域を求めて確保することを特徴とする請求項4に
記載の高級言語パッチ作成システム。
5. The patch allocation is performed by comparing the size of the data to be patched with the existing allocation size to determine the size. If the size is smaller, the patch allocation is performed over the existing allocation area and the same allocation address is allocated. 5. The high-level language patch creating system according to claim 4, wherein a free area in the prepared patch area is obtained and secured.
JP9115412A 1997-05-06 1997-05-06 High-level language patch preparation system Pending JPH10307719A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP9115412A JPH10307719A (en) 1997-05-06 1997-05-06 High-level language patch preparation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP9115412A JPH10307719A (en) 1997-05-06 1997-05-06 High-level language patch preparation system

Publications (1)

Publication Number Publication Date
JPH10307719A true JPH10307719A (en) 1998-11-17

Family

ID=14661937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9115412A Pending JPH10307719A (en) 1997-05-06 1997-05-06 High-level language patch preparation system

Country Status (1)

Country Link
JP (1) JPH10307719A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164242A (en) * 2005-12-09 2007-06-28 Nec Electronics Corp Program rewrite data creating device, program and program rewrite data creating method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164242A (en) * 2005-12-09 2007-06-28 Nec Electronics Corp Program rewrite data creating device, program and program rewrite data creating method

Similar Documents

Publication Publication Date Title
US6526441B2 (en) Input/output device information management system for multi-computer system
JPH09152961A (en) Method and apparatus for attachment of version setting information to software program
US20040003388A1 (en) Preparation of a software configuration using an XML type programming language
US6754848B1 (en) Method, system and program products for operationally migrating a cluster through emulation
US20070006202A1 (en) Dynamic mapping of shared libraries
US20220179642A1 (en) Software code change method and apparatus
JPH0863342A (en) Program management method and device therefor
CN113448643A (en) Configuration data management system and method
JPH10307719A (en) High-level language patch preparation system
JP2003535415A (en) A software development system that presents a logical view of project components before compilation, facilitates selection, and indicates missing links
US20030220939A1 (en) Information processing system, information processing method, and information processing program
JP3233541B2 (en) I / O device information management system for multi-computer system
JPH0667871A (en) Automatic program updating system
JP2609820B2 (en) Program management method
JPH09282174A (en) Program execution method
JPS61147336A (en) Generation management system of load module
JP2841363B2 (en) External module acquisition method
JP2004192604A (en) Device and method for developing embedded software
JPH07219863A (en) Business distribution system
JPH11328093A (en) Input/output device information management system for multi-computer system
JP2000357080A (en) Device and method for managing version number, recording medium stored with program and information processor
CN114185520A (en) Object copying method and device, electronic equipment and storage medium
JPH0561657A (en) Program editing system
JPH05120067A (en) Program patching system
JPH11282664A (en) Incompatible program correction system