Using Procedure Or Function Call Graph Patents (Class 717/133)
-
Patent number: 9448965Abstract: 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: GrantFiled: October 28, 2013Date of Patent: September 20, 2016Assignee: Micron Technology, Inc.Inventors: David R. Brown, Harold B Noyes, Inderjit S. Bains
-
Patent number: 9367426Abstract: 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: GrantFiled: March 4, 2015Date of Patent: June 14, 2016Assignee: SAP SEInventors: Cheolman Park, Chan Young
-
Patent number: 9292315Abstract: 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: GrantFiled: March 16, 2015Date of Patent: March 22, 2016Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Michael H. Dawson, Bentley J. Hargrave, Thomas J. Watson
-
Patent number: 9274768Abstract: 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: GrantFiled: June 17, 2014Date of Patent: March 1, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Ashwin S. Needamangala, Daniel S. Mihai, Hristo H. Ivanov, Marius Popa, Mariyan D. Fransazov
-
Patent number: 9244666Abstract: 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: GrantFiled: February 25, 2015Date of Patent: January 26, 2016Assignee: International Business Machines CorporationInventors: Takuya Nakaike, Toshio Suganuma
-
Patent number: 9177143Abstract: 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: GrantFiled: May 17, 2013Date of Patent: November 3, 2015Assignee: International Business Machines CorporationInventors: Omer Tripp, Marco Pistoia, Salvatore A. Guarnieri
-
Patent number: 9158504Abstract: 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: GrantFiled: October 2, 2013Date of Patent: October 13, 2015Assignee: Baker Hughes IncorporatedInventor: David W. Green
-
Patent number: 9135441Abstract: 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: GrantFiled: September 12, 2013Date of Patent: September 15, 2015Assignee: International Business Machines CorporationInventors: Omer Tripp, Marco Pistoia, Salvatore A. Guarnieri
-
Patent number: 9026988Abstract: 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: GrantFiled: March 7, 2012Date of Patent: May 5, 2015Assignee: Fujitsu LimitedInventor: Motoyuki Kawaba
-
Patent number: 9021451Abstract: 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: GrantFiled: June 25, 2013Date of Patent: April 28, 2015Assignee: SAP SEInventors: Cheolman Park, Chan Young
-
Patent number: 9021448Abstract: 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: GrantFiled: February 28, 2013Date of Patent: April 28, 2015Assignee: CA, Inc.Inventors: Marco Gagliardi, Andreas Reiss
-
Publication number: 20150106794Abstract: 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: ApplicationFiled: October 13, 2014Publication date: April 16, 2015Inventors: Junghwan Rhee, Hui Zhang, Nipun Arora, Guofei Jiang, Chung Hwan Kim
-
Patent number: 9009682Abstract: 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: GrantFiled: December 13, 2010Date of Patent: April 14, 2015Assignee: SAP SEInventors: Efstratios Tsantilis, Klaus Steinbach
-
Patent number: 8997065Abstract: 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: GrantFiled: December 3, 2012Date of Patent: March 31, 2015Assignee: The MathWorks, Inc.Inventors: Michael E. Karr, Gael Mulat
-
Patent number: 8990792Abstract: 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: GrantFiled: May 26, 2009Date of Patent: March 24, 2015Assignee: Samsung Electronics Co., Ltd.Inventor: Ekaterina Gorelkina
-
Patent number: 8984485Abstract: 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: GrantFiled: May 1, 2013Date of Patent: March 17, 2015Assignee: International Business Machines CorporationInventors: Hisham E. Elshishiny, Sherif Sabry, Ghada H. Selim, Ossama Shokry
-
Patent number: 8984495Abstract: 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: GrantFiled: January 3, 2013Date of Patent: March 17, 2015Assignee: International Business Machines CorporationInventors: Salvatore A. Guarnieri, Marco Pistoia, Takaaki Tateishi, Omer Tripp
-
Patent number: 8978020Abstract: 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: GrantFiled: October 8, 2010Date of Patent: March 10, 2015Assignee: SAP SEInventor: Claude Rossi
-
Patent number: 8966455Abstract: 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: GrantFiled: December 31, 2012Date of Patent: February 24, 2015Assignee: International Business Machines CorporationInventors: Aharon Abadi, Jonathan Bnayahu, Yishai Feldman
-
Patent number: 8966454Abstract: 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: GrantFiled: June 7, 2011Date of Patent: February 24, 2015Assignee: Interactive TKO, Inc.Inventors: John J. Michelsen, Jean-David Dahan
-
Patent number: 8954931Abstract: 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: GrantFiled: August 3, 2012Date of Patent: February 10, 2015Assignee: SAP SEInventors: Marcus Wefers, Reinhold Konnerth, Thierry Lieu, Abdelhak Nezzari, Michael Schaffrath, Torsten Kamenz, Andreas Kemmler
-
Patent number: 8954936Abstract: 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: GrantFiled: November 11, 2012Date of Patent: February 10, 2015Assignee: International Business Machines CorporationInventors: Jonathan Bnayahu, Maayan Goldstein, Dany Moshkovich, Mordechai Nisenson, Yahalomit Simionovici, Shmuel Or
-
Patent number: 8930916Abstract: 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: GrantFiled: January 31, 2014Date of Patent: January 6, 2015Assignee: Cylance Inc.Inventors: Derek A. Soeder, Matt Wolff
-
Patent number: 8930903Abstract: 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: GrantFiled: April 18, 2012Date of Patent: January 6, 2015Assignee: International Business Machines CorporationInventor: Pavan L. Advani
-
Patent number: 8924945Abstract: 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: GrantFiled: October 4, 2012Date of Patent: December 30, 2014Assignee: Google Inc.Inventor: Erik Lewis Wright
-
Patent number: 8918766Abstract: 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: GrantFiled: December 12, 2012Date of Patent: December 23, 2014Assignee: Microsoft CorporationInventors: Christopher G. Kaler, Mayila Babang, Xin Zhang
-
Publication number: 20140372990Abstract: 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: ApplicationFiled: June 12, 2013Publication date: December 18, 2014Inventor: Michael C. STRAUSS
-
Patent number: 8910146Abstract: 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: GrantFiled: June 9, 2012Date of Patent: December 9, 2014Assignee: International Business Machines CorporationInventors: Nnaemeka I. Emejulu, Andrew J. Lavery, Ye Liu, Mario A. Maldari
-
Patent number: 8881116Abstract: 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: GrantFiled: June 8, 2011Date of Patent: November 4, 2014Assignee: The MathWorks, Inc.Inventor: Gael Mulat
-
Patent number: 8869119Abstract: 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: GrantFiled: September 14, 2012Date of Patent: October 21, 2014Assignee: International Business Machines CorporationInventors: 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: 8863093Abstract: 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: GrantFiled: March 6, 2009Date of Patent: October 14, 2014Assignee: Coverity, Inc.Inventors: Andy Chou, John Kodumal
-
Patent number: 8856809Abstract: 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: GrantFiled: March 19, 2008Date of Patent: October 7, 2014Assignee: International Business Machines CorporationInventors: Francisco Phelan Curbera, Matthew J. Duftler, Michael Levi Fraenkel, Rania Y. Khalaf, Axel Martens, Johannes Riemer, Gal Shachor
-
Patent number: 8850408Abstract: 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: GrantFiled: August 10, 2011Date of Patent: September 30, 2014Assignee: Nintendo of America, Inc.Inventor: Chad Hinkle
-
Patent number: 8850404Abstract: 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: GrantFiled: December 23, 2009Date of Patent: September 30, 2014Assignee: Intel CorporationInventors: Christopher J. Cormack, Nathaniel Duca, Mike Burrows, Serhat A. Tekin
-
Patent number: 8843910Abstract: 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: GrantFiled: March 14, 2011Date of Patent: September 23, 2014Assignee: F5 Networks, Inc.Inventors: Andrew M. Schwerin, Peter J. Godman, Kaya Bekiroglu
-
Patent number: 8832680Abstract: 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: GrantFiled: June 22, 2012Date of Patent: September 9, 2014Assignee: Ricoh Company, Ltd.Inventor: Toshio Akiyama
-
Publication number: 20140250429Abstract: 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: ApplicationFiled: December 11, 2013Publication date: September 4, 2014Applicant: International Business Machines CorporationInventors: Carsten Greiner, Joerg Kayser, Roopesh A. Matayambath, Juergen M. Ruf
-
Patent number: 8819645Abstract: 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: GrantFiled: June 13, 2012Date of Patent: August 26, 2014Assignee: Accenture Global Services LimitedInventors: Franck Kerizac, Antoine Sebilleau
-
Patent number: 8813039Abstract: A method and system ties together the identification of a defect during testing with the supporting application code on the systems that led to the generation of a defect. The association between the two is through the use of a unique Trace ID. This Trace ID is unique to each interaction between the consumer (e.g. client browser) and the provider system(s) (web application server, back office systems, etc). When a potential defect is identified by the end user or tester, the present invention “collects” the associated log messages using the unique Trace ID and attaches those to the defect. The software developer providing the defect triage can then readily review the associated log files without having to manually search the supporting log files manually.Type: GrantFiled: April 14, 2010Date of Patent: August 19, 2014Assignee: International Business Machines CorporationInventor: Jed Maczuba
-
Patent number: 8806450Abstract: Static analysis of software code may be performed in a selective regression testing framework. The static impact analysis, when carried out in a comprehensive and efficient way, can help make the test selection safer and more complete. One method for performing static analysis in selective regression testing of a software project includes, for example, storing changes to source code that defines functions and global data elements of the software project; performing a static analysis of the source code to determine which global data elements in the source code correspond to changed functions in the source code and executing a regression test of the software project using a set of test units determined based, at least in part, on the static analysis.Type: GrantFiled: June 26, 2008Date of Patent: August 12, 2014Assignee: Juniper Networks, Inc.Inventors: Srinibas Maharana, Manu J. Prakash, Hong Zeng, Sachin Vasudeva, Tao Deng
-
Patent number: 8806443Abstract: A method for carrying out a control device monitoring, a program flow control being implemented for at least one event-synchronous process in the control device monitoring. The monitoring module is developed for carrying out a control device monitoring, A program flow control is implemented for at least one event-synchronous process in the control device monitoring.Type: GrantFiled: May 8, 2006Date of Patent: August 12, 2014Assignee: Robert Bosch GmbHInventors: Marco Gangi, Gerit Von Schwertfuehrer
-
Patent number: 8799852Abstract: System and method for performing program-related operations over a network via a web browser. A network connection is established between a server computer and a client computer over a network. A universal resource identifier (URI) is sent from the client computer to the server computer over the network, where the URI indicates a program, e.g., a graphical program (GP), or at least a portion of a graphical program interactive development environment (GPIDE), e.g., a graphical program editor, an execution engine, a static or dynamic analyzer, and/or compiler. The at least a portion of the GPIDE is received from the server computer over the network in response to the URI, and executed in a web browser of the client computer to perform some specified functionality with respect to the GP.Type: GrantFiled: October 2, 2009Date of Patent: August 5, 2014Assignee: National Instruments CorporationInventor: Mohammed Kamran Shah
-
Patent number: 8799874Abstract: Static analysis of a computer software application can be performed by applying a first level of abstraction to model a plurality of run-time objects, thereby producing a set of object abstractions. Static data-flow analysis of the computer software application can be performed using the set of object abstractions, thereby producing a first data-flow propagation graph. A data-flow bottleneck can be identified within the data-flow propagation graph. A second level of abstraction can be applied to model any of the run-time objects having in the set of object abstractions a corresponding object abstraction that is traceable to the data-flow bottleneck. The applying the second level of abstraction can decompose the corresponding object abstraction into a set of object abstractions, thereby modifying the set of object abstractions. Static data-flow analysis of the computer software application can be performed using the modified set of object abstractions.Type: GrantFiled: March 5, 2012Date of Patent: August 5, 2014Assignee: International Business Machines CorporationInventors: Marco Pistoia, Omer Tripp
-
Patent number: 8789019Abstract: Various embodiments include at least one of systems, methods, and software to receive input configuring tests within a computing environment to expose users to standard application or website experiences or test experiences. In some embodiments, multiple tests may be configured to run orthogonally within user experiences without affecting the results of one another. Some such embodiments preserve the ability to execute certain tests in a non-orthogonal manner while other tests are allowed to execute orthogonally.Type: GrantFiled: April 22, 2013Date of Patent: July 22, 2014Assignee: eBay Inc.Inventors: Jasdeep Singh Sahni, Anil Madan, Deepak Seetharam Nadig, Po Cheung, Bhavesh Mistry, John Bodine, Michael Lo
-
Patent number: 8782612Abstract: A failsafe mechanism for installing and removing temporary instrumentation during a runtime of an application. Initially, an application is configured with a baseline set of instrumented components such as methods. Additional instrumentation is then deployed in the application, such as to diagnose a performance problem. The failsafe mechanism ensures that the additional instrumentation is automatically removed, even when there is an interruption in a communication link to the application, a computing device failure, a software failure, or some other type of failure, which renders it impossible to manually roll back the instrumentation from a remote user interface. The failsafe mechanism can be provided using callbacks between the computing devices which detect when a connection is unexpectedly lost or closed. Termination of one callback can cascade to one or more other callbacks. The instrumentation rollback can involve reloading un-instrumented byte code of the application.Type: GrantFiled: May 11, 2010Date of Patent: July 15, 2014Assignee: CA, Inc.Inventors: Marco Gagliardi, Yitao Sun
-
Patent number: 8782610Abstract: A data structure of a run-time object having a hash value field. The data structure allows an object allocation site to be traced from the run-time object, the object allocation site being a site in a program allocating the run-time object. A method for allowing an object allocation site to be traced from a run-time object includes embedding a value corresponding to the object allocation site in the program. A hash-value field includes the embedded value and the object identifier, and the tracing is performed by identifying the object allocation site that corresponds to the embedded value. A computer system for tracing an object allocation site includes a memory that stores the run-time object; an acquirer that acquires the value from a hash value field; and an identification unit that identifies the object allocation site that corresponds to the acquired value.Type: GrantFiled: August 16, 2013Date of Patent: July 15, 2014Assignee: International Business Machines CorporationInventors: Rei Odaira, Kazunori Ogata
-
Patent number: 8775769Abstract: A partition-based method for diagnosing memory leaks in Java systems, comprising dividing heap memory of a Java virtual machine into a plurality of partitions based on a partition plan, wherein each partition has at least one partition owner; monitoring the status of the respective partitions to determine whether there is a partition in which the memory space is exhausted; and if there is a partition in which the memory space is exhausted, determining that the memory leak may occur in the partition and analyzing the partition to obtain leaked objects and objects related to the leaked objects. The present invention also provides a partition-based apparatus for diagnosing memory leak in Java systems.Type: GrantFiled: July 1, 2008Date of Patent: July 8, 2014Assignee: International Business Machines CorporationInventors: Ying Li, Quan Long, Tiancheng Lui, Jie Qiu
-
Publication number: 20140189656Abstract: 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: ApplicationFiled: December 31, 2012Publication date: July 3, 2014Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Aharon Abadi, Jonathan Bnayahu, Yishai Feldman
-
Publication number: 20140189657Abstract: 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: ApplicationFiled: January 3, 2013Publication date: July 3, 2014Applicant: International Business Machines CorporationInventors: Salvatore A. Guarnieri, Marco Pistoia, Takaaki Tateishi, Omer Tripp
-
Publication number: 20140189658Abstract: An apparatus and computer program product which are configured for 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 apparatus and computer program product are further configured for outputting, as part of the static analysis, indications of at least the links between the functions and the additional links between the functions.Type: ApplicationFiled: August 30, 2013Publication date: July 3, 2014Applicant: International Business Machines CorporationInventors: Salvatore A. Guarnieri, Marco Pistoia, Takaaki Tateishi, Omer Tripp