US8990792B2ActiveUtilityA1

Method for constructing dynamic call graph of application

75
Assignee: GORELKINA EKATERINAPriority: May 26, 2008Filed: May 26, 2009Granted: Mar 24, 2015
Est. expiryMay 26, 2028(~1.9 yrs left)· nominal 20-yr term from priority
G06F 11/36G06F 11/3636G06F 11/3612G06F 11/3604
75
PatentIndex Score
20
Cited by
22
References
8
Claims

Abstract

A method of generating a dynamic call graph of an application is disclosed. The method includes collecting information on what program code pages are accessed during each sampling period, defining parts of an executable program code which are accessible during each sampling period according to the collected information, defining a set of functions within the defined parts of the executable program code, generating dynamic call graphs using the defined set of functions for each sampling period, and generating dynamic call graphs for an observation period by combining accurate dynamic call graphs of each sampling period.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method for generating a dynamic call graph of an observation period having a plurality of sampling periods, the method comprising:
 collecting information on what program code pages are accessed during each sampling period of the program's execution; 
 defining parts of an executable program code which are accessible during each sampling period according to the collected information; 
 defining a set of functions that have been probably invoked during each sampling period within the defined parts of the executable program code; 
 generating a set of possible dynamic call graphs using the defined set of functions for each sampling period; 
 generating accurate dynamic call graphs for each sampling period of the observation period in operation by deleting dynamic call graphs, which were erroneously generated due to a misinterpretation of the collected information, from the generated dynamic call graphs through analyzing a program source code; and 
 generating a dynamic call graph for the overall observation period in operation by combining the accurate dynamic call graphs for each sampling period of the overall observation period in operation, wherein 
 the erroneously generated call graphs include incorrect or undesirable call graphs generated from sampled data; and 
 the information on what program code pages are accessed during each sampling period is provided by an operating system and contains accessible application codes during each sampling period. 
 
     
     
       2. The method of  claim 1 , wherein the program source code is a binary code. 
     
     
       3. The method of  claim 1 , further comprising generating accurate dynamic call graphs for the observation period by deleting erroneous dynamic call graphs from the generated dynamic call graph for the observation period through analyzing the program source code. 
     
     
       4. The method of  claim 1 , wherein the dynamic call graphs are generated by using a predetermined algorithm. 
     
     
       5. The method of  claim 1 , wherein the dynamic call graphs are constructed to be generated in sequence from possible invoked function sets. 
     
     
       6. The method of  claim 1 , wherein the erroneous dynamic call graphs are deleted at an initial analysis of the program source code. 
     
     
       7. The method of  claim 1 , wherein the erroneous dynamic call graphs are deleted at an analysis of a binary code. 
     
     
       8. A non-transitory computer-readable storage medium storing a program to generate a dynamic call graph of an observation period having a plurality of sampling periods, the program comprising instructions to cause a computer to:
 collect information on what program code pages are accessed during each sampling period of the program's execution; 
 define parts of an executable program code which are accessible during each sampling period according to the collected information; 
 define a set of functions that have been probably invoked during each sampling period within the defined parts of the executable program code; 
 generate a set of possible dynamic call graphs using the defined set of functions for each sampling period; 
 generate accurate dynamic call graphs for each sampling period of the observation period in operation by deleting dynamic call graphs, which were erroneously generated due to a misinterpretation of the collected information, from the generated dynamic call graphs through analyzing a program source code; and 
 generate a dynamic call graph for the overall observation period in operation by combining the accurate dynamic call graphs for each sampling period of the overall observation period in operation, wherein 
 the erroneously generated call graphs include incorrect or undesirable call graphs generated from sampled data; and 
 the information on what program code pages are accessed during each sampling period is provided by an operating system and contains accessible application codes during each sampling period.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.