-
公开(公告)号:US09218169B2
公开(公告)日:2015-12-22
申请号:US14084399
申请日:2013-11-19
Applicant: GOOGLE INC.
Inventor: Ramakrishna Rajanna , Deepank Gupta , Arul Siva Murugan Velayutham , Abhishek Sheopory , Ankit Agarwal
CPC classification number: G06F11/3688 , G06F8/43 , G06F8/70 , G06F8/74 , G06F8/75 , G06F11/3676
Abstract: Techniques and systems for creating a function call graph for a codebase are disclosed. Graph creation includes identifying functions in the codebase by a function signature and representing a function as a first node in the call graph. For that function, identifying call-to functions, call-from functions, and inheritance parents and children, and a base class from the function signature of that function; adding child nodes to the first node based on the identified call-to and call-from functions; for an interface call to a base class method in the function, adding child nodes to the first node based on implementations of an override of the base class method; for an added child node, removing that child node from the first node if a source file that includes an implementation of an override and a source code file that includes the function don't share at least one common binary file.
Abstract translation: 公开了用于为代码库创建函数调用图的技术和系统。 图形创建包括通过函数签名识别代码库中的函数,并将该函数表示为调用图中的第一个节点。 对于该功能,从该函数的函数签名中识别调用函数,调用函数和继承父子和子代,以及基类; 基于所识别的呼叫和来电功能将子节点添加到第一节点; 对于函数中的基类方法的接口调用,基于基类方法的覆盖的实现将子节点添加到第一节点; 对于添加的子节点,如果包含覆盖的实现的源文件和包含该功能的源代码文件的源文件不共享至少一个通用二进制文件,则从第一个节点中删除该子节点。
-
公开(公告)号:US10042746B2
公开(公告)日:2018-08-07
申请号:US14963841
申请日:2015-12-09
Applicant: GOOGLE INC.
Inventor: Ramakrishna Rajanna , Deepank Gupta , Arul Siva Murugan Velayutham , Abhishek Sheopory , Ankit Agarwal
CPC classification number: G06F11/3688 , G06F8/43 , G06F8/70 , G06F8/74 , G06F8/75 , G06F11/3676
Abstract: Techniques and systems for creating a function call graph for a codebase are disclosed. Graph creation includes identifying functions in the codebase by a function signature and representing a function as a first node in the call graph. For that function, identifying call-to functions, call-from functions, and inheritance parents and children, and a base class from the function signature of that function; adding child nodes to the first node based on the identified call-to and call-from functions; for an interface call to a base class method in the function, adding child nodes to the first node based on implementations of an override of the base class method; for an added child node, removing that child node from the first node if a source file that includes an implementation of an override and a source code file that includes the function don't share at least one common binary file.
-