JP2006221630A - ログ取得方法およびプログラム、記憶媒体 - Google Patents
ログ取得方法およびプログラム、記憶媒体 Download PDFInfo
- Publication number
- JP2006221630A JP2006221630A JP2006024741A JP2006024741A JP2006221630A JP 2006221630 A JP2006221630 A JP 2006221630A JP 2006024741 A JP2006024741 A JP 2006024741A JP 2006024741 A JP2006024741 A JP 2006024741A JP 2006221630 A JP2006221630 A JP 2006221630A
- Authority
- JP
- Japan
- Prior art keywords
- function
- log acquisition
- log
- calling
- pointer
- 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
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
【解決手段】 所定の処理を行う関数を備えるプログラムの実行中のログを取得するために、ロードされた前記関数のアドレスを、ログ取得関数のアドレスに書き換える。前記ログ取得関数は、前記所定の処理を行う関数を呼び出して実行させ、実行結果を前記プログラムに渡す工程(S1310)と、前記関数を呼び出す際のパラメータが構造を指すポインタを含む場合に、当該ポインタの指す構造が更に先のレベルの構造を指すポインタを含んでいるかを設定レベルまで探索する工程(S1303〜1308)と、前記関数を呼び出す際のパラメータと、該パラメータが構造を指すポインタを含む場合に探索された構造のデータとを含む、前記関数を呼び出す際の情報を記録する工程(S1309)と、前記実行結果を受け取った際の情報を記録する工程(S1311)とを備える。
【選択図】 図13
Description
(1)ユーザの動作環境でもログを取得しつづけるためには、ソフトウェアのモジュール自体に手を加え、処理ログ取得ルーチンを追加しなければならず、処理ログ取得のための作業負荷が大きかった。
(2)処理ログ取得はモジュール毎に行うため、生成されたログはモジュール単位のものとなってしまい、ソフトウェア全体の処理を、完全に時間順のログとして取得するのが困難である。このため、全体の処理ログとしての見通しが悪く、ログを解析して障害の原因を発見するまでのプロセスに工数がかかっていた。
所定の処理を行う関数を備えるプログラムの実行中のログを取得するログ取得方法であって、
ロードされた前記所定の処理を行う関数のアドレスを、ログ取得のための関数のアドレスに書き換える工程を備え、
前記ログ取得のための関数は、
前記所定の処理を行う関数を呼び出し、該所定の処理を実行させ、受け取った実行結果を前記プログラムに渡す工程と、
前記関数を呼び出す際のパラメータが構造を指すポインタを含む場合に、当該ポインタの指す構造が更に先のレベルの構造を指すポインタを含んでいるかを設定レベルまで探索する工程と、
前記関数を呼び出す際のパラメータと、該パラメータが構造を指すポインタを含む場合に探索された構造のデータとを含む、前記関数を呼び出す際の情報を記録する工程と、
前記実行結果を受け取った際の情報を記録する工程とを備える。
本実施形態は、あるモジュールから別のモジュール内に存在する関数の呼び出しが行われる際の仕組みである、メモリに保持されたインポート関数アドレス、または仮想関数アドレステーブル(Virtual Address Table)を利用して、モジュール間の関数呼び出しをフックしてログに記録することで、ソフトウェアのモジュール自体に手を加えることなく、ソフトウエア全体の処理を、時間順のログとして取得することを可能にするものである。以下に具体的に説明する。
図1は、本発明の各実施形態にかかるログ取得方法を実現するコンピュータ(ソフトウェア評価システム)の構成をあらわす図である。説明を簡略化するために、本実施形態では、本ソフトウェア評価システムが1台のPC内部に構築されるものとするが、本発明のログ取得方法の特徴は1台のPC内部に構築されるか、あるいは複数のPCにネットワークシステムとして構築されるかによらず有効である。
本発明の第1の実施形態にかかるログ取得方法を実現するソフトウェア評価システムを説明するために、まず図2によって、複数のモジュールに分かれたソフトウェアが、通常の状態でどのようにメモリにロードされるかを説明する。
次に、本発明の第1の実施形態にかかるログ取得方法を実現するソフトウェア評価システムにおいて、実行ファイルEXE(118)がCOM(Component Object Model)サーバでエクスポートされているインターフェースのインスタンス作成時に、どのようにメモリにロードされるかを説明するために、まず、図6によって、通常の状態でどのようにメモリにロードされるかを説明する。
図10は、本発明の第1の実施形態にかかるログ取得方法を実現するソフトウェア評価システムにおいて、それぞれの関数及びメソッドのパラメータの型や、戻り値の型を指示する、関数定義ファイルの例を示す図である。DLL/インターフェース名及び関数/メソッド名を記述し(「関数/メソッド」とは、「関数またはメソッド」の意、以下同じ)、その関数/メソッドに対する、パラメータ及び戻り値の型が示されている。本実施形態にかかるログ取得方法を実現するソフトウェア評価システムは、この関数定義ファイルによって指示された内容を元に、それぞれの関数/メソッドがどのようなパラメータ/戻り値を有しているかを判断し、その内容をログとして取得する。
以下、第2の実施形態として、クラスを持つ関数パラメータ、または構造データ型の関数パラメータを有する関数/メソッドについて説明する。該関数パラメータの元では、EXEによって呼び出される関数/メソッドについての処理ログの取得対象が、選択的に制限されることとなる。
なお、本発明は、複数の機器(例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど)から構成されるシステムに適用しても、一つの機器からなる装置(例えば、複写機、ファクシミリ装置など)に適用してもよい。
Claims (7)
- 所定の処理を行う関数を備えるプログラムの実行中のログを取得するログ取得方法であって、
ロードされた前記所定の処理を行う関数のアドレスを、ログ取得のための関数のアドレスに書き換える工程を備え、
前記ログ取得のための関数は、
前記所定の処理を行う関数を呼び出し、該所定の処理を実行させ、受け取った実行結果を前記プログラムに渡す工程と、
前記関数を呼び出す際のパラメータが構造を指すポインタを含む場合に、当該ポインタの指す構造が更に先のレベルの構造を指すポインタを含んでいるかを設定レベルまで探索する工程と、
前記関数を呼び出す際のパラメータと、該パラメータが構造を指すポインタを含む場合に探索された構造のデータとを含む、前記関数を呼び出す際の情報を記録する工程と、
前記実行結果を受け取った際の情報を記録する工程と
を備えることを特徴とするログ取得方法。 - 前記関数を呼び出す際の情報は更に、少なくとも、呼び出された関数の関数名、呼び出す際の時刻のいずれかを備えることを特徴とする請求項1に記載のログ取得方法。
- 前記実行結果を受け取った際の情報は、少なくとも、受け取った際の時刻、受け取った際のパラメータ、受け取った際の戻り値、または受け取った際のポインタの指すメモリ内容のいずれかを備えることを特徴とする請求項1に記載のログ取得方法。
- 前記所定の処理を行う関数のアドレスは、該関数を提供するダイナミックリンクライブラリごとに、インポート関数アドレステーブルに記載されていることを特徴とする請求項1に記載のログ取得方法。
- 前記関数を呼び出す際の情報として、前記ポインタの指す構造を読み出す毎に記録することを特徴とする請求項1に記載のログ取得方法。
- 請求項1乃至5に記載のログ取得方法をコンピュータによって実行させるための制御プログラム。
- 請求項6に記載の制御プログラムを格納した記憶媒体。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100082727A CN100472469C (zh) | 2005-02-07 | 2005-02-07 | 运行日志获取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006221630A true JP2006221630A (ja) | 2006-08-24 |
JP4280749B2 JP4280749B2 (ja) | 2009-06-17 |
Family
ID=36918905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006024741A Expired - Fee Related JP4280749B2 (ja) | 2005-02-07 | 2006-02-01 | ログ取得方法およびプログラム、記憶媒体 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4280749B2 (ja) |
CN (1) | CN100472469C (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010129080A (ja) * | 2008-11-28 | 2010-06-10 | Beijing Kingsoft Software Co Ltd | ソフトウェア実行システムおよびソフトウェアの実行方法 |
CN114002987A (zh) * | 2021-11-03 | 2022-02-01 | 杭州和利时自动化有限公司 | 一种获取日志信息的方法、装置、电子设备及介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196848B (zh) * | 2006-12-04 | 2011-10-12 | 佳能株式会社 | 运行日志获取方法 |
CN100465968C (zh) * | 2007-08-20 | 2009-03-04 | 中兴通讯股份有限公司 | 自动化测试日志处理系统 |
CN103077111B (zh) * | 2011-10-26 | 2016-02-10 | 阿里巴巴集团控股有限公司 | 一种持续集成失败用例的定位方法及系统 |
CN106681651A (zh) * | 2016-05-05 | 2017-05-17 | 安徽南瑞继远电网技术有限公司 | 一种两级缓冲机制的日志管理系统设计方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7086034B2 (en) * | 2002-06-28 | 2006-08-01 | Canon Kabushiki Kaisha | Method, program, and storage medium for acquiring logs |
US7188279B2 (en) * | 2002-06-28 | 2007-03-06 | Canon Kabushiki Kaisha | Method, program, and storage medium for acquiring logs |
JP4125169B2 (ja) * | 2003-04-02 | 2008-07-30 | キヤノン株式会社 | ログ取得方法 |
-
2005
- 2005-02-07 CN CNB2005100082727A patent/CN100472469C/zh not_active Expired - Fee Related
-
2006
- 2006-02-01 JP JP2006024741A patent/JP4280749B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010129080A (ja) * | 2008-11-28 | 2010-06-10 | Beijing Kingsoft Software Co Ltd | ソフトウェア実行システムおよびソフトウェアの実行方法 |
CN114002987A (zh) * | 2021-11-03 | 2022-02-01 | 杭州和利时自动化有限公司 | 一种获取日志信息的方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN100472469C (zh) | 2009-03-25 |
JP4280749B2 (ja) | 2009-06-17 |
CN1818885A (zh) | 2006-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7406684B2 (en) | Compiler, dynamic compiler, and replay compiler | |
US7478282B2 (en) | Log acquisition method and its control program and storage medium | |
US9400667B2 (en) | String cache file for optimizing memory usage in a Java virtual machine | |
JP4280749B2 (ja) | ログ取得方法およびプログラム、記憶媒体 | |
US7251808B2 (en) | Graphical debugger with loadmap display manager and custom record display manager displaying user selected customized records from bound program objects | |
CN111124550A (zh) | 一种程序动态加载方法、装置及存储介质 | |
US7086034B2 (en) | Method, program, and storage medium for acquiring logs | |
JP4681868B2 (ja) | 情報処理装置及びその制御方法、コンピュータプログラム及び記憶媒体 | |
CN114237714A (zh) | 命令包生成方法、装置、电子设备和存储介质 | |
US7188279B2 (en) | Method, program, and storage medium for acquiring logs | |
US7426660B2 (en) | Method, program, and storage medium for acquiring logs | |
CN101196848B (zh) | 运行日志获取方法 | |
EP3635561B1 (en) | Asynchronous operation query | |
US10198784B2 (en) | Capturing commands in a multi-engine graphics processing unit | |
US20110219365A1 (en) | High and low value application state | |
CN109344083B (zh) | 一种程序调试方法、装置、设备及可读存储介质 | |
US6915512B1 (en) | Software editing with indication of format and processing state of each process of the software | |
JP4125056B2 (ja) | ログ取得方法 | |
US20140026139A1 (en) | Information processing apparatus and analysis method | |
JP4125053B2 (ja) | ログ取得方法 | |
JP2006031248A (ja) | 関数呼び出しをフックしてログを生成するソフトウェア評価システム | |
JP4125054B2 (ja) | ログ取得方法 | |
CN116302349A (zh) | 加快Java应用程序启动速度的方法及其相关组件 | |
JP2006172204A (ja) | 情報処理装置、情報処理方法、コンピュータプログラム及び記憶媒体 | |
CN116841657A (zh) | 接口函数调用方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080722 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080725 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080924 |
|
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: 20090302 |
|
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: 20090316 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120319 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130319 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140319 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |