IP Library › Granted Patent US 7,086,034
Granted Patent B2
US 7,086,034 · App. 10/600,843 · Granted Aug 1, 2006

Method, program, and storage medium for acquiring logs

Assignee: Canon Kabushiki Kaisha
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,086,034
App. No.
10/600,843
Granted
Aug 1, 2006
Kind
B2
Abstract

A log acquisition method is provided that allows a processing log of software to readily be acquired and reduces the man-hours needed for analyzing a bug. The log acquisition method is a method for acquiring a runtime log of a program including a function, comprising the step of changing the address of the function loaded to the address of a function for log acquisition and selecting the function, wherein the function for log acquisition comprises the steps of: calling the function the log of which is to be acquired to cause a predetermined process to be executed, receiving the result of the execution, and passing said result to said program, recording given information when calling the address of the selected function, and recording given information when receiving the result of the execution of the selected function.

Claims (174)

1. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the step of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition,

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program;

determining whether or not a pointer parameter is defined in a predetermined manner in a function definition in said program; and

if the pointer parameter is defined in the predetermined manner, recording a memory content pointed to by said pointer parameter as a log according to said definition.

2. The log acquisition method according to claim 1 , wherein said function for log acquisition further comprises the step of calculating memory size according to said definition and said recording step records an amount of the memory content pointed to by said pointer parameter, said amount being equal to said calculated memory size.

3. A storage medium storing a control program for causing a computer to implement the log acquisition method according to claim 1 .

4. A control program for causing a computer to implement the log acquisition method according to claim 1 .

5. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the step of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition,

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, and receiving the result of the execution to said program;

recording given information when calling said function for performing said predetermined process and recording given information when receiving said result of the execution;

determining whether or not there is an unexported function according to a function definition in said program; and

if there is an unexported function, generating a new function for log acquisition that corresponds to said unexported function and changing the address of said unexported function into the address of said newly generated function; and

said newly generated function comprises the steps of:

calling said unexported function to cause said process to be executed and receiving the result of the execution and passing said result to said program; and

recording given information when calling said unexported function and recording given information when receiving said result of the execution.

6. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the step of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition,

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution and passing said result to said program;

determining whether or not a pointer parameter is defined as a variable-length array in a function definition in said program; and

if a pointer parameter is defined as a variable-length array, recording a memory content pointed to by said pointer parameter as a variable-length array.

7. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the step of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition,

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution and passing said result to said program;

determining whether or not a pointer parameter is specified as a structure in a function definition in said program; and

if a pointer parameter is specified as a structure, recording a memory content pointed by said pointer as a log of size of said structure defined in the function definition in said program.

8. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the step of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition,

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution and passing said result to said program;

determining whether or not a pointer parameter the type of which is specified as a structure is defined in a function definition in said program; and

if a pointer parameter of the type of which is specified as a structure is defined, recording a memory content pointed to by said pointer parameter as data of the specified data type.

9. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the process of:

changing said method loaded for performing said predetermined process to the address of a method for log acquisition;

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermine process to be executed, receiving the result of the execution, and passing said result to said program;

determining whether or not a pointer parameter is defined in a predetermined manner in a function definition in said program; and

if the pointer parameter is defined in the predetermined definition manner, recording a memory content pointed by said pointer parameter as a log according to said definition.

10. The log acquisition method according to claim 9 , wherein said method for log acquisition further comprising the step of calculating memory size according to said definition, wherein said recording step records an amount of the memory content pointed to by said pointer parameter, said amount being equal to said calculated memory size.

11. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the process of:

changing said method loaded for performing said predetermined process to the address of a method for log acquisition;

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermine process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program;

recording given information when calling said method for performing said predetermined program and recording given information when receiving said execution result;

determining whether or not there is an unexported method according to a function definition in said program; and

if there is an unexported method, generating a new method for log acquisition that corresponds to said unexported method and changing the address of said unexported method to the address of said newly generated method; and

said newly generated method comprises the steps of:

calling said unexported method to cause said process to be executed and receiving the result of the execution and passing said result to said program; and

recording given information when calling said unexported method and recording given information when receiving said result of the execution.

12. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the step of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition,

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution and passing said result to said program;

determining whether or not a pointer parameter is defined as a variable-length array in a function definition in said program; and

if a pointer parameter is defined as a variable-length array, recording a memory content pointed to by said pointer parameter as a variable-length array.

13. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the step of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition,

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution and passing said result to said program;

determining whether or not a pointer parameter is specified as a structure in a function definition in said program; and

if a pointer parameter is specified as a structure, recording a memory content pointed by said pointer as a log of size of said structure defined in the function definition in said program.

14. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the step of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition,

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution and passing said result to said program;

determining whether or not a pointer parameter the type of which is specified as a structure is defined in a function definition in said program; and

if a pointer parameter of the type of which is specified as a structure is defined, recording a memory content pointed to by said pointer parameter as data of the specified data type.

15. A log acquisition method for obtaining a runtime log of a program including a function for performing a predetermined process, comprising the steps of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition; and

selecting said function for log acquisition;

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said process to be executed, receiving the result of the execution, and passing said result to said program;

recording given information as a log when calling said function selected in said selecting step; and

recording given information as a log when receiving the result of execution of said function selected in said selecting step.

16. The log acquisition method according to claim 15 , wherein said function for log acquisition further comprises the step of determining whether or nor an error has occurred during execution of the function selected in said selecting step,

and said step for recording information as a log records said given information as a log if it is determined that an error has occurred in said error determination step.

17. A storing medium storing a control program for causing a computer to implement the log acquisition method according to claim 15 .

