Including Instrumentation And Profiling Patents (Class 717/130)
  • Patent number: 8997057
    Abstract: Methods for identifying and analyzing performance traces are provided. Temporal logic formulas are patterns that can be compared with traces and individual events to identify the existence of certain behavior. Traces, sequences of time-stamped events in time order, are compared with one or more temporal logic formulas to identify the event sequences that match the formulas. The temporal logic formulas can be written in the simple temporal logic language that is presented. When a formula matches an event sequence, attributes from the event sequence are extracted and metric expressions are evaluated based on these attributes. The extracted attributes and the results of the metric expression are returned. This temporal logic pattern matching process can efficiently identify and analyze performance traces and significantly reduce manual effort for identifying performance problems.
    Type: Grant
    Filed: May 3, 2012
    Date of Patent: March 31, 2015
    Assignee: Google Inc.
    Inventors: Amer Diwan, Frederick Ryckbosch, Richard Lee Sites
  • Patent number: 8997048
    Abstract: One embodiment of the present invention provides a system for profiling a virtual machine on an embedded device. During operation, the system receives an operation-request at a system-level profiler from a virtual machine on an embedded device. The system then records the operation-request in a system-level log. Next, the system sends the operation-request to a native layer on the embedded device. Then, the system receives an operation-response associated with the operation-request from the native layer. The system then records the operation-response in the system-level log. Next, the system sends the operation-response to the virtual machine, thereby facilitating logging of interactions between the virtual machine and the native layer. Note that logging interactions between the virtual machine and the native layer facilitates emulation of the platform independent virtual machine on a second device.
    Type: Grant
    Filed: February 14, 2007
    Date of Patent: March 31, 2015
    Assignee: Oracle America, Inc.
    Inventors: Omer Pomerantz, David Glushko, Ami Navon
  • Patent number: 8997062
    Abstract: Provided are techniques for receiving an error inject script that describes one or more error inject scenarios that define under which conditions at least one error inject is to be executed and compiling the error inject script to output an error inject data structure. While executing code that includes the error inject, an indication that an event has been triggered is received, conditions defined in the one or more error inject scenarios are evaluated using the error inject data structure, and, for each of the conditions that evaluates to true, one or more actions defined in the error inject script for the condition are performed.
    Type: Grant
    Filed: May 7, 2012
    Date of Patent: March 31, 2015
    Assignee: International Business Machines Corporation
    Inventor: Cheng-Chung Song
  • Patent number: 8997063
    Abstract: Periodicity similarity between two different tracer objectives may be used to identify additional input parameters to sample. The tracer objectives may be individual portions of a large tracer operation, and each of the tracer objectives may have separate set of input objects for which data may be collected. After collecting data for a tracer objective, other tracer objectives with similar periodicities may be identified. The input objects from the other tracer objectives may be added to a tracer objective and the tracer objective may be executed to determine a statistical significance of the newly added objective. An iterative process may traverse multiple input objects until exhausting possible input objects and a statistically significant set of input objects are identified.
    Type: Grant
    Filed: February 12, 2013
    Date of Patent: March 31, 2015
    Assignee: Concurix Corporation
    Inventors: Russell S. Krajec, Ying Li
  • Patent number: 8990183
    Abstract: The deep application crawling technique described herein crawls one or more applications, commonly referred to as “apps”, in order to extract information inside of them. This can involve crawling and extracting static data that are embedded within apps or resource files that are associated with the apps. The technique can also crawl and extract dynamic data that apps download from the Internet or display to the user on demand, in order to extract data. This extracted static and/or data can then be used by another application or an engine to perform various functions. For example, the technique can use the extracted data to provide search results in response to a user query entered into a search engine. Alternately, the extracted static and/or dynamic data can be used by an advertisement engine to select application-specific advertisements. Or the data can be used by a recommendation engine to make recommendations for goods/services.
    Type: Grant
    Filed: June 6, 2012
    Date of Patent: March 24, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jie Liu, Suman Kumar Nath, Jitendra D. Padhye, Lenin Ravindranath Sivalingam
  • Patent number: 8990782
    Abstract: A solution is proposed for instrumenting a software application for configuration thereof. A corresponding method includes scanning a source code of the software application for detecting an indication of a set of configuration parameters each one being identified by a pre-defined non-executable statement, creating a set of instances of a pre-defined configuration object each one mapping a corresponding one of the configuration parameters, the configuration object being designed to manage the corresponding configuration parameter, and creating a set of configuration interfaces for editing the configuration parameters, the configuration interfaces being operable to interact with each instance of the configuration object to get and set the corresponding configuration parameter.
    Type: Grant
    Filed: February 13, 2013
    Date of Patent: March 24, 2015
    Assignee: International Business Machines Corporation
    Inventors: Patrizio Trinchini, Massimo Villani
  • Publication number: 20150082286
    Abstract: Systems, methods, and software are disclosed for implementing real-time code instrumentation. In at least one implementation, an instrumentation environment detects a request initiated in an application environment to retrieve at least a portion of an application program for execution in the application environment. The instrumentation environment responsively retrieves application code associated with the application program from a code environment and instruments the application code to generate instrumented code (when operating in an instrumentation mode). The instrumented code may then be included in a reply to the request initiated by the application environment.
    Type: Application
    Filed: September 18, 2013
    Publication date: March 19, 2015
    Applicant: Microsoft Corporation
    Inventors: Arye Gittelman, Aditi Mandal
  • Publication number: 20150082284
    Abstract: A method of generating an instrumented code from a program code executable on a programmable target is described. The method comprises analysing the program code to detect a loop nest with regular memory access in the program code, providing a record of static memory address information associated with the loop nest, and instrumenting the program code to provide an instrumented code corresponding to the program code supplemented with an instrumentation instruction to output an information message comprising a dynamic memory address information field formatted to store a dynamic memory address information associated with the loop nest.
    Type: Application
    Filed: April 26, 2012
    Publication date: March 19, 2015
    Applicant: Freescale Semiconductor, Inc.
    Inventors: Dragos Badea, Andrei Mihaila
  • Patent number: 8984492
    Abstract: Disclosed here are methods, systems, paradigms and structures for incrementally compiling scripts at runtime to generate executable code. In a first phase, an executable block for a basic block of the script is generated for a set of types of variables of the basic block. In a second phase, a set of executable blocks whose profiling information, such as frequency of (a) execution, (b) transition between executable blocks, or (c) execution of a path, satisfies an optimization criterion is identified, and an executable control region is generated. In a third phase, profiling information from a number of systems in a distributed environment is aggregated, and an executable control region corresponding to the aggregated profile is generated. The executable code generated in each of the phases is more optimal than the code generated in a previous phase, and is used for execution until replaced by the code of a subsequent phase.
    Type: Grant
    Filed: March 12, 2013
    Date of Patent: March 17, 2015
    Assignee: Facebook, Inc.
    Inventors: Ali-Reza Adl-Tabatabai, Guilherme de Lima Ottoni, Keith Adams
  • Publication number: 20150074653
    Abstract: Automatic test equipment (ATE) may include: a test instrument to implement a communication protocol to communicate to a unit under test (UUT), where the test instrument is memory storing bytecode that is executable, and where the test instrument being configured to identify an event in communication between the test instrument and the UUT and, in response to the event, to execute the bytecode. The ATE may also include a test computing system to execute a test program and an editor program, where the editor program is for receiving human-readable code and for generating the bytecode from the human-readable code, and the test program is for registering the event with the test instrument and for downloading the bytecode to the test instrument for storage in the memory.
    Type: Application
    Filed: September 12, 2013
    Publication date: March 12, 2015
    Applicant: Teradyne, Inc.
    Inventors: Yonet A. Eracar, Michael Francis McGoldrick, Stephan Krach
  • Patent number: 8978019
    Abstract: A solution is proposed for instrumenting a software application for configuration thereof. A corresponding method includes scanning a source code of the software application for detecting an indication of a set of configuration parameters each one being identified by a pre-defined non-executable statement, creating a set of instances of a pre-defined configuration object each one mapping a corresponding one of the configuration parameters, the configuration object being designed to manage the corresponding configuration parameter, and creating a set of configuration interfaces for editing the configuration parameters, the configuration interfaces being operable to interact with each instance of the configuration object to get and set the corresponding configuration parameter.
    Type: Grant
    Filed: October 8, 2013
    Date of Patent: March 10, 2015
    Assignee: International Business Machines Corporation
    Inventors: Patrizio Trinchini, Massimo Villani
  • Patent number: 8978018
    Abstract: A method, system, and computer program product for reversibly instrumenting a computer software application is described. The method may comprise creating a map indicating a plurality of locations of application instruction sections within instructions of a computer software application. The method may further comprise inserting a plurality of instrumentation sections into the computer software application instructions. The method may also comprise updating the map to indicate the locations of the instrumentation sections within the computer software application instructions, where the indications in the map of the locations of the instrumentation sections are distinguishable from the indications in the map of the locations of the application instruction sections.
    Type: Grant
    Filed: December 2, 2010
    Date of Patent: March 10, 2015
    Assignee: International Business Machines Corporation
    Inventors: David Arbel, Amit Gefner, Eran Gery, Ehud Hoggeg, Beery Holstein, Alexander Rekhter
  • Patent number: 8972956
    Abstract: Techniques are disclosed for evaluating an application to determine a processing environment suited for executing the application. A request may be received to execute the application. If execution data identified for the application do not satisfy a first set of criteria, the application is deployed for execution on a first processing environment. If the execution data satisfy the first set of criteria, the application is deployed for execution partially in time on a second processing environment, based on the execution data. The second processing environment provides a higher capability than the first processing environment in terms of at least one resource type.
    Type: Grant
    Filed: August 2, 2012
    Date of Patent: March 3, 2015
    Assignee: International Business Machines Corporation
    Inventors: Sean T. Brownlow, Nathan G. Faiman, Michael T. Kalmbach, John E. Petri, Kevin Wendzel
  • Patent number: 8966446
    Abstract: Techniques for experimentation on live content in a production environment are disclosed. In one embodiment, a method for live experimentation comprises receiving a first request from a client computing device for an instance of content, sending a second request for an instance of content to a content provider, receiving the instance of content from the content provider in response to the second request, associating a test script with the received instance of content, and sending the instance of content with the associated test script to the client computing device. The client computing device is configured to execute the test script on the instance of content without modifying content executed by the content provider.
    Type: Grant
    Filed: September 29, 2010
    Date of Patent: February 24, 2015
    Assignee: A9.com, Inc.
    Inventors: Matthew Amacker, Thomas G. Brinck
  • Patent number: 8966453
    Abstract: An execution of a target software program that causes a particular bug to manifest itself is generated. A target software program is received. A bug report generated by an execution of the target software program is received. The bug report describes a particular bug within the target software program. A bug type of the particular bug is received. A synthesized execution file is generated based on the target software program, the bug report, and the bug type. The synthesized execution file specifies an execution of the target software program that causes the particular bug to manifest itself.
    Type: Grant
    Filed: November 23, 2011
    Date of Patent: February 24, 2015
    Assignee: Ecole Polytechnique Fédérale de Lausanne
    Inventors: Cristian Zamfir, George Candea
  • Patent number: 8966450
    Abstract: A facility for executing an application program in a cloud computing environment is described. The facility identifies dependencies of the application program, and identifies support software components that satisfy the identified dependencies. The facility then causes the application to be executed in conjunction with the identified support software components on the nodes of the cloud computing environment on which they were installed.
    Type: Grant
    Filed: June 1, 2011
    Date of Patent: February 24, 2015
    Assignee: Red Hat, Inc.
    Inventors: Tobias Kunze, Issac Roth
  • Patent number: 8959490
    Abstract: Embodiments of the present invention provide a computing system and method to profile a program for finding potential optimization in heap usage by reducing lag and drag in lifetimes of heap memory blocks. The process consists of three steps. First, an instrumentation engine analyzes a given program and inserts additional code at interesting locations to collect needed information. Second, when the instrumented program is executed on a set of test cases, runtime data is collected. Third, since this data is large for a complex and long running program, data is processed to present it to a user in useful ways so that a programmer improves the heap utilization in the program.
    Type: Grant
    Filed: May 2, 2012
    Date of Patent: February 17, 2015
    Assignee: International Business Machines Corporation
    Inventors: Satish Chandra Gupta, Kumar Rangarajan
  • Patent number: 8959486
    Abstract: A processor-implemented method, system, and/or computer program product automates regression testing based on cyclomatic complexity of changed code. A base code change to a software program is identified as having a particular cyclomatic complexity. Multiple different software test routines are mapped to the base code change. A specific quantity of the different software test routines are then run to test the base code change, where the quantity of test routines that is run is based on the cyclomatic complexity of the base code change.
    Type: Grant
    Filed: January 9, 2013
    Date of Patent: February 17, 2015
    Assignee: International Business Machines Corporation
    Inventors: James E. Bostick, John M. Ganci, Jr., John P. Kaemmerer, Craig M. Trim
  • Patent number: 8959491
    Abstract: In various embodiments, a method, system, and computer program product for injecting error code include logic and/or program instructions configured for determining critical points in executing code of software under test, building a testcase to invoke the software under test, determining an appropriate response action for each critical point based on an error encountered at each critical point, injecting a critical point segment into the executing code at a corresponding critical point, and outputting a unique identifier of each critical point segment, the testcase being configured to issue commands, with each command limiting which of one or more critical points remains active based on one of: a number of times the one or more critical points have been accessed in the executing code, a number of times a critical point has been skipped, and an amount of times a critical point has been accessed versus skipped.
    Type: Grant
    Filed: June 4, 2014
    Date of Patent: February 17, 2015
    Assignee: International Business Machines Corporation
    Inventors: Gerard M. Dearing, Terri A. Menendez
  • Patent number: 8957960
    Abstract: A machine vision system program editing environment includes near real time context generation. Rather than requiring execution of all preceding instructions of a part program in order to generate a realistic context for subsequent edits, surrogate data operations using previously saved data replace execution of certain sets of instructions. The surrogate data may be saved during the actual execution of operations that are recorded in a part program. An edit mode of execution substitutes that data as a surrogate for executing the operations that would otherwise generate that data. Significant time savings may be achieved for context generation, such that editing occurs within an operating context which may be repeatedly refreshed for accuracy in near real time. This supports convenient program modification by relatively unskilled users, using the native user interface of the machine vision system, rather than difficult to use text-based or graphical object-based editing environments.
    Type: Grant
    Filed: November 15, 2011
    Date of Patent: February 17, 2015
    Assignee: Mitutoyo Corporation
    Inventors: Barry Saylor, Dahai Yu, Ryan Northrup, Gyokubu Cho, Akira Takada
  • Patent number: 8954935
    Abstract: The current application is directed to crosscutting functionalities, including byte-code instrumentation, error logging, and other such crosscutting functionalities. These crosscutting functionalities generally violate, or run counter to, modern code-development strategies and programming-language features that seek to partition logic into hierarchically organized compartments and modules with related functionalities, attribute values, and other common features. In particular, the current application is directed to byte-code instrumentation introduced into a computer program for collecting data, such as execution traces, elapsed times for routine execution, and other information at run time for logging and subsequently manual, semi-automatic, or automatic analysis. The current application is particularly directed to byte-code instrumentation that automatically filters collected data in order to log only data having greatest value for subsequent analysis.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: February 10, 2015
    Assignee: Pivotal Software, Inc.
    Inventors: John Victor Kew, Jonathan Travis
  • Patent number: 8954546
    Abstract: A load balanced system may incorporate instrumented systems within a group of managed devices and distribute workload among the devices to meet both load balancing and data collection. A workload distributor may communicate with and configure several managed devices, some of which may have instrumentation that may collect trace data for workload run on those devices. Authentication may be performed between the managed devices and the workload distributor to verify that the managed devices are able to receive the workloads and to verify the workloads prior to execution. The workload distributor may increase or decrease the amount of instrumentation in relation to the workload experienced at any given time.
    Type: Grant
    Filed: January 25, 2013
    Date of Patent: February 10, 2015
    Assignee: Concurix Corporation
    Inventor: Russell S. Krajec
  • Publication number: 20150040106
    Abstract: An embodiment method of global scope basic-block reordering includes profiling an application having a source code decomposable into a plurality of basic-blocks. The profiling yields a global basic-block sequence. The method also includes generating a hierarchical locality model according to the global basic-block sequence. The method also includes generating a target code according to the hierarchical locality model.
    Type: Application
    Filed: July 29, 2014
    Publication date: February 5, 2015
    Inventors: Pengcheng Li, Ziang Hu, Handong Ye
  • Patent number: 8949797
    Abstract: A system, method and computer program product for verifying integrity of a running application program on a computing device. The method comprises: determining entry points into an application programs processing space that impact proper execution impact program integrity; mapping data elements reachable from the determined entry points into a memory space of a host system where the application to verify is running; run-time monitoring, in the memory space, potential modification of the data elements in a manner potentially breaching program integrity; and initiating a response to the potential modification. The run-time monitoring detects when a data transaction, e.g., a write event, reaches a malicious agent's entry point, a corresponding memory hook is triggered and control is passed to a security agent running outside the monitored system.
    Type: Grant
    Filed: April 16, 2010
    Date of Patent: February 3, 2015
    Assignee: International Business Machines Corporation
    Inventors: Najwa Aaraj, Mihai Christodorescu, Dimitrios Pendarakis, Reiner Sailer, Douglas L. Schales
  • Patent number: 8949806
    Abstract: A system comprises a plurality of computation units interconnected by an interconnection network.
    Type: Grant
    Filed: August 17, 2012
    Date of Patent: February 3, 2015
    Assignee: Tilera Corporation
    Inventors: Walter Lee, Robert A. Gottlieb, Vineet Soni, Anant Agarwal, Richard Schooler
  • Patent number: 8938729
    Abstract: A two-pass technique for instrumenting an application is disclosed. One pass may be performed statically by analyzing the application and inserting probes while the application is not running. Another pass may be performed dynamically by analyzing data collected by the probes while the application runs to derive metrics for the probes. One or more metrics for each probe may be analyzed to determine whether to dynamically modify the probe. By dynamically modifying the probe, the application does not need to be shut down. Dynamically modifying the probe could include removing the probe from the application or moving the probe to another component (e.g., method) in the application, as examples. For example, the probe might be moved to a component that is either up or down the call graph from the component that the probe is presently in.
    Type: Grant
    Filed: October 12, 2010
    Date of Patent: January 20, 2015
    Assignee: CA, Inc.
    Inventors: David Brooke Martin, Marco Gagliardi, Mark Jacob Addleman
  • Patent number: 8938722
    Abstract: A method and apparatus for locating errors is disclosed. A computer inserts an object reference into program code suspected of causing an error, the object reference having an initial class name. Responsive to execution of the program code, the computer generates a new class name for the object reference comprising the context information. The computer sets an object with the new class name as the object reference inserted into the program code suspected of causing the error, wherein the new class name of the object is located in computer memory in use by the executing program code. The computer then creates a record of the computer memory in use by the executing program code, the record including the context information in the form of the new class name of the object.
    Type: Grant
    Filed: October 17, 2012
    Date of Patent: January 20, 2015
    Assignee: International Business Machines Corporation
    Inventors: Krishnamohan Dantam, Ravi K. Kosaraju
  • Patent number: 8938721
    Abstract: Techniques for monitoring web application performance are provided. A request for a web application is received at an application server. A response pipeline at the application server generates client application code corresponding to the requested web application. The client application code is intercepted in the response pipeline. Instrumentation code is inserted into the intercepted client application code to generate an instrumented client application code. The instrumentation code is configured to be executed when the instrumented client application code is rendered at the client to capture performance information at the client, and is configured to transmit the captured performance information from the client.
    Type: Grant
    Filed: July 21, 2010
    Date of Patent: January 20, 2015
    Assignee: Microsoft Corporation
    Inventors: Ilarie Letca, Alexandre Coelho, Venkata Seshu Kumar Kurapati, Rajeev Sudhakar, Daniel Savage, Ashvinkumar Sanghvi, Jin Soon Lim
  • Patent number: 8935673
    Abstract: A system and method are provided for enhanced navigation along execution time and code space in a debugger to assist a user in remediating errors, streamlining, or reverse engineering a computer program and the source code thereof. Snapshots of system states are recorded, a causality tree of commands is constructed through execution of the program to be debugged, and an intelligent display of system states captured during runtime and indexed or cross-referenced by time are displayed to the user in an intelligent manner to aid the user with certain debugging tasks. Additionally, further features in assisting the user to locate a root cause of an error or unexpected value and remediate that cause are also provided.
    Type: Grant
    Filed: November 30, 2012
    Date of Patent: January 13, 2015
    Assignee: Cadence Design Systems, Inc.
    Inventors: Yonatan Ashkenazi, Nadav Chazan, Tal Tabakman, Yaron Peri-Glass, Ronen Shoham
  • Patent number: 8930914
    Abstract: An information processing system, computer readable storage medium, and method for documenting the execution of long running applications. A processor of the information processing system operates to continuously collect snapshots monitored from an executing application on a runtime system. The processor selects, based at least on user specified policies, collected snapshots that indicate a significant change in runtime behavior of the executing application on the runtime system. The processor annotates each of the selected snapshots with description of the significant change in runtime behavior of the executing application. The processor operates to store and update documentation of an execution history of the executing application from the annotated snapshots.
    Type: Grant
    Filed: February 7, 2013
    Date of Patent: January 6, 2015
    Assignee: International Business Machines Corporation
    Inventors: Mitchell A. Cohen, Andrew Lawrence Frenkiel, Bugra Gedik
  • Patent number: 8930906
    Abstract: Identify a first change to a first portion of the system, and identifying at least a second portion of the system that is, at least in part, dependent on the first portion. At least one user who is assigned responsibility for maintaining the first portion or the second portion of the system can be identified, and an availability of the user to maintain the first portion or the second portion of the system during a time period can be determined. The time period can begin when the first change is initially scheduled for introduction into the system. Responsive to determining that the user is not sufficiently available to maintain the first portion or the second portion of the system during the time period, the first change can be prevented from being introduced into the system as initially scheduled for introduction into the system.
    Type: Grant
    Filed: June 27, 2012
    Date of Patent: January 6, 2015
    Assignee: International Business Machines Corporation
    Inventors: Bernadette A. Carter, Al Chakra, Lori D. Landesman
  • Patent number: 8930915
    Abstract: Provided is a method for mitigating the effects of an application which crashes as the result of supplemental code (e.g., plug-in), particularly a plug-in from a source other than the source of the operating system of the device or the source of the application that crashes. The method includes executing the application. As the application is running, it may be monitored to determine if normal execution of instructions ceases. When that occurs, the system will make a determination if code from a supplemental code module was the cause of the crash, and will make an evaluation if that supplemental code module is from a source other than the source(s) of the operating system and application in question. In some implementations, remedial steps may be provided, such as providing information on subsequent executions of the application.
    Type: Grant
    Filed: May 3, 2013
    Date of Patent: January 6, 2015
    Assignee: Apple Inc.
    Inventor: Christopher A. Wolf
  • Publication number: 20150007145
    Abstract: A computing system includes: an input module configured to receive an application code; an identification module, coupled to the input module, configured to identify an interface element in the application code; and an insertion module, coupled to the identification module, configured to insert an augmentation code into the application code for modifying an attribute of the interface element.
    Type: Application
    Filed: July 1, 2013
    Publication date: January 1, 2015
    Inventors: Jeffrey Scott Pierce, Esther Jun Kim, Alan John Walendowski
  • Publication number: 20150007146
    Abstract: A method and apparatus for providing a test case for a modified program. The method includes the steps of: obtaining a modification item that makes modification on a previous version of the program; locating the modification item after a first instrument and before a second instrument of a plurality of instruments inserted into the program; obtaining an execution path of the modified program that is between the first instrument and the second instrument and associated with the modification as well as a constraint set corresponding to the execution path; obtaining an execution result, outputted by the first instrument, of executing the previous version of the program using an original test case; and determining a test case applicable for the execution path based on the execution result and the constraint set. The apparatus corresponds to the method.
    Type: Application
    Filed: June 6, 2014
    Publication date: January 1, 2015
    Inventors: Qi Cheng Li, Li Jun Mei, Jian Wang, Fang Quan Xie, Zi Yu Zhu
  • Patent number: 8924941
    Abstract: Tracer objectives in a distributed tracing system may be compared to identify input parameters that may have a high statistical relevancy. An iterative process may traverse multiple input objects by comparing results of multiple tracer objectives and scoring possible input objects as being possibly statistically relevant. With each iteration, statistically irrelevant input objects may be discarded from a tracer objective and other potentially relevant objects may be added. The iterative process may converge on a set of statistically relevant input objects for a given measured value without a priori knowledge of an application being traced.
    Type: Grant
    Filed: February 12, 2013
    Date of Patent: December 30, 2014
    Assignee: Concurix Corporation
    Inventors: Russell S. Krajec, Ying Li
  • Patent number: 8924936
    Abstract: A method is implemented in a computer infrastructure having computer executable code tangibly embodied on a computer readable storage medium having programming instructions. The programming instructions are operable to receive a tool error output determined by a code inspection tool and select at least one defect classification mapping profile based on the code inspection tool. Additionally, the programming instructions are operable to map the tool error output to one or more output classifications using the selected at least one defect classification mapping profile and generate at least one report based on the one or more output classifications.
    Type: Grant
    Filed: June 21, 2013
    Date of Patent: December 30, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ian E. Baker, Kathryn A. Bassin, Steven Kagan, Susan E. Skrabanek
  • Publication number: 20140380282
    Abstract: Aspects of the subject disclosure are directed towards monitoring application performance during actual use, particularly mobile application performance. Described is instrumenting mobile application binaries to automatically identify a critical path in user transactions, including across asynchronous-call boundaries. Trace data is logged by the instrumented application to capture UI manipulations, thread execution, asynchronous calls and callbacks, UI updates and/or thread synchronization. The trace data is analyzed to assist developers in improving application performance.
    Type: Application
    Filed: June 20, 2013
    Publication date: December 25, 2014
    Inventors: Lenin Ravindranath Sivalingam, Jitendra D. Padhye, Sharad Agarwal, Ratul Mahajan, Ian Obermiller, Shahin Shayandeh
  • Patent number: 8918765
    Abstract: Methods and systems for providing a monitoring center with sensors that are inserted at one or more locations within an operating framework software engine. The sensors monitor the interpretive framework engine's process of loading commands, combining variables with coded commands, and executing commands with event processing, variable values, and user interactions. The sensors watch and gather information that has been deemed relevant by the monitoring center's configuration and pass that information to the center so that storage functions can route the information to the appropriate data storage locations. Alternatively, each sensor can be self-contained providing monitoring, gathering, processing, data transmission, and storage within the sensor.
    Type: Grant
    Filed: June 20, 2011
    Date of Patent: December 23, 2014
    Assignee: Libera, Inc.
    Inventors: Michael Dearman, Albert Cecchini
  • Patent number: 8910127
    Abstract: According to an example implementation, a computer-readable storage medium, computer-implemented method and a system are provided to receive a first class, the first class indirectly implementing a first interface, wherein the first class extends a second class that directly implements the first interface, identify one or more directly implemented methods within the first class, determine a method signature for one or more of the directly implemented methods, estimate that the first class indirectly implements the first interface based on the method signatures for the one or more directly implemented methods, and instrument the first class based on the estimating that the first class indirectly implements the first interface.
    Type: Grant
    Filed: September 20, 2012
    Date of Patent: December 9, 2014
    Assignee: Identify Software Ltd. (IL)
    Inventors: Shiri Semo Judelman, Asaf Dafner, Eyal Koren
  • Patent number: 8910125
    Abstract: Systems, methods and computer program products may provide monitoring of software performance on a computer. A method of monitoring software performance in a computer may include marking at least one of a load request and a store request, the marked request including an effective instruction address and an effective data address, recording the effective instruction and data addresses in a processor core and sending the marked request to a memory subsystem. The method may also include receiving a fabric response for the marked request, recording the fabric response in the core and tying the effective instruction and data addresses and the fabric response together in a sample.
    Type: Grant
    Filed: September 27, 2012
    Date of Patent: December 9, 2014
    Assignee: International Business Machines Corporation
    Inventors: Guy L Guthrie, Randall R Heisch, Venkat R Indukuru, Aaron C Sawdey
  • Patent number: 8910124
    Abstract: An apparatus and method for aiding in debugging and optimizing software is presented, in particular for instrumenting software to trace function calls. Source code is compiled with placeholder memory ranges. While executing the compiled binary object, a call-trace profiling function is inserted into at least certain of the placeholder memory ranges to log call-trace profiling data. Then, the compiled binary object is restored to its original state by removing the call-trace profiling function(s). A NOP function can be inserted in each placeholder memory range during compilation.
    Type: Grant
    Filed: October 31, 2011
    Date of Patent: December 9, 2014
    Assignee: Google Inc.
    Inventors: Sanjay Bhansali, Harshit Chopra
  • Patent number: 8910128
    Abstract: A computer-implemented method is provided for determining the performance of an application platform. The application platform includes one or more applications associated with a plurality of resources of a computer system. A plurality of synthetic resource consumers are disposed within the application platform. Each synthetic resource consumer is configured to consume at least one of the plurality of resources. A workload profile is provided to the plurality of synthetic resource consumers. The workload profile includes parameters specifying resource consumption by the plurality of synthetic resource consumers. Performance data is acquired based on the impact of the workload profile on the plurality of resources and the plurality of applications.
    Type: Grant
    Filed: June 18, 2012
    Date of Patent: December 9, 2014
    Assignee: salesforce.com, inc.
    Inventor: Gokhan Kutlu
  • Publication number: 20140359583
    Abstract: A computer-implemented method of performing runtime analysis on and control of a multithreaded computer program. One embodiment of the present invention can include identifying threads of a computer program to be analyzed. With a supervisor thread, execution of the identified threads can be controlled and execution of the identified threads can be monitored to determine a status of the identified threads. An indicator corresponding to the determined status of the threads can be output.
    Type: Application
    Filed: August 12, 2014
    Publication date: December 4, 2014
    Inventor: Kirk J. Krauss
  • Publication number: 20140359582
    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: Application
    Filed: June 17, 2014
    Publication date: December 4, 2014
    Inventors: Ashwin S. Needamangala, Daniel S. Mihai, Hristo H. Ivanov, Marius Popa, Mariyan D. Fransazov
  • Patent number: 8904359
    Abstract: A method, system, and computer usable program product for on-demand monitoring of memory usage are provided in the illustrative embodiments. An indication of a memory leak in an application is detected where the application is operating in a data processing system and using a memory associated with the data processing system. An instruction to begin monitoring a memory usage of the application is received responsive to the detection. Responsive to receiving the instruction to begin, the memory usage of the application is monitored. An instruction to dump a data related to the monitoring is received and the data is dumped. An instruction to end the monitoring is received and the monitoring is ended. The detecting, the beginning, the dumping, and the ending may occur while the application remains in operation and while the application uses the memory. The memory leak is confirmed using the data.
    Type: Grant
    Filed: March 6, 2008
    Date of Patent: December 2, 2014
    Assignee: International Business Machines Corporation
    Inventors: I-Lung Kao, Frances L. Chang
  • Patent number: 8902307
    Abstract: A machine vision system editing environment is provided for a part program in which a continuous stream of image acquisition operations are performed during a run mode. In one embodiment, a new common syntax and representations are utilized wherein continuous image acquisition operations are recorded in the same way as regular operations, with the running of the part program being performed in two stages. In the first stage, the portion of the part program that is to have the continuous stream of image acquisition is scanned for image acquisition operations, and the most efficient order for acquiring the images is determined, after which the image acquisition process is begun. Then, in the second stage, while the image acquisition process is being performed, the portion of the part program is scanned again, with the image analysis operations then being performed.
    Type: Grant
    Filed: November 15, 2011
    Date of Patent: December 2, 2014
    Assignee: Mitutoyo Corporation
    Inventors: Mark Delaney, Barry Saylor
  • Patent number: 8904361
    Abstract: A method and computer system logs events occurring in an application in a single or multi-computer environment, functioning non-intrusively and transparently vis-á-vis this application. A first computer node receives a communication from a client; the first computer node executes a transactional application that provides services to the client. A process of the transactional application includes a call to a first function. In response to the call to the first function, a modified function is executed that calls both the first function and second recording function. The call to the recording function is detected at a secondary computer node, different from the first computer node. The recording function executes at the second node to store logged data at the second computer node, the logged data representing execution of the first process.
    Type: Grant
    Filed: January 20, 2006
    Date of Patent: December 2, 2014
    Assignee: International Business Machines Corporation
    Inventor: Marc Philippe Vertes
  • Patent number: 8898647
    Abstract: A method provides for a way to test coverage data used in testing small computing platforms by assigning unique signatures to each node in the control flow graph and embedding control function calls. Signatures are embedded into the program during compilation time using the custom parser. When the program is executed the “exercised” signatures sequence is checked for correctness and used for deriving test coverage metric. This metric is used for improving unit and black-box tests. Thus, a way to collect the path-based test coverage with minimal memory and code/size impact on target system is provided.
    Type: Grant
    Filed: October 9, 2008
    Date of Patent: November 25, 2014
    Assignee: Siemens Aktiengesellschaft
    Inventors: Sergey Pavlovich Sobolev, Sergey Valerievich Vinogradov
  • Patent number: 8898646
    Abstract: An apparatus and method for profiling program code. In particular, an apparatus according to one embodiment comprises a filtering component identifying a first set of instructions for which profiling is desired wherein, in response to detecting that an instruction has been retired, the filtering component determines whether the instruction is within the first set of instructions for which profiling is desired; an event selection component detecting an event in response to the instruction retiring, the event selection component generating event signals in response to a designated event; and a profiling component recording the occurrence or not occurrence of the event within a first storage device responsive to signals from the filtering component and/or the event selection component.
    Type: Grant
    Filed: December 22, 2010
    Date of Patent: November 25, 2014
    Assignee: Intel Corporation
    Inventors: Enric Gibert Codina, Josep M. Codina, Carlos Madriles, Raul Martinez
  • Patent number: 8893091
    Abstract: A method, computer program product, and system for running an executable during a debug session is described. A method may comprise running, via a computing device, a daemon during a debug session, the debug session facilitated, at least in part, by a dynamic tracing tool. The method may further comprise receiving, via the daemon, one or more commands from the dynamic tracing tool. The method may additionally comprise in response to receiving the one or more commands from the dynamic tracing tool, initiating an executable.
    Type: Grant
    Filed: June 30, 2011
    Date of Patent: November 18, 2014
    Assignee: International Business Machines Corporation
    Inventor: Prateek Goel