JPH09114655A - 高水準言語レベルでのパッチ作成・運用方式 - Google Patents

高水準言語レベルでのパッチ作成・運用方式

Info

Publication number
JPH09114655A
JPH09114655A JP26812395A JP26812395A JPH09114655A JP H09114655 A JPH09114655 A JP H09114655A JP 26812395 A JP26812395 A JP 26812395A JP 26812395 A JP26812395 A JP 26812395A JP H09114655 A JPH09114655 A JP H09114655A
Authority
JP
Japan
Prior art keywords
patch
code file
function
assembler
correction
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.)
Granted
Application number
JP26812395A
Other languages
English (en)
Other versions
JP3260264B2 (ja
Inventor
Shinichi Yamauchi
伸一 山内
Masami Momoumi
正実 百海
Koichi Kiyono
浩一 清野
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
Nippon Telegraph and Telephone Corp
Original Assignee
Fujitsu Ltd
Nippon Telegraph and Telephone 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 Fujitsu Ltd, Nippon Telegraph and Telephone Corp filed Critical Fujitsu Ltd
Priority to JP26812395A priority Critical patent/JP3260264B2/ja
Publication of JPH09114655A publication Critical patent/JPH09114655A/ja
Application granted granted Critical
Publication of JP3260264B2 publication Critical patent/JP3260264B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

(57)【要約】 【課題】 高水準言語を適用したソフトウェア制御の交
換システムに関し、高水準言語レベルでのソースコード
修正により機械語パッチを生成・運用することを目的と
する。 【解決手段】 現用ソースコードファイルに対して問題
箇所をソースコードレベルで修正し、修正したソースコ
ードファイルよりアセンブラコードファイルを作成し、
現用アセンブラコードファイルとの差分を解析すること
により修正箇所のある関数のみのアセンブラコードファ
イルを抽出し、該アセンブラコードファイルを現用アセ
ンブラコードファイルに並べ変えて翻訳することにより
修正関数のアセンブラコードの修正部分にオブジェクト
コードを生成し、連携をとることにより修正部分に生成
された修正関数のロードモジュールのみを抽出し、この
ロードモジュールを運用システムのパッチエリアに書き
込み、運用システムの修正関数の先頭にパッチエリアへ
のジャンプ命令を書き込むように構成する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は高水準言語を適用し
たソフトウェア制御の交換システムにおいて、高水準言
語レベルでのパッチ作成・運用方式に関する。交換用ソ
フトウェアは、一般的にアセンブラ言語より記述が容易
で作業効率のよいCHILL言語やC言語などの高水準
言語が使用されている。
【0002】NTTのディジタル交換機ではCHILL
言語を採用しているが、特に処理を早くする必要のある
プログラムや、ハードウェアを直接制御するプログラム
はアセンブラ言語で直接記述する場合もある。アセンブ
ラ言語は“0”と“1”との組合せよりなる機械語と1
対1に対応しているが、高水準言語または高級言語は機
械語と1対nで対応しており、高水準言語の1ワードで
機械語の複数の命令を表現することが可能である。
【0003】
【従来の技術】交換局プログラム(ファイル)作成手順
の概略を図5に示す。システム部は .交換機の動作を規定するプログラムは、CHILL
などの交換機用高水準言語を用いて作成する。作成した
プログラムをパソコン端末から電子計算機に投入して、
ソースモジュール(SM)として取り出す。この時のプ
ログラムの状態はCHILL言語で書かれたイメージが
そのままソースコードファイルに格納される。 .交換機はCHILL言語のソースモジュールをその
まま実行することはできないので、実行可能な機械語に
変換する必要がある。CHILL言語を機械語に変換す
るプログラムはCHILLコンパイラと呼ばれる。CH
ILLコンパイラ等のプログラムは総称してオペレーテ
ィングシステム(OS)と呼ばれる。 .ソースモジュール(SM)はCHILLコンパイラ
によりアセンブラコードに翻訳され機械語に変換され、
オブジェクトモジュール(OM)と呼ばれてオブジェク
トコードファイルに格納される。 .しかしオブジェクトモジュール(OM)は機械語に
変換されているが、メモリ上の配置は決まってないの
で、さらにリンケージエディタによりプログラムのメモ
リ上の配置を決める必要があり、こうしてできた実行可
能なプログラムはロードモジュール(LM)と呼ばれ
て、ロードモジュールファイルに格納される。 .ロードモジュール(LM)はメモリ上に展開されて
運用システムとして使用される。メモリの番地が割り付
けられたロードモジュール(LM)形式の局データはす
べて機械語により構成され、運用システムのプログラム
により必要な局データの読み出し書き込みが行われる。
【0004】かかる運用プログラムに問題箇所(バグ)
が判明した場合、機械語で問題箇所を修正するパッチ
(修正命令)を作成し、運用局に送付し機械語で投入し
ていたので、命令コードを直接書き換えるアドレスに置
き換える必要があった。
【0005】
【発明が解決しようとする課題】高水準言語レベルでソ
フトウェア制御を行う交換システムにおいて、従来は運
用プログラムに問題箇所(バグ)が発生した場合、いち
いち機械語で問題箇所を修正するパッチ(修正命令)を
作成していたため、修正作業が複雑になり、機械語に熟
知した技術者でないとバッチ作成が困難であった。
【0006】本発明はソースコードレベルで修正を行う
ことにより、機械語による修正を必要としないで、作業
者がパソコン端末等から容易に問題箇所を修正できるよ
うにすることを目的とする。
【0007】
【課題を解決するための手段】本発明の原理構成図を図
1に示す。図において、1は現用ソースコードファイ
ル、2は修正ソースコードファイル、3はパッチ用アセ
ンブラコードファイル、4は修正アセンブラコードファ
イル、5はパッチ用アセンブラコードファイルの関数構
成、6は修正アセンブラコードファイルの関数構成、7
は修正関数、8はパッチ用オブジェクトコードファイ
ル、9はバッチ用ロードモジュールファイル、10はメモ
リを示す。
【0008】修正コードファイル2は現用ソースコード
ファイル1を修正し、パッチ用アセンブラコードファイ
ル3は現用ソースコードファイル1をアセンブラコード
に変換し、修正アセンブラコードファイル4は修正ソー
スコードファイル2をアセンブラコードに変換したもの
である。
【0009】パッチ用アセンブラコードファイルの関数
構成5は関数Aと関数Bと関数Cに修正関数7を付加し
たものであり、修正アセンブラコードファイルの関数構
成6は関数Aを修正したものと関数Bと関数Cよりな
り、修正された関数Aは修正関数7として抽出される。
【0010】パッチ用オブジェクトコードファイル8は
パッチ用アセンブラコードファイルの関数構成6より修
正関数A’を取り出しバッチセクションに出力できるよ
うにしたもの、パッチ用ロードモジュールファイル9は
関数A’のロードモジュールをパッチ用アセンブラコー
ドファイル8をリンケージしてメモリ10上の番地に割り
付けるようにしたものである。
【0011】本発明の基本の処理フローチャートを図2
に示す。高水準言語レベルのパッチにより機械語レベル
のパッチを作成、運用する方式において、 .現用ソースコードファイル1、修正ソースコードフ
ァイル2をアセンブラコードに変換し、パッチ用アセン
ブラコードファイル3、修正アセンブラコードファイル
4に格納する。 .パッチ用アセンブラコードファイル3と修正アセン
ブラコードファイル4の差分(コンペア)をとる。 .差分があった場合、修正アセンブラコードファイル
の関数構成6より修正関数7を抽出する。 .パッチ用アセンブラコードファイルの関数構成5の
後ろに修正関数7を付加する。この時、シンボル名の多
重定義でアセンブルエラーが発生しないように修正関数
Aの関数名を変更する(関数A’とする)。 .前記で作成したファイルをアセンブルしてパッチ
用オブジェクトコードファイル8を作成する。この時、
関数A’はパッチセクション(通常のコンバイラが生成
するセクション以外)に生成されるように指定する。 .前記で作成したパッチ用オブジェクトコードファ
イル8をリンケージし、パッチセクションロードモジュ
ール部分のみ抽出する。 .パッチセクションロードモジュール部分をメモリ10
の運用システムに書き込み、運用システムの関数Aの先
頭番地を関数A’へのシャンプ命令に書き換え、バッチ
を運用状態とする。
【0012】
【発明の実施の形態】前記図2の処理フローチャート方
式が基本であるが、ソースコードファイルからアセンブ
ラコードにおとすことで最適化処理の相違により運用シ
ステムの機械語と異なる場合についての接続構成図の実
施例を図3に示す。図において、11はソースコードファ
イル、12はパッチ用オブジェクトコードファイル、13は
アセンブラコードファイル、14はパッチ用オブジェクト
コードファイル、15は現用ロードモジュールファイル、
16はパッチ用ロードモジュールファイル、17はメモリを
示す。
【0013】パッチ用オブジェクトコードファイル12は
ソースコードファイル11をコンパイルして運用システム
のオブジェクトコードを生成する方法であり、パッチ用
オブジェクトコードファイル14はソースコードファイル
11よりアセンブラコード生成によりアセンブラコードフ
ァイル13を生成し、アセンブラコードファイル13をアセ
ンブルしてパッチ用オブジェクトコードを生成する方法
である。
【0014】本実施例はソースコードファイル11からオ
ブジェクトコードファイルを生成する方法であって、ア
センブラコードを経由する場合としない場合とで最終的
に生成されるオブジェクトコードファイルが異なる場合
を示す。本実施例の処理フローチャートを図4に示す。
オブジェクトコードファイルの差分がない時との差分の
処理フローは以下の通りである。 (1) 現用ソースコードファイル、修正ソースコードファ
イルをアセンブラコードに変換する。 (2) アセンブラコードファイルの差分(コンペア)をと
る。 (3) 差分があった場合、修正アセンブラコードファイル
より修正関数を抽出する。 (4)この修正アセンブラコード内の相対番地ジャンプ命
令を絶対番地ジャンプ命令に変換する。 (5) パッチ用アセンブラコードファイルの後ろに、修正
関数Aを付加する。この時、シンボル名の多重定義でア
センブルエラーが発生しないよう修正関数名を変更す
る。(関数A’とする) (6) 前記(5) で作成したファイルをアセンブルしパッチ
用オブジェクトコードファイルを作成する。この時、関
数A' はパッチセクション(通常のコンパイラが生成す
るセクション以外)に生成されるように指定する。 (7) 前記(6) で作成したパッチ用オブジェクトコードフ
ァイルをリンケージし、パッチセクションロードモジュ
ール部分のみ抽出する。 (8) 修正関数から呼ばれる関数のアドレスを取得する。 (9) 取得したアドレス情報よりパッチ用ロードモジュー
ルファイルをサーチし、シンボル情報を取得する。 (10)取得したシンボル情報より現用ロードモジュールフ
ァイルをサーチし、現用アドレス情報を取得する。 (11)取得した現用アドレス情報をパッチセクションロー
ドモジュールの絶対番地ジャンプ命令のアドレス部に書
き込みアドレス補正を行う。 (12)パッチセクションロードモジュール部分を運用シス
テムに書き込み、運用システムの関数Aの先頭番地を関
数A’へのジャンプ命令に書き換え、パッチを運用状態
とする。
【0015】本実施例で基本の処理フロー図2に追加し
た処理ステップは、(4) と(8) 〜(11)である。
【0016】
【発明の効果】本発明の方式を採用することにより、ソ
ースコードレベルでパッチをつくることが可能なため、
機械語に熟知した技術者でなくともパッチ作成が可能と
なり、機械語とソースレベルの2種の修正確認をなくす
ことが可能となり、パッチ作成・運用を容易化する効果
がある。
【図面の簡単な説明】
【図1】 本発明の原理構成図
【図2】 本発明の基本の処理フローチャート
【図3】 本発明の接続構成図の実施例
【図4】 実施例の処理フローチャート
【図5】 交換局プログラム作成手順の概略
【符号の説明】
1 現用ソースコードファイル 2 修正ソースコードファイル 3 パッチ用アセンブラコードファイル 4 修正アセンブラコードファイル 5 パッチ用アセンブラコードファイルの関数構成 6 修正アセンブラコードファイルの関数構成 7 修正関数 8 パッチ用オブジェクトコードファイル 9, 16 バッチ用ロードモジュールファイル 10, 17 メモリ 11 ソースコードファイル 12,14 パッチ用オブジェクトコードファイル 13 アセンブラコードファイル 15 現用ロードモジュールファイル
フロントページの続き (72)発明者 百海 正実 神奈川県川崎市中原区上小田中1015番地 富士通株式会社内 (72)発明者 清野 浩一 東京都千代田区内幸町一丁目1番6号 日 本電信電話株式会社内

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 高水準言語を適用したソフトウェア制御
    の交換システムにおける、高水準言語レベルでのソース
    コード修正により機械語パッチを生成・運用する方式に
    おいて、 現用ソースコードファイルに対して問題箇所をソースコ
    ードレベルで修正し、修正したソースコードファイルよ
    りアセンブラコードファイルを作成し、現用ソースコー
    ドファイルをアセンブラコードファイルに変換した現用
    アセンブラコードファイルとの差分を解析することによ
    り修正箇所のある関数のみのアセンブラコードファイル
    を抽出し、 該修正関数のみのアセンブラコードファイルを現用アセ
    ンブラコードファイルに並べ変えて翻訳することにより
    修正関数のアセンブラコードの修正部分にオブジェクト
    コードを生成し、連携をとることにより修正部分に生成
    された修正関数のロードモジュールのみを抽出し、 該ロードモジュールを運用システムのパッチエリアに書
    き込み、運用システムの修正関数の先頭にパッチエリア
    へのジャンプ命令を書き込むことにより、投入したパッ
    チを運用することを特徴とする高水準言語レベルでのパ
    ッチ作成・運用方式。
  2. 【請求項2】 前記請求項1の高水準言語レベルでのパ
    ッチ作成・運用方式であって、 ソースコードから機械語パッチを生成する過程で、一旦
    アセンブラコードに変換するが、ソースコードから直接
    機械語に変換する場合と比較してコード生成の最適化処
    理が相違することがあり、生成されるオブジェクトコー
    ドファイルのサイズがそれぞれ異なる場合、 修正関数のアセンブラコード内の相対ジャンプ命令を現
    行ロードモジュールのアドレス情報を基に絶対番地命令
    に変換することにより、運用している現行システムのパ
    ッチとして運用可能とすることを特徴とする修正関数内
    のジャンプアドレス補正方式。
