Using Procedure Or Function Call Graph Patents (Class 717/133)
  • Patent number: 10310927
    Abstract: A method is provided for operating a trace procedure, which traces execution of a computer program, where the program uses different callable modules. A program stack is used to store trace buffer information and an error state, and the modules include calls of the trace procedure. The method includes: (i) when entering execution of a module, storing the current write position of the trace buffer and a cleared error flag in the current frame of the stack; (ii) in case of an error condition during execution of the program, setting the error flag in the current frame; and (iii) when leaving execution of a module, determining if the error flag is set, and if not, then rewinding the trace buffer to the write position stored in the current frame, and deleting the current write position of the trace buffer and the error flag from the stack.
    Type: Grant
    Filed: October 26, 2015
    Date of Patent: June 4, 2019
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Thomas Hess, Martin Raitza, Ralf Richter, Philip Sebastian Schulz, Markus K. Strasser
  • Patent number: 10241890
    Abstract: Computer program, methods, and systems for code modification of a programming language platform and a software application in an intermediate language at different times are disclosed. The methods and system may modify a portion of the programming language platform in the intermediate language at a first time to alter a functionality of or add a new functionality to the programming language platform; and may modify the software application in the intermediate language at a second time different from the first time, where the software application may be modified based on a runtime analysis rule that uses the altered or added new functionality of the programming language platform. The modified programming language platform may be included in a first package, and the modified software application may be included in a second package, and executed on the modified programming language platform.
    Type: Grant
    Filed: July 28, 2016
    Date of Patent: March 26, 2019
    Assignee: SALESFORCE.COM, INC.
    Inventor: Sergey Gorbaty
  • Patent number: 10180894
    Abstract: Techniques for identifying a stack frame responsible for resource usage are described. For instance, techniques described herein enable a particular process and a particular stack frame and/or set of stack frames of the process that are high resource consumers to be identified. According to various implementations, resource usage of a process is observed and recorded over a period of time. A data structure is generated that characterizes the resource usage of the process over the sampling period. The data structure be evaluated to identify a stack frame that is responsible for excess resource consumption. In at least some implementations, a remedial procedure can be performed to attempt to reduce the process's resource usage.
    Type: Grant
    Filed: June 13, 2017
    Date of Patent: January 15, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sk Kajal Arefin Imon, Navid Jalali Heravi, Ivan Michael Berg, Cong Chen, Feng Liang, Michael D. Moshofsky, David Gregory Grant
  • Patent number: 10102039
    Abstract: Converting a hybrid flow can include combining each of a plurality of task nodes with a plurality of corresponding operators of the hybrid flow and converting the combined plurality of task nodes and the plurality of corresponding operators of the hybrid flow to a data flow graph using a code template.
    Type: Grant
    Filed: May 17, 2013
    Date of Patent: October 16, 2018
    Assignee: ENTIT SOFTWARE LLC
    Inventors: Petar Jovanovic, Alkiviadis Simitsis, William K. Wilkinson
  • Patent number: 10083029
    Abstract: An example method of detecting incompatibility between an application and an application dependency includes identifying a first set of contracts exposed in a first version of an application dependency. Each contract includes a symbol and a corresponding signature. The example method also includes comparing the first set of contracts to a corresponding second set of contracts exposed in a second version of the application dependency. The example method further includes determining, based on the comparing, whether the first set of contracts matches the second set of contracts. If the first set of contracts matches the second set of contracts, an indication that the second set of contracts is compatible with the application is provided. If the first set of contracts does not match the second set of contracts, an indication that the second set of contracts is not compatible with the application is provided.
    Type: Grant
    Filed: November 9, 2016
    Date of Patent: September 25, 2018
    Assignee: Red Hat, Inc.
    Inventors: Pavel Odvody, Fridolin Pokorny, Jan Chaloupka
  • Patent number: 10055210
    Abstract: A method for expanding inline function calls in inlining scenarios includes receiving an ordered list of inlining options for a computer program and a relational data structure representing dependencies between the inlining options, wherein each inlining option includes an associated cost value and an associated benefit value. A maximum-benefit inlining plan for a selected inlining option of the ordered list is then determined, wherein the maximum-benefit inlining plan includes a set of inlining options from the ordered list that provide a maximum combined benefit value for a combined cost value that is equal to or less than a maximum cost budget, subject to the following conditions: each inlining option of the set precedes, or is, the selected inlining option in the ordered list, and for each inlining option of the set, the set also includes each inlining option that the respective inlining option is dependent on.
    Type: Grant
    Filed: August 24, 2016
    Date of Patent: August 21, 2018
    Assignee: International Business Machines Corporation
    Inventors: Andrew J. Craik, Rachel E. Craik, Patrick R. Doyle
  • Patent number: 9753791
    Abstract: A method, an apparatus, and a computer program product which capture and use analytics data relating to the internal activity of software programs executing in a message-passing runtime environment, such as that provided by Objective-C. The invention exploits the well documented interfaces of these environments together with their dynamic runtime capabilities to insert data collection and analysis code into an application without modification of the target application.
    Type: Grant
    Filed: July 12, 2016
    Date of Patent: September 5, 2017
    Assignee: AppDynamics LLC
    Inventors: Vishweshwar Ghanakota, Fred McClain, Stephen Mickelsen
  • Patent number: 9747242
    Abstract: An apparatus can include a first state machine engine configured to receive a first portion of a data stream from a processor and a second state machine engine configured to receive a second portion of the data stream from the processor. The apparatus includes a buffer interface configured to enable data transfer between the first and second state machine engines. The buffer interface includes an interface data bus coupled to the first and second state machine engines. The buffer interface is configured to provide data between the first and second state machine engines.
    Type: Grant
    Filed: September 6, 2016
    Date of Patent: August 29, 2017
    Assignee: Micron Technology, Inc.
    Inventors: David R. Brown, Harold B Noyes, Inderjit S. Bains
  • Patent number: 9733927
    Abstract: In an approach for determining compatibility between a computing device and a software application, a processor receives code of a software application. A processor generates a call graph for the software application using the code, wherein the call graph describes at least a first type of hardware component required to execute the software application. A processor identifies a set of one or more hardware components included within a computing device. A processor determines whether the computing device is compatible with the software application based on, at least, the call graph and the determined set of one or more hardware components included within the computing device.
    Type: Grant
    Filed: November 11, 2015
    Date of Patent: August 15, 2017
    Assignee: International Business Machines Corporation
    Inventors: Julian T. Dolby, Pietro Ferrara, Marco Pistoia, Omer Tripp
  • Patent number: 9582275
    Abstract: In one embodiment, a processor includes a performance monitor including a last branch record (LBR) stack to store a call stack to an event of interest, where the call stack is collected responsive to a trigger for the event. The processor further includes logic to control the LBR stack to operate in a call stack mode such that an entry to a call instruction for a leaf function is cleared on return from the leaf function. Other embodiments are described and claimed.
    Type: Grant
    Filed: May 31, 2011
    Date of Patent: February 28, 2017
    Assignee: Intel Corporation
    Inventors: Michael W. Chynoweth, Peggy J. Irelan, Matthew C. Merten, Seung-Woo Kim, Laura A. Knauth, Stanislav Bratanov
  • Patent number: 9582667
    Abstract: In an aspect of managing resource exhaustion, a method includes receiving a program code that is configured for generating a random number. The generating is identified as vulnerable to a resource exhaustion. The method also includes identifying a statement in the program code at which a value of a variable associated with the generating of the random number is affected, inserting a hooking code in the statement for monitoring the variable at the statement, and running the program code in a plurality of iterations. A consumption level of the resource is varied in the plurality of iterations. The method further includes monitoring a plurality of values of the variable in the plurality of iterations. The method also includes executing a regression analysis on the plurality of values and returning a root cause of the vulnerability.
    Type: Grant
    Filed: September 30, 2013
    Date of Patent: February 28, 2017
    Assignee: GLOBALFOUNDRIES INC.
    Inventors: Roee Hay, Roi Saltzman, Omer Tripp
  • Patent number: 9495141
    Abstract: A method for expanding inline function calls in inlining scenarios includes receiving an ordered list of inlining options for a computer program and a relational data structure representing dependencies between the inlining options, wherein each inlining option includes an associated cost value and an associated benefit value. A maximum-benefit inlining plan for a selected inlining option of the ordered list is then determined, wherein the maximum-benefit inlining plan includes a set of inlining options from the ordered list that provide a maximum combined benefit value for a combined cost value that is equal to or less than a maximum cost budget, subject to the following conditions: each inlining option of the set precedes, or is, the selected inlining option in the ordered list, and for each inlining option of the set, the set also includes each inlining option that the respective inlining option is dependent on.
    Type: Grant
    Filed: December 1, 2015
    Date of Patent: November 15, 2016
    Assignee: International Business Machines Corporation
    Inventors: Andrew J. Craik, Rachel E. Craik, Patrick R. Doyle
  • Patent number: 9448965
    Abstract: An apparatus can include a first state machine engine configured to receive a first portion of a data stream from a processor and a second state machine engine configured to receive a second portion of the data stream from the processor. The apparatus includes a buffer interface configured to enable data transfer between the first and second state machine engines. The buffer interface includes an interface data bus coupled to the first and second state machine engines. The buffer interface is configured to provide data between the first and second state machine engines.
    Type: Grant
    Filed: October 28, 2013
    Date of Patent: September 20, 2016
    Assignee: Micron Technology, Inc.
    Inventors: David R. Brown, Harold B Noyes, Inderjit S. Bains
  • Patent number: 9367426
    Abstract: In one embodiment, a method for call graph analysis is provided. The method includes determining a plurality of nodes in a call graph. The plurality of nodes represent resource consumption of functions of a software program executed in a software system. A simplification factor is determined. A first set of nodes in the plurality of nodes is then eliminated based on exclusive values for the plurality of nodes, inclusive values for the plurality of nodes, and the simplification factor. An inclusive value for a node is a first amount of resources consumed by the node and any descendent nodes of that node. An exclusive value for the node is a second amount of resources consumed by the node. A simplified call graph is output including a second set of nodes in the plurality of nodes. The second set of nodes does not include the eliminated first set of nodes.
    Type: Grant
    Filed: March 4, 2015
    Date of Patent: June 14, 2016
    Assignee: SAP SE
    Inventors: Cheolman Park, Chan Young
  • Patent number: 9292315
    Abstract: For each of a plurality of different tenants configured to concurrently execute in a virtual environment, a respective class loader graph can be constructed. For each respective class loader graph, unique types of edges between nodes that affect class loading can be identified. The edges can be traversed. Based on traversing the edges of the class loader graph, a respective unique dependency identifier (UDI) can be assigned to each class loader request. Class loader requests that are assigned the same UDI can be identified in at least two of the tenants. Responsive to identifying the class loader requests that are assigned the same UDI, a shared class loader can be assigned to each of the class loader requests. Each respective class loader request that is assigned the same UDI can be configured to call the shared class loader to load at least one class required by the respective tenant.
    Type: Grant
    Filed: March 16, 2015
    Date of Patent: March 22, 2016
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Michael H. Dawson, Bentley J. Hargrave, Thomas J. Watson
  • Patent number: 9274768
    Abstract: Runtime code hooking techniques are described in which a place holder instruction within a compiled module is used as an entry point to enable code hooking. A hook function to modify a target function is developed. At runtime, the target function to be modified is located. A place holder instruction within the target function is overwritten with instructions to cause execution of the hook function when the target function is called.
    Type: Grant
    Filed: June 17, 2014
    Date of Patent: March 1, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Ashwin S. Needamangala, Daniel S. Mihai, Hristo H. Ivanov, Marius Popa, Mariyan D. Fransazov
  • Patent number: 9244666
    Abstract: A mechanism is provided to globally inline a callee with high cost-effectiveness on the basis only of profile information in a call graph, without looking through all call-graph edges. The mechanism provides a technique for inlining. An inline cost-effectiveness ratio for the callee reachable from a caller to be compiled is calculated. Calculating the inline cost-effectiveness ration includes using a ratio of a frequency of calls to the callee to a total of call frequencies as effectiveness and using a ratio of a code size of the callee to a total size of inlinable code as cost. A determination is made as to whether to inline the callee by comparing the inline cost-effectiveness ratio with a predetermined threshold. The callee is inlined into a source code in response to determining that the callee method is to be inlined.
    Type: Grant
    Filed: February 25, 2015
    Date of Patent: January 26, 2016
    Assignee: International Business Machines Corporation
    Inventors: Takuya Nakaike, Toshio Suganuma
  • Patent number: 9177143
    Abstract: A disclosed method includes determining modifications have been made to a program and deriving data flow seeds that are affected by the modifications. The method includes selecting one of the data flow seeds that are affected by the modifications or data flow seeds that are not affected by the modifications but that are part of flows that are affected by the modifications and performing a security analysis on the program. The security analysis includes tracking flows emanating from the selected data flow seeds to sinks terminating the flows. The method includes outputting results of the security analysis. The results comprise one or more indications of security status for one or more of the flows emanating from the selected data flow seeds. At least the deriving, selecting, and performing are performed using a static analysis of the program. Apparatus and program products are also disclosed.
    Type: Grant
    Filed: May 17, 2013
    Date of Patent: November 3, 2015
    Assignee: International Business Machines Corporation
    Inventors: Omer Tripp, Marco Pistoia, Salvatore A. Guarnieri
  • Patent number: 9158504
    Abstract: A system and computer-executed method automatically generate a sequence diagram from Class-Responsibility-Collaborator (CRC) information. The CRC information identifies objects, responsibility information for each object, and collaborator information for each object, and the CRC information corresponds with each activity in an activity diagram. The method includes storing, in a storage device, the objects and corresponding class types of the objects according to the CRC information and associating, by a processor, each of the objects with one or more other objects according to the collaborator information of the CRC information. The method also includes determining, by the processor, messages from each of the objects to associated objects according to the responsibility information, and the processor automatically generating the sequence diagram including the objects and the messages among the objects.
    Type: Grant
    Filed: October 2, 2013
    Date of Patent: October 13, 2015
    Assignee: Baker Hughes Incorporated
    Inventor: David W. Green
  • Patent number: 9135441
    Abstract: A disclosed method includes determining modifications have been made to a program and deriving data flow seeds that are affected by the modifications. The method includes selecting one of the data flow seeds that are affected by the modifications or data flow seeds that are not affected by the modifications but that are part of flows that are affected by the modifications and performing a security analysis on the program. The security analysis includes tracking flows emanating from the selected data flow seeds to sinks terminating the flows. The method includes outputting results of the security analysis. The results comprise one or more indications of security status for one or more of the flows emanating from the selected data flow seeds. At least the deriving, selecting, and performing are performed using a static analysis of the program. Apparatus and program products are also disclosed.
    Type: Grant
    Filed: September 12, 2013
    Date of Patent: September 15, 2015
    Assignee: International Business Machines Corporation
    Inventors: Omer Tripp, Marco Pistoia, Salvatore A. Guarnieri
  • Patent number: 9026988
    Abstract: To which method on each method call order pattern included in a series of application codes executed in response to a request a method included in an application code executed in response to a request corresponds is detected; a code is generated based on identification information corresponding to the detected method on the call order pattern; and the generated code is inserted to the application code.
    Type: Grant
    Filed: March 7, 2012
    Date of Patent: May 5, 2015
    Assignee: Fujitsu Limited
    Inventor: Motoyuki Kawaba
  • Patent number: 9021451
    Abstract: In one embodiment, a method for call graph analysis is provided. The method includes determining a plurality of nodes in a call graph. The plurality of nodes represent resource consumption of functions of a software program executed in a software system. A simplification factor is determined. A first set of nodes in the plurality of nodes is then eliminated based on exclusive values for the plurality of nodes, inclusive values for the plurality of nodes, and the simplification factor. An inclusive value for a node is a first amount of resources consumed by the node and any descendent nodes of that node. An exclusive value for the node is a second amount of resources consumed by the node. A simplified call graph is output including a second set of nodes in the plurality of nodes. The second set of nodes does not include the eliminated first set of nodes.
    Type: Grant
    Filed: June 25, 2013
    Date of Patent: April 28, 2015
    Assignee: SAP SE
    Inventors: Cheolman Park, Chan Young
  • Patent number: 9021448
    Abstract: A technique for detecting patterns in the execution of an application. The technique identifies a sequence of methods which are invoked and obtains information regarding attributes of the methods. For example, attribute information such as a class hierarchy can be obtained from an instrumentation API. A data structure representing a hierarchy of the attributes can be created and compared to one or more reference data structures which describe patterns of interest. A decision can be made to provide instrumentation for the methods having the matching attributes. The decision can consider how frequently the pattern is detected and overhead costs of the instrumentation.
    Type: Grant
    Filed: February 28, 2013
    Date of Patent: April 28, 2015
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Andreas Reiss
  • Publication number: 20150106794
    Abstract: Methods and systems for performance inference include inferring an internal application status based on a unified call stack trace that includes both user and kernel information by inferring user function instances. A calling context encoding is generated that includes information regarding function calling paths. Application performance is analyzed based on the encoded calling contexts. The analysis includes performing a top-down latency breakdown and ranking calling contexts according to how costly each function calling path is.
    Type: Application
    Filed: October 13, 2014
    Publication date: April 16, 2015
    Inventors: Junghwan Rhee, Hui Zhang, Nipun Arora, Guofei Jiang, Chung Hwan Kim
  • Patent number: 9009682
    Abstract: Implementations of the present disclosure provide methods including analyzing a plurality of units of a software application to determine a dependency graph defining that at least a first unit depends on a second unit. Each unit includes executable instructions. An execution order is determined for the units based on the dependency graph, wherein the execution order specifies execution of the second unit before the first unit. Unit tests are executed for the units according to the execution order, including executing a unit test of the second unit before the first unit. Executing a unit test for a unit comprises executing the executable instructions of the unit and comparing a resulting value to an expected value.
    Type: Grant
    Filed: December 13, 2010
    Date of Patent: April 14, 2015
    Assignee: SAP SE
    Inventors: Efstratios Tsantilis, Klaus Steinbach
  • Patent number: 8997065
    Abstract: A device creates a graph based on source code, and analyzes the source code to identify private variables and functions of the source code and public variables and functions of the source code. The device determines, based on the graph, a size threshold and semantics-related characteristics of functions and variables for each module, of multiple modules, and assigns, based on the graph, the private variables and functions to a corresponding module of the multiple modules. The device reduces, based on the graph, a number of the public variables and functions assigned to each module, and generates the multiple modules based on one or more of the graph, the size threshold, the assigned private variables and functions, and the number of the public variables and functions assigned to each module.
    Type: Grant
    Filed: December 3, 2012
    Date of Patent: March 31, 2015
    Assignee: The MathWorks, Inc.
    Inventors: Michael E. Karr, Gael Mulat
  • Patent number: 8990792
    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.
    Type: Grant
    Filed: May 26, 2009
    Date of Patent: March 24, 2015
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Ekaterina Gorelkina
  • Patent number: 8984495
    Abstract: A method includes determining, as part of a static analysis of a program, links between functions in the program and performing, as part of the static analysis, string analysis on strings used in the program to determine additional links between the functions in the program. The method further includes outputting, as part of the static analysis, indications of at least the links between the functions and the additional links between the functions. Apparatus, computer programs, and program products are also disclosed.
    Type: Grant
    Filed: January 3, 2013
    Date of Patent: March 17, 2015
    Assignee: International Business Machines Corporation
    Inventors: Salvatore A. Guarnieri, Marco Pistoia, Takaaki Tateishi, Omer Tripp
  • Patent number: 8984485
    Abstract: Use of an Abstract Syntax Tree (AST) to select portions of source code when analyzing the affect of changes in that source code from one version to another. In this way, it is possible to better focus on how changes in the source code, especially changes which only impact limited portion(s) of the source code, affect code quality with respect to measures like code complexity, performance and so on.
    Type: Grant
    Filed: May 1, 2013
    Date of Patent: March 17, 2015
    Assignee: International Business Machines Corporation
    Inventors: Hisham E. Elshishiny, Sherif Sabry, Ghada H. Selim, Ossama Shokry
  • Patent number: 8978020
    Abstract: In an aspect, the present application relates to a computer-implemented method, computer system, and computer program product for (automatically) generating reusable test components to test software applications. The computer-implemented method for generating reusable test components to test software applications may comprise: accessing an object model relating to at least part of a software application; and generating at least one test component applicable to test the software application, comprising: analyzing the object model, generating a meta-description from the object model and store the meta information in at least one descriptor according to a meta model, and generating the test component and a corresponding component implementation based on the descriptor.
    Type: Grant
    Filed: October 8, 2010
    Date of Patent: March 10, 2015
    Assignee: SAP SE
    Inventor: Claude Rossi
  • Patent number: 8966455
    Abstract: Machines, systems and methods for distinguishing feasible paths in a program by statically tracking one or more execution paths are provided. The method comprises reading one or more program statements in an execution path; adding a location identification for the program statement read to an abstract representation of the execution stack at the time the program statement is executed, in response to determining that the program statement is a procedure call; updating the abstract representations of the execution stack to exclude infeasible execution paths for a possible point in program where the procedure could return or continue, in response to determining that the program statement is a return from a procedure.
    Type: Grant
    Filed: December 31, 2012
    Date of Patent: February 24, 2015
    Assignee: International Business Machines Corporation
    Inventors: Aharon Abadi, Jonathan Bnayahu, Yishai Feldman
  • Patent number: 8966454
    Abstract: A first set of information is identified, collected by a first agent during monitoring of a first software component. A second set of information is identified, that was collected by a second agent during monitoring of a second software component. It can be determined that the first and second sets of information each include characteristics of a particular transaction involving the first and second software components. A model is generated of the particular transaction based at least in part on the first and second sets of information. The model includes a representation of the involvement of the first and second software components within the particular transaction. In some aspects, characteristics included in the first and second set of information can include timing information for use, for example, in generating a model representing ordering of software components' involvement in one or more transactions.
    Type: Grant
    Filed: June 7, 2011
    Date of Patent: February 24, 2015
    Assignee: Interactive TKO, Inc.
    Inventors: John J. Michelsen, Jean-David Dahan
  • Patent number: 8954931
    Abstract: Various embodiments include at least one or systems, methods, and software providing abilities to automatically generate a test plan that mitigates risk involved in testing less than an entirety of a software system following modification. Some embodiments operate to allow a user to influence the scope of an optimized test plan while also reducing a number of tests and test execution effort involved. Such embodiments may identify portions of the software system to test and portions of the software system that will not be tested in a manner that reduces a total testing effort involved. Reductions in testing effort are performed in generation of the test plan in view of testing preferences which are utilized not only to reduce the total effort in executing a test plan, but also does so to optimize the test plan.
    Type: Grant
    Filed: August 3, 2012
    Date of Patent: February 10, 2015
    Assignee: SAP SE
    Inventors: Marcus Wefers, Reinhold Konnerth, Thierry Lieu, Abdelhak Nezzari, Michael Schaffrath, Torsten Kamenz, Andreas Kemmler
  • Patent number: 8954936
    Abstract: A method that may include: building a dependencies graph representing dependencies between code elements of a computer code; associating portions of the computer code with corresponding design specifications or requirements derived from a design specifications document or a requirements document respectively which is associated with the computer code, to yield a design specifications or requirements-code tracing map; and analyzing the design specifications or requirements-code tracing map based on the dependencies graph to yield an ordered list of design specifications or requirements respectively, wherein the order is selected such that functional tests written for the computer code and addressing design specifications or requirements of a higher order, will yield a higher level of functional test coverage of the computer code in terms of design specifications or requirements.
    Type: Grant
    Filed: November 11, 2012
    Date of Patent: February 10, 2015
    Assignee: International Business Machines Corporation
    Inventors: Jonathan Bnayahu, Maayan Goldstein, Dany Moshkovich, Mordechai Nisenson, Yahalomit Simionovici, Shmuel Or
  • Patent number: 8930916
    Abstract: Data is received that includes at least a portion of a program. Thereafter, entry point locations and execution-relevant metadata of the program are identified and retrieved. Regions of code within the program are then identified using static disassembly and based on the identified entry point locations and metadata. In addition, entry points are determined for each of a plurality of functions. Thereafter, a set of possible call sequences are generated for each function based on the identified regions of code and the determined entry points for each of the plurality of functions. Related apparatus, systems, techniques and articles are also described.
    Type: Grant
    Filed: January 31, 2014
    Date of Patent: January 6, 2015
    Assignee: Cylance Inc.
    Inventors: Derek A. Soeder, Matt Wolff
  • Patent number: 8930903
    Abstract: In and for software projects, arrangements for permitting a user to understand how the spatial locality of a function call may have changed with respect to any changes in a function definition. This permits an analysis of different workflows which use the same function, wherein the definition of the function may have changed. To the extent that there might be corresponding changes in the workflows which use such a function, the user will readily develop an idea of why some workflows changed and some did not. The invention method and apparatus determine and display deltas (changes) between different versions of a file where the function call occurs.
    Type: Grant
    Filed: April 18, 2012
    Date of Patent: January 6, 2015
    Assignee: International Business Machines Corporation
    Inventor: Pavan L. Advani
  • Patent number: 8924945
    Abstract: A computer-implemented method for initializing computer programming elements based on dependency graphs is provided. The method includes determining a dependency graph associated with a computer programming element to be initialized. The method also includes traversing the determined dependency graph, so as to obtain thread information associated with each of the one or more computer programming elements of the determined dependency graph, and determining, based on the obtained thread information associated with each of the computer programming elements, an aggregate thread information of all the computer programming elements of the determined dependency graph. The method further includes generating code which initializes the computer programming element to be initialized based at least on the determined aggregate thread information. Systems and machine-readable media are also provided.
    Type: Grant
    Filed: October 4, 2012
    Date of Patent: December 30, 2014
    Assignee: Google Inc.
    Inventor: Erik Lewis Wright
  • Patent number: 8918766
    Abstract: Annotation information associated with entities of a computing system can be added to a forest generated from the entities where the structure of the forest reflects relationships between the entities. Annotations associated with a child node can be propagated to all parent nodes of the child node all the way up to one or more root nodes of the annotated forest. Annotations associated with a child node can be propagated to a specified depth or place or at nodes with one or more particular characteristics or annotations. The propagation can be performed on-demand to all or some subset of nodes. The annotated forest can be analyzed to determine nodes to which a set of conditions apply.
    Type: Grant
    Filed: December 12, 2012
    Date of Patent: December 23, 2014
    Assignee: Microsoft Corporation
    Inventors: Christopher G. Kaler, Mayila Babang, Xin Zhang
  • Publication number: 20140372990
    Abstract: A method for debugging and includes receiving a request for capturing a frame generated by a graphics application implementing application threads executing function calls. The function calls are associated with one or more thread specific resources used at the beginning of the capturing process. For each application thread, a corresponding state is determined for each thread specific resource utilized, and a corresponding capture stream is established. For each application thread, executed function calls are captured into the corresponding capture stream. A plurality of captured function calls is arranged in the order they were executed by the graphics application. For each capture stream, a corresponding replay thread is established. Application threads, capture streams, and replay threads exist in a one-to-one-to-one relationship.
    Type: Application
    Filed: June 12, 2013
    Publication date: December 18, 2014
    Inventor: Michael C. STRAUSS
  • Patent number: 8910146
    Abstract: According to one aspect of the present disclosure, a method and technique for automated time-to-value (TTV) measurement is disclosed. The method includes: initiating an installation module of an application to install the application on a data processing system; responsive to initiating installation of the application via the installation module, monitoring, via a TTV module of the application, a time period associated with the installation of the application; and recording, by the TTV module, the time period corresponding to the installation of the application.
    Type: Grant
    Filed: June 9, 2012
    Date of Patent: December 9, 2014
    Assignee: International Business Machines Corporation
    Inventors: Nnaemeka I. Emejulu, Andrew J. Lavery, Ye Liu, Mario A. Maldari
  • Patent number: 8881116
    Abstract: A software testing tool may use static verification analysis techniques to locate points (lines/events) in computer code at which an error may be present and points (lines/events) in the computer code that may be the underlying cause of the located error points. In one implementation, a device may perform a static verification analysis of computer code to locate a point in the code that causes an error in the execution of the computer code. The static analysis may be performed by analyzing a first set of possible execution paths of the computer code based on an over-approximation of states. The device may back-propagate, from the located point, through a second set of possible execution paths, where the second set of possible execution paths is obtained based on an under-approximation of the states that were over-approximated. Based on the back-propagation, the device may determine potential causes of the error.
    Type: Grant
    Filed: June 8, 2011
    Date of Patent: November 4, 2014
    Assignee: The MathWorks, Inc.
    Inventor: Gael Mulat
  • Patent number: 8869119
    Abstract: Affinity-based preferential call technique, in one aspect, may improve performance of distributed applications in a hybrid system having heterogeneous platforms. A segment of code in a program being executed on a processor may be intercepted or trapped in runtime. A platform is selected in the hybrid system for executing said segment of code, the platform determined to run the segment of code with best efficiency among a plurality of platforms in the hybrid system. The segment of code is dynamically executed on the selected platform determined to run the segment of code with best efficiency.
    Type: Grant
    Filed: September 14, 2012
    Date of Patent: October 21, 2014
    Assignee: International Business Machines Corporation
    Inventors: Michael H. Dawson, Parijat Dube, Liana L. Fong, Yuqing Gao, Xavier R. Guerin, Michel H. T. Hack, Megumi Ito, Graeme Johnson, Nai K. Ling, Yanbin Liu, Xiaoqiao Meng, Pramod B. Nagaraja, Seetharami R. Seelam, Wei Tan, Li Zhang
  • Patent number: 8863093
    Abstract: A method to instrument program code for a virtual machine that comprises, in the course of loading a class to a virtual machine, adding code to the class to declare a field that corresponds to a field declared in a first bootstrap class.
    Type: Grant
    Filed: March 6, 2009
    Date of Patent: October 14, 2014
    Assignee: Coverity, Inc.
    Inventors: Andy Chou, John Kodumal
  • Patent number: 8856809
    Abstract: A computer implemented method, apparatus, and computer usable program product for processing application code. In one embodiment, a call is received to invoke a set of methods of annotated application code. The annotated application code includes a set of annotations specifying a selection of the set of methods. A selected method from the set of methods is invoked in response to determining that the call is valid according to the set of annotations. Thereafter, a subsequent set of valid methods for execution is identified based upon an annotation associated with the selected method.
    Type: Grant
    Filed: March 19, 2008
    Date of Patent: October 7, 2014
    Assignee: International Business Machines Corporation
    Inventors: Francisco Phelan Curbera, Matthew J. Duftler, Michael Levi Fraenkel, Rania Y. Khalaf, Axel Martens, Johannes Riemer, Gal Shachor
  • Patent number: 8850408
    Abstract: To reconstruct a call stack, a range of call addresses is determined. Based on the range of addresses, raw stack data is extracted based on the execution of a computer program. The raw stack data is parsed to reconstruct a call stack (or a series of call stacks). In obtaining the call stack, a depth between a function and a return address is calculated.
    Type: Grant
    Filed: August 10, 2011
    Date of Patent: September 30, 2014
    Assignee: Nintendo of America, Inc.
    Inventor: Chad Hinkle
  • Patent number: 8850404
    Abstract: A relational model may be used to encode primitives for each of a plurality of threads in a multi-core processor. The primitives may include tasks and parameters, such as buffers. Implicitly created tasks, like set render target, may be visualized by associating those implicitly created tasks with actual coded tasks.
    Type: Grant
    Filed: December 23, 2009
    Date of Patent: September 30, 2014
    Assignee: Intel Corporation
    Inventors: Christopher J. Cormack, Nathaniel Duca, Mike Burrows, Serhat A. Tekin
  • Patent number: 8843910
    Abstract: A facility for identifying functionally distinct memory access reorderings for a multithreaded program is described. The facility monitors execution of the program to detect, for each of one or more memory locations, an order in which the memory location was accessed by the threads of the program, each access being at least one of a read access and a write access. Among a number of possible memory access reorderings of a read access by a reading thread to a location and a write access by a writing thread to the same location where the write access preceded the read access, the facility identifies as functionally distinct memory access reorderings those possible memory access reorderings where the reading thread could have become newly aware of changed state of the writing thread as a result of the indicated read access.
    Type: Grant
    Filed: March 14, 2011
    Date of Patent: September 23, 2014
    Assignee: F5 Networks, Inc.
    Inventors: Andrew M. Schwerin, Peter J. Godman, Kaya Bekiroglu
  • Patent number: 8832680
    Abstract: A log counting program causes a computer to function as a log counting apparatus, and function as a log collection part collecting log information from a client apparatus in which an installer package operates; and a log counting part carrying out counting concerning the collected log information. The installer package causes the client apparatus to function as one or more installers for installing software; a log obtaining part obtaining logs that are output by the one or more installers and system information of the client apparatus; and a log transmission part transmitting log information including the logs and the system information to the log counting apparatus according to a setting in the installer package. The log counting part uses the system information and counts events concerning the installation while distinguishing an execution environment of the client apparatus.
    Type: Grant
    Filed: June 22, 2012
    Date of Patent: September 9, 2014
    Assignee: Ricoh Company, Ltd.
    Inventor: Toshio Akiyama
  • Publication number: 20140250429
    Abstract: A computer program product and computer system for analyzing code to improve efficiency of simulating a hardware system. A computer identifies one or more functions calling an application programming interface of a hardware simulator simulating the hardware system. In response to determining that left hand sides of respective one or more Boolean expressions are associated with the one or more functions calling the application programming interface and right hand sides are not associated with the one or more functions calling the application programming interface, the computer identifies the respective one or more Boolean expressions as one or more improvement points in source code for verifying a hardware model of the hardware system.
    Type: Application
    Filed: December 11, 2013
    Publication date: September 4, 2014
    Applicant: International Business Machines Corporation
    Inventors: Carsten Greiner, Joerg Kayser, Roopesh A. Matayambath, Juergen M. Ruf
  • Patent number: 8819645
    Abstract: The invention concerns a method for performing a run-time simulation of a computer program comprising: extracting said computer program from a first application environment to a second application environment; parsing said computer program to generate a hierarchical representation of said computer program; based on said hierarchical representation, inserting at least one log value generation instruction into said extracted computer program to generate an enhanced computer program; re-injecting said enhanced computer program into said first application environment; executing, in said first application environment, said enhanced computer program; and receiving from said first application environment generated log values and analyzing said values with respect to a hierarchical representation of said computer program.
    Type: Grant
    Filed: June 13, 2012
    Date of Patent: August 26, 2014
    Assignee: Accenture Global Services Limited
    Inventors: Franck Kerizac, Antoine Sebilleau