18. A control program for causing a computer to implement the log acquisition method according to claim 15 .

19. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the steps of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition; and

selecting said function for performing said predetermined process;

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program;

recording given information as a log when calling said function for performing said predetermined process and recording given information as a log when receiving the result of execution of said function; and

stopping log recording for the function selected in said selecting step.

20. The log acquisition method according to claim 19 , wherein said function for log acquisition further comprises the step of determining whether or nor an error has occurred during execution of the function selected in said selecting step, and

said step of stopping log recording stops log recording if it is determined that an error has occurred in said error determination step.

21. A log acquisition method for obtaining a runtime log of a program including a method for performing a predetermined process, comprising the steps of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition; and

selecting said method for performing said predetermined process;

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said process to be executed, receiving the result of the execution, and passing said result to said program;

recording given information as a log when calling said method selected in said selecting step; and

recording given information as a log when receiving the result of execution of said method selected in said selecting step.

22. The log acquisition method according to claim 21 , wherein said function for log acquisition further comprises the step of determining whether or nor an error has occurred during execution of the method selected in said selecting step,

and said step for recording information as a log records said given information as a log if it is determined that an error has occurred in said error determination step.

23. The log acquisition method according to claim 21 , further comprising the step of displaying an interface exported by a COM server and method belonging to said interface in a tree form, wherein

said selecting step makes the selection through said display.

24. The log acquisition method according to claim 23 , wherein said selecting step makes the selection on a method-by-method basis.

25. The log acquisition method according to claim 23 , wherein said selecting step selects all the methods belonging to said interface by selecting said interface.

26. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the steps of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition; and

selecting said method for performing said predetermined process;

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program;

recording given information as a log when calling said method for performing said predetermined process and recording given information as a log when receiving the result of execution of said method; and

stopping log recording for the method selected in said selecting step.

27. The log acquisition method according to claim 26 , wherein said function for log acquisition further comprises the step of determining whether or nor an error has occurred during execution of the method selected in said selecting step, and

said step of stopping log recording stops log recording if it is determine that an error has occurred in said error determination step.

28. The log acquisition method according to claim 26 , further comprising the step of displaying an interface exported by a COM server and method belonging to said interface in a tree form, wherein

said selecting step selects the method through said display.

29. The log acquisition method according to claim 28 , wherein said selecting step makes the selection on a method-by-method basis.

30. The log acquisition method according to claim 28 , wherein said selecting step selects all the methods belonging to said interface by selecting said interface.

31. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the steps of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition; and

selecting said function for performing said predetermined process;

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program; and

recording given information as a log when calling said function for performing said predetermined process and recording given information as a log when receiving the result of execution of said function; wherein

said step of recording as a log records the log on a date-by-date basis.

32. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the steps of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition; and

selecting said function for performing said predetermined process;

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program; and

recording given information as a log when calling said function for performing said predetermined process and recording given information as a log when receiving the result of execution of said function; wherein

said log recording step generates a new file when the size of the log exceeds a predetermined size.

33. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the steps of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition; and

selecting said function for performing said predetermined process;

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program; and

recording given information as a log when calling said function for performing said predetermined process and recording given information as a log when receiving the result of execution of said function; wherein

said log recording step generates anew file when the number of logs exceeds a predetermined number.

34. A log acquisition method for acquiring a runtime log of a program including a function for performing a predetermined process, comprising the steps of:

changing the address of said function loaded for performing said predetermined process to the address of a function for log acquisition; and

selecting said function for performing said predetermined process;

wherein said function for log acquisition comprises the steps of:

calling said function for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program; and

recording given information as a log in memory when calling said function for performing said predetermined process and recording given information as a log when receiving the result of execution of said function; wherein

said step of recording as log in memory moves and stores the log into a disk device when the number of logs in said memory exceeds a predetermined number.

35. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the steps of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition; and

selecting said method for performing said predetermined process;

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program; and

recording given information as a log when calling said method for performing said predetermined process and recording given information as a log when receiving the result of execution of said method; wherein

said step of recording as a log records the log on a date-by-date basis.

36. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the steps of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition; and

selecting said method for performing said predetermined process;

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program; and

recording given information as a log when calling said method for performing said predetermined process and recording given information as a log when receiving the result of execution of said method; wherein

said log recording step generates a new file when the size of the log exceeds a predetermined size.

37. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the steps of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition; and

selecting said method for performing said predetermined process;

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program; and

recording given information as a log when calling said method for performing said predetermined process and recording given information as a log when receiving the result of execution of said method; wherein

said log recording step generates a new file when the number of logs exceeds a predetermined number.

38. A log acquisition method for acquiring a runtime log of a program including a method for performing a predetermined process, comprising the steps of:

changing the address of said method loaded for performing said predetermined process to the address of a method for log acquisition; and

selecting said method for performing said predetermined process;

wherein said method for log acquisition comprises the steps of:

calling said method for performing said predetermined process to cause said predetermined process to be executed, receiving the result of the execution, and passing said result to said program; and

recording given information as a log in memory when calling said method for performing said predetermined process and recording given information as a log when receiving the result of execution of said method; wherein

said step of recording as log in memory moves and stores the log into a disk device when the number of logs in said memory exceeds a predetermined number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2003
From: MIHARA, MAKOTO
To: CANON KABUSHIKI KAISHA
Reel/Frame 014225/0631 →
Priority Claims (2)
JP 2002-191129 · Jun 28, 2002 · national
JP 2002-191128 · Jun 28, 1920 · national
Continuity (1)
Related Publication 20040015736A1 · Jan 22, 2004