JP26812395A 1995-10-17 1995-10-17 高水準言語レベルでのパッチ作成・運用方法 Expired - Fee Related JP3260264B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP26812395A JP3260264B2 (ja) 1995-10-17 1995-10-17 高水準言語レベルでのパッチ作成・運用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP26812395A JP3260264B2 (ja) 1995-10-17 1995-10-17 高水準言語レベルでのパッチ作成・運用方法

Publications (2)

Publication Number Publication Date
JPH09114655A true JPH09114655A (ja) 1997-05-02
JP3260264B2 JP3260264B2 (ja) 2002-02-25

Family

ID=17454211

Family Applications (1)

Application Number Title Priority Date Filing Date
JP26812395A Expired - Fee Related JP3260264B2 (ja) 1995-10-17 1995-10-17 高水準言語レベルでのパッチ作成・運用方法

Country Status (1)

Country Link
JP (1) JP3260264B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015428A (ja) * 2007-07-02 2009-01-22 Nippon Telegr & Teleph Corp <Ntt> プログラム更新方法、情報処理装置、プログラムおよび記録媒体
CN110851168A (zh) * 2019-11-15 2020-02-28 腾讯科技(深圳)有限公司 数据处理方法及其装置、计算机可读存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6419204B1 (en) 1999-11-23 2002-07-16 Safway Formwork Systems, Llc Outside conversion corner for form work

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009015428A (ja) * 2007-07-02 2009-01-22 Nippon Telegr & Teleph Corp <Ntt> プログラム更新方法、情報処理装置、プログラムおよび記録媒体
CN110851168A (zh) * 2019-11-15 2020-02-28 腾讯科技(深圳)有限公司 数据处理方法及其装置、计算机可读存储介质

