JP4679540B2 - プログラム検証方法とシステムおよびプログラム - Google Patents
プログラム検証方法とシステムおよびプログラム Download PDFInfo
- Publication number
- JP4679540B2 JP4679540B2 JP2007067911A JP2007067911A JP4679540B2 JP 4679540 B2 JP4679540 B2 JP 4679540B2 JP 2007067911 A JP2007067911 A JP 2007067911A JP 2007067911 A JP2007067911 A JP 2007067911A JP 4679540 B2 JP4679540 B2 JP 4679540B2
- Authority
- JP
- Japan
- Prior art keywords
- resource
- processing means
- release
- management table
- program
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Description
Claims (3)
- プログラムされたコンピュータ処理により、検証対象のソースプログラムにおけるリソース解放洩れを検出するプログラム検証システムであって、
プログラムされたコンピュータ処理を実行する手段として、
検証対象のソースプログラムと該ソースプログラムが取り込む外部ライブラリおよびアプリケーションプログラムインタフェースを含むファイルとをコード変換して機械語からなる実行可能プログラムを生成し、当該実行可能プログラムの各ステップを順に読み出し、リソースを確保もしくは占有する命令語を検出すると共に、
上記ソースプログラムのステップ位置と、該ソースプログラムのステップ位置に対応する上記実行可能プログラムのステップ位置とを対応付けて登録したステップ位置対応管理テーブルを生成するリソース確保・占有位置探索処理手段と、
該リソース確保・占有位置探索処理手段が検出した命令語を起点に、当該実行可能プログラムが終了するまでの全ての処理経路をシミュレーションして探索し、シミュレーション探索した各経路毎に、上記リソース確保・占有位置探索処理手段が検出した命令語で確保もしくは占有したリソースを解放する命令語の有無を探索するリソース解放位置探索処理手段と、
該リソース解放位置探索処理手段がシミュレーション探索した各経路毎に、上記リソース確保・占有位置探索処理手段が検出した命令語で確保もしくは占有したリソースを更新もしくは参照する命令語を検出し、検出した命令語の当該実行可能プログラムにおける位置情報を登録したリソース管理テーブルを生成するリソース管理テーブル更新処理手段と、
上記リソース解放位置探索処理手段の探索結果で上記リソースを解放する命令語が無い場合、当該ソースプログラムのリソース解放洩れを通知する情報を生成して出力するリソース解放洩れ通知処理手段と
を有し、
上記リソース管理テーブル更新処理手段は、
上記検出した上記リソースを更新もしくは参照する命令語で当該リソースの識別名が新規に派生した場合には、
当該リソースの識別名を当該命令語の位置情報に対応付けて登録するリソース名称テーブルに追加し、
上記検出した命令語で当該リソースの識別名が変更された場合には、
上記リソース名称テーブルにおける当該リソースに対してチェーン構造で、変更された識別名と当該命令語の位置情報および変更前の位置情報とを追加すると共に、上記リソース管理テーブルにおける当該リソースの識別名を上記リソース名称テーブルにおける最新の位置情報に変更し、上記リソース管理テーブルにおける位置情報を検出した命令語の当該実行可能プログラムにおける位置情報に変更し、
上記リソース解放位置探索処理手段が上記リソースを解放する命令語を検出した場合には、上記リソース名称テーブルにおける当該リソースの識別名に対応する位置情報を0に更新し、
上記リソース解放洩れ通知処理手段は、
上記リソース解放位置探索処理手段の探索結果で上記リソースを解放する命令語が無い場合、上記リソース解放洩れを通知する情報を生成すると共に、上記リソース管理テーブル更新処理手段が生成し更新した上記リソース管理テーブルおよび上記リソース確保・占有位置探索処理手段は生成したステップ位置対応管理テーブルを参照して、最後に更新もしくは参照した当該命令語の位置情報を生成し、生成した位置情報とリソース解放漏れを通知する情報を出力し、
上記リソース管理テーブル更新処理手段が上記リソース名称テーブルにおける当該リソースの識別名に対応する位置情報を0に更新する際、当該位置情報がすでに0になっている場合には、解放処理過多を示すエラー情報を生成して出力する
ことを特徴とするプログラム検証システム。 - コンピュータを、請求項1に記載のプログラム検証システムにおける各手段として機能させるためのプログラム。
- プログラムされたコンピュータ処理により、検証対象のソースプログラムにおけるリソース解放洩れを検出するシステムのプログラム検証方法であって、
プログラムされたコンピュータ処理を実行する手段として、リソース確保・占有位置探索処理手段とリソース解放位置探索処理手段およびリソース管理テーブル更新処理手段とリソース解放洩れ通知処理手段とを有し、
上記リソース確保・占有位置探索処理手段は、
検証対象のソースプログラムと該ソースプログラムが取り込む外部ライブラリおよびアプリケーションプログラムインタフェースを含むファイルとをコード変換して機械語からなる実行可能プログラムを生成し、当該実行可能プログラムの各ステップを順に読み出し、リソースを確保もしくは占有する命令語を検出すると共に、
上記ソースプログラムのステップ位置と、該ソースプログラムのステップ位置に対応する上記実行可能プログラムのステップ位置とを対応付けて登録したステップ位置対応管理テーブルを生成し、
上記リソース解放位置探索処理手段は、
上記リソース確保・占有位置探索処理手段が検出した命令語を起点に、当該実行可能プログラムが終了するまでの全ての処理経路をシミュレーションして探索し、シミュレーション探索した各経路毎に、上記リソース確保・占有位置探索処理手段が検出した命令語で確保もしくは占有したリソースを解放する命令語の有無を探索し、
上記リソース管理テーブル更新処理手段は、
上記リソース解放位置探索処理手段がシミュレーション探索した各経路毎に、上記リソース確保・占有位置探索処理手段が検出した命令語で確保もしくは占有したリソースを更新もしくは参照する命令語を検出し、検出した命令語の当該実行可能プログラムにおける位置情報を登録したリソース管理テーブルを生成し、
上記リソース解放洩れ通知処理手段は、
上記リソース解放位置探索処理手段の探索結果で上記リソースを解放する命令語が無い場合、当該ソースプログラムのリソース解放洩れを通知する情報を生成して出力し、
さらに、
上記リソース管理テーブル更新処理手段は、
上記検出した上記リソースを更新もしくは参照する命令語で当該リソースの識別名が新規に派生した場合には、
当該リソースの識別名を当該命令語の位置情報に対応付けて登録するリソース名称テーブルに追加し、
上記検出した命令語で当該リソースの識別名が変更された場合には、
上記リソース名称テーブルにおける当該リソースに対してチェーン構造で、変更された識別名と当該命令語の位置情報および変更前の位置情報とを追加すると共に、上記リソース管理テーブルにおける当該リソースの識別名を上記リソース名称テーブルにおける最新の位置情報に変更し、上記リソース管理テーブルにおける位置情報を検出した命令語の当該実行可能プログラムにおける位置情報に変更し、
上記リソース解放位置探索処理手段が上記リソースを解放する命令語を検出した場合には、上記リソース名称テーブルにおける当該リソースの識別名に対応する位置情報を0に更新し、
上記リソース解放洩れ通知処理手段は、
上記リソース解放位置探索処理手段の探索結果で上記リソースを解放する命令語が無い場合、上記リソース解放洩れを通知する情報を生成すると共に、上記リソース管理テーブル更新処理手段が生成し更新した上記リソース管理テーブルおよび上記リソース確保・占有位置探索処理手段は生成したステップ位置対応管理テーブルを参照して、最後に更新もしくは参照した当該命令語の位置情報を生成し、生成した位置情報とリソース解放漏れを通知する情報を出力し、
上記リソース管理テーブル更新処理手段が上記リソース名称テーブルにおける当該リソースの識別名に対応する位置情報を0に更新する際、当該位置情報がすでに0になっている場合には、解放処理過多を示すエラー情報を生成して出力する
ことを特徴とするプログラム検証方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007067911A JP4679540B2 (ja) | 2007-03-16 | 2007-03-16 | プログラム検証方法とシステムおよびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007067911A JP4679540B2 (ja) | 2007-03-16 | 2007-03-16 | プログラム検証方法とシステムおよびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008226208A JP2008226208A (ja) | 2008-09-25 |
JP4679540B2 true JP4679540B2 (ja) | 2011-04-27 |
Family
ID=39844683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007067911A Expired - Fee Related JP4679540B2 (ja) | 2007-03-16 | 2007-03-16 | プログラム検証方法とシステムおよびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4679540B2 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272621A (ja) * | 1995-03-31 | 1996-10-18 | Hitachi Ltd | 動的メモリ領域を確保する関数呼出しの処理方法 |
JP2000132406A (ja) * | 1998-10-21 | 2000-05-12 | Hitachi Ltd | オブジェクトメモリ最適化方法 |
JP2001109644A (ja) * | 1999-10-07 | 2001-04-20 | Fujitsu Ltd | プログラム検証方法及び装置 |
JP2004145381A (ja) * | 2002-10-21 | 2004-05-20 | Hitachi Ltd | ソースプログラムの静的解析装置 |
JP2006127496A (ja) * | 2004-10-01 | 2006-05-18 | Matsushita Electric Ind Co Ltd | Api仕様検証装置及び方法、当該方法を実行させるプログラム、当該プログラムを格納する記憶媒体 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8020153B2 (en) * | 2004-10-04 | 2011-09-13 | Panasonic Corporation | Source code checker, source code checking method, program for causing execution of the method, and storage medium for storing the program |
-
2007
- 2007-03-16 JP JP2007067911A patent/JP4679540B2/ja not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08272621A (ja) * | 1995-03-31 | 1996-10-18 | Hitachi Ltd | 動的メモリ領域を確保する関数呼出しの処理方法 |
JP2000132406A (ja) * | 1998-10-21 | 2000-05-12 | Hitachi Ltd | オブジェクトメモリ最適化方法 |
JP2001109644A (ja) * | 1999-10-07 | 2001-04-20 | Fujitsu Ltd | プログラム検証方法及び装置 |
JP2004145381A (ja) * | 2002-10-21 | 2004-05-20 | Hitachi Ltd | ソースプログラムの静的解析装置 |
JP2006127496A (ja) * | 2004-10-01 | 2006-05-18 | Matsushita Electric Ind Co Ltd | Api仕様検証装置及び方法、当該方法を実行させるプログラム、当該プログラムを格納する記憶媒体 |
Also Published As
Publication number | Publication date |
---|---|
JP2008226208A (ja) | 2008-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4148527B2 (ja) | 機能テスト・スクリプト生成装置 | |
JP4057938B2 (ja) | コンパイラ、コンパイル方法、及びプログラム開発ツール | |
US8516442B2 (en) | Graphical user interface metadata evolution tool | |
US8122440B1 (en) | Method and apparatus for enumerating external program code dependencies | |
US20110126179A1 (en) | Method and System for Dynamic Patching Software Using Source Code | |
CN112596739B (zh) | 一种数据的处理方法和装置 | |
JP2010134643A (ja) | テストケースの選択方法及び選択システム | |
JP2015011372A (ja) | デバッグ支援システム、方法、プログラム及び記録媒体 | |
CN111679852B (zh) | 一种冲突依赖库的检测方法及装置 | |
CN117112060A (zh) | 组件库构建方法、装置、电子设备及存储介质 | |
JP5504960B2 (ja) | シミュレーション装置及びシミュレーション方法 | |
CN111552480B (zh) | 跨平台编译方法、装置、设备及可读存储介质 | |
JP2009104252A (ja) | デバッグ支援装置およびデバッグ支援方法 | |
JP4888790B2 (ja) | 契約定義関数検証装置、その方法及びそのプログラム | |
JP6878707B2 (ja) | 試験装置、試験方法および試験プログラム | |
JP4679540B2 (ja) | プログラム検証方法とシステムおよびプログラム | |
JP5891976B2 (ja) | コンパイル実行・管理方法、装置、及びプログラム | |
Sanchez-Cid et al. | Serenity pattern-based software development life-cycle | |
JP4983027B2 (ja) | チェックプログラム及びチェック方法 | |
JP2008020972A (ja) | ソフトウエア解析システム | |
JP2006338399A (ja) | プログラム開発装置、プログラム開発ソフトウェア及び記憶媒体 | |
CN116243971B (zh) | 一种基于静态依赖自举的内核无关的模块构建方法 | |
JPH10293683A (ja) | プログラムの比較解析装置、プログラムの比較解析方法、及びプログラムの比較解析プログラムを記録した機械読み取り可能な記録媒体 | |
JP5067705B2 (ja) | 異常系テスト支援装置、異常系テスト支援方法、及びプログラム | |
CN102262545A (zh) | 程序安装方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100930 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101105 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110104 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110201 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110201 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4679540 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140210 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |