P
US7478282B2ExpiredUtilityPatentIndex 61

Log acquisition method and its control program and storage medium

Assignee: CANON KKPriority: Apr 2, 2003Filed: Mar 31, 2004Granted: Jan 13, 2009
Est. expiryApr 2, 2023(expired)· nominal 20-yr term from priority
Inventors:IIZUKA TOSHIAKI
G06F 11/3636
61
PatentIndex Score
3
Cited by
13
References
11
Claims

Abstract

A log acquisition method which can easily acquire processing logs of software, and can reduce the number of processes required to analyze bugs is provided. More specifically, a log acquisition method for a program having functions, includes a step of identifying a designated one of functions in an OS which are called upon execution of the program, and a step of rewriting the address of the loaded functions that execute predetermined processes and the address of the designated function in the OS to that of a function for log acquisition. The function for log acquisition includes a step of calling the functions that execute predetermined processes and the designated function in the OS and passing the execution result of the called functions to the program, and a step of recording predetermined information upon calling the functions that execute predetermined processes and the designated function in the OS, and predetermined information upon receiving the result.

Claims

exact text as granted — not AI-modified
1. A log acquisition method for acquiring a log during execution of a program which comprises functions that execute predetermined processes, comprising:
 a step of identifying a designated function of functions in an operating system, which are called upon execution of the program; and 
 a step of rewriting addresses of the loaded functions that execute the predetermined processes, and an address of the designated function in the operating system to an address of a function for log acquisition, and 
 the function for log acquisition, comprising:
 a step of calling the functions that execute the predetermined processes and the designated function in the operating system, making the functions execute the predetermined processes, and passing a received execution result to the program; 
 a step of recording predetermined information upon calling the functions that execute the predetermined processes and the designated function in the operating system; 
 a step of recording predetermined information upon receiving the execution result; 
 a step of defining one or a plurality of predetermined modules; and 
 a step of determining whether or not a given function is called via the defined module, and in that when the function is called via the defined module, the predetermined information upon calling that function is excluded from a recording target. 
 
 
     
     
       2. The method according to  claim 1 , wherein the predetermined information upon calling the functions that execute the predetermined processes and the designated function in the operating system comprises at least one of function names of the called functions, a time upon calling, a parameter upon calling, and memory contents designated by a pointer parameter upon calling. 
     
     
       3. The method according to  claim 1 , wherein the predetermined information upon receiving the execution result comprises at least one of a time upon reception, a parameter upon reception, a return value upon reception, and memory contents designated by a pointer parameter upon reception. 
     
     
       4. The method according to  claim 1 , wherein the addresses of the functions that execute the predetermined processes are described in an import function address table for respective dynamic link libraries that provide the functions. 
     
     
       5. The method according to  claim 1 , further comprising, a step of selecting an address to be rewritten to the address of the function for log acquisition from the addresses of the functions that execute the predetermined processes, and in that the rewriting step includes a step of rewriting the address of the function selected in the selection step. 
     
     
       6. The method according to  claim 1 , further comprising:
 a step of defining one or a plurality of predetermined modules included in the operating system; and 
 a step of determining whether or not a given function is called via the defined module, and in that when the function is called via a module included in the operating system other than the defined modules, the predetermined information upon calling that function is excluded from a recording target. 
 
     
     
       7. The method according to  claim 1 , wherein when the predetermined information is a structure, information allocated at a position skipped by a size of the structure from a head of a memory area where the structure is stored, is recorded in correspondence with a size designated in the structure. 
     
     
       8. The method according to  claim 1 , wherein when the predetermined information is a structure, information allocated at a position skipped by an offset designated in the structure from a head of a memory area where the structure is stored, is recorded as data of a defined data type. 
     
     
       9. The method according to  claim 1 , wherein which of a plurality of pieces of predetermined information of functions of modules represents information of an object and which of them represents a class ID of the object are defined, and information of the object contained in the predetermined information of a function is recorded on the basis of the class ID of the object upon calling that function. 
     
     
       10. The method according to  claim 1 , wherein which of a plurality of pieces of predetermined information of functions of modules represents information of an object and which of them represents an interface ID of the object are defined, and information of the object stored in the predetermined information of a function is recorded on the basis of the interface ID of the object upon calling that function. 
     
     
       11. The method according to  claim 1 , wherein an additional definition of a module name corresponding to a library or each interface is prepared, and the module name is recorded with reference to the additional definition upon calling a function.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.