Also Published As

Publication number Publication date
JP3260264B2 (ja) 2002-02-25

Similar Documents

Publication Publication Date Title
US20040221273A1 (en) Method and apparatus for performing incremental validation of program code conversion
JPH08314728A (ja) ソースプログラムをオブジェクトプログラムに変換する方法および装置
US6175935B1 (en) Software debugging method and recording medium to which debugging program has been recorded
US10534589B2 (en) Specifying user defined or translator definitions to use to interpret mnemonics in a computer program
JPH09114655A (ja) 高水準言語レベルでのパッチ作成・運用方式
US6086624A (en) Simulator and simulation method in each of which simulation can be carried out at a high-speed
JP2009048259A (ja) プログラム変換方法及び変換用プログラム
JP2008140263A (ja) 単体試験支援装置
JPH10187461A (ja) 言語処理方式
JP3267550B2 (ja) デグレードチェック装置
CN117289913B (zh) 编译器源文件处理方法、电子设备和介质
JP2609820B2 (ja) プログラム管理方法
JP2002032223A (ja) 複数os用アプリケーション生成装置及び記録媒体
JP2000231494A (ja) ソフトウェア実行システム及びソフトウェア実行方法
JPH11154093A (ja) プログラムコンパイラ及びコンパイラ用プログラムを記録した記録媒体
JP3019874B2 (ja) プログラム生成/合成装置および方法
JPH09101899A (ja) 手続きのプロセス化方式
JPH1124939A (ja) プログラム変換方法
JPH0385639A (ja) プログラム言語翻訳機
CN115454441A (zh) 软件工程的跨平台交叉编译方法、主机及存储介质
CN115373689A (zh) 基于llvm的编译优化方法、装置、设备及介质
JPH0561687A (ja) コンパイラの処理方式
JP2001014172A (ja) プログラム変換装置
KR20180098213A (ko) 단계형 중간언어 변환 장치 및 방법
JPH036624A (ja) 複数コード系に対応する翻訳リスト出力処理方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011113

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071214

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081214

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees