IP Library Granted Patent US 8,990,792
Granted Patent B2
US 8,990,792 · App. 12/471,506 · Granted Mar 24, 2015

Method for constructing dynamic call graph of application

Inventor: Ekaterina Gorelkina (Moscow, RU)
Assignee: Samsung Electronics Co., Ltd.
G06F11/3612G06F11/3636G06F11/3604G06F11/36
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 8,990,792
App. No.
12/471,506
Granted
Mar 24, 2015
Kind
B2
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 (24)

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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 27, 2009
From: GORELKINA, EKATERINA
To: SAMSUNG ELECTRONICS CO., LTD.
Reel/Frame 022736/0075 →
Priority Claims (2)
RU 2008120587 · May 26, 2008 · national
KR 10-2009-0036569 · Apr 27, 2009 · national
Continuity (1)
Related Publication 20090293049A1 · Nov 26, 2009