Recent Entries
Archives
Search


Links
Powered by
Movable Type 2.64

2009年10月16日

LD_PRELOADつかってOpenCOBOLで

LD_PRELOAD使ってOpenCOBOLでcob_file_openを差し替えとかヽ(´ー`)ノ

 以前にOpenCOBOLとcob_perlとMySQLで等でOpenCOBOLのデータベースファイルアクセスをMySQLへの処理に差し替える等書いてたわけですが、実際に現場で動作しています。

 ただし、この方法だと、CALL文使ってファイル関連の処理を書き換えたりするので、シカケが理解出来ていないとなかなか難しいところもあるのかなと考えていました。また、書き換え後のコードはDB処理に特化していますから、元のファイル処理のコードを書いた人(というか、大抵の場合は他社の社員の人)がメンテナンスしにくくなります。これは困りますね(;´Д`)

 ということで、LD_PRELOADつかって、libcob内のcob_file_open他file関連の関数を差し替えてしまう拡張を実装中ですヽ(´ー`)ノ。これならソース自体も元のままですし、気が向いたときファイル、またはDBを切り替え出来ますし、混在もファイルとDBでデータの突き合わせもやりやすくなります.
イメージ図

ファイル/DBの切り替えですが、特殊なファイル名(DSNとか)が指定された場合に、DBを使用するという方向で実装しています。または、ファイル名をカタログを確認して、処理方法を決める等。いずれにしろ、cob_file_open他ファイル関連の関数の処理に横入り出来ればデバッグにはかなり便利ですよね。

これと、OpenCOBOL-1.1から導入されたデバッグ用の機構を併用して「どのプログラムのどの行でどのようなデータが読み/書きされたか?」をモニタ出来るような拡張も準備中です。

ヽ(´ー`)ノ今月中に実装完了させたいところですね(出来れば)

Posted by minemaz at 2009年10月16日 15:17
トラックバック
このエントリーのトラックバックURL:
http://www.lancard.com/mt/mt-tb.cgi/472

Comments
Post a comment









Remember personal info?