Including Instrumentation And Profiling Patents (Class 717/130)
  • Patent number: 8782629
    Abstract: Software performance may be improved by collecting and correlating performance counter events and program execution state information. On each successive callback of performance counter data, a statistical exponential moving average association matrix may be updated until particular performance counter events and program execution states may be correlated.
    Type: Grant
    Filed: June 29, 2005
    Date of Patent: July 15, 2014
    Assignee: Intel Corporation
    Inventor: Mingqiu Sun
  • Patent number: 8782612
    Abstract: 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: Grant
    Filed: May 11, 2010
    Date of Patent: July 15, 2014
    Assignee: CA, Inc.
    Inventors: Marco Gagliardi, Yitao Sun
  • Patent number: 8776027
    Abstract: A system for reporting information about how selected components of an operating system are used by applications on a computing device. A manifest of components is provided from a management server to a computing device. The manifest specifies components of the operating system for which usage information is to be collected. The computing device surveys applications for calls to the components specified in the manifest. Surveys may be performed by static scanning and/or dynamic monitoring. In static scanning, application files are scanned for keyword strings specified in the manifest. Keyword string matches are recorded to a log file. In dynamic monitoring, calls from executing applications to components specified by the manifest are identified and logged. A report is generated from the log and sent to the management server. The management server then aggregates and analyzes reports from multiple computing devices to enable developers to assess how the components are being used.
    Type: Grant
    Filed: March 6, 2009
    Date of Patent: July 8, 2014
    Assignee: Microsoft Corporation
    Inventors: Cenk Ergan, Justin Steventon, Eric Kochhar, Udayasimha Shivaswamy, Douglas R. Earhart, Micah Brodsky
  • Patent number: 8776032
    Abstract: Systems and methods that add specifications to procedures in a garbage collector for indicating what each procedure does. Such annotations can be added in the source code, to indicate what the source code is to do when it runs—hence enabling an automatic verification of the garbage collector by a verification component. The specification can be presented as a logical formula that can be readily processed by a theorem prover, which is associated with the verification component. Such logical formulas can further employ regions to specify correctness of the garbage collector.
    Type: Grant
    Filed: January 29, 2009
    Date of Patent: July 8, 2014
    Assignee: Microsoft Corporation
    Inventor: Chris Hawblitzel
  • Patent number: 8775769
    Abstract: 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: Grant
    Filed: July 1, 2008
    Date of Patent: July 8, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ying Li, Quan Long, Tiancheng Lui, Jie Qiu
  • Patent number: 8769512
    Abstract: A method apparatus and computer program product is disclosed for adding instrumentation to a body of code to enable generation of code coverage data for said body of code in which used instrumentation code is arranged to be optimized out by a compiler.
    Type: Grant
    Filed: March 23, 2012
    Date of Patent: July 1, 2014
    Assignee: International Business Machines Corporation
    Inventors: Ian O. Partridge, Adam J. Pilkington, David S. Renshaw, Andrew Taylor
  • Patent number: 8769505
    Abstract: A method disclosed herein provides for receiving information relating to an event that occurred while processing server request from a compiled code snippet inserted into a compiled computer program, calculating diagnostic information relating to execution of the server request based on the received information, and providing the diagnostic information. Alternatively, a computer-readable medium, storing a set of instructions, is provided for, the instructions, when executed by a processor perform a method including, while a server request is being executed, receiving information from a compiled code snippet, in inserted into a compiled computer program, the received information relating to a thread starting to process the server request.
    Type: Grant
    Filed: January 24, 2011
    Date of Patent: July 1, 2014
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Piotr Findeisen
  • Patent number: 8769509
    Abstract: Methods and apparatus for preserving precise exceptions in code reordering by using control speculation are disclosed. A disclosed system uses a control speculation module to reorder instructions within an application program and preserve precise exceptions. Instructions, excepting and non-excepting, can be reordered by the control speculation module if the instructions meet certain conditions. When an excepting instruction is reordered, a check instruction is inserted into the program execution path and a recovery block is generated. The check instruction determines if the reordered excepting instruction actually needs to generate an exception. The recovery block contains instructions to revert the effects of code reordering. If the check instruction detects the need for an exception, the recovery block is executed to restore the architectural state of the processor and the exception is handled.
    Type: Grant
    Filed: November 8, 2007
    Date of Patent: July 1, 2014
    Assignee: Intel Corporation
    Inventor: Dz-ching Ju
  • Patent number: 8769503
    Abstract: An exemplary embodiment provides methods, systems and mediums for executing arithmetic expressions that represent elementwise operations. An exemplary embodiment provides a computing environment in which elementwise expressions may be executed in parallel by multiple execution units. In an exemplary embodiment, multiple execution units may reside on a network.
    Type: Grant
    Filed: August 20, 2007
    Date of Patent: July 1, 2014
    Assignee: The MathWorks, Inc.
    Inventor: Brett Baker
  • Patent number: 8769504
    Abstract: A dynamic instrumentation method and apparatus which may trace, debug, and profile the execution of a running program without affecting the operation of the program, are provided. According to the method, a break instruction is inserted and executed at start of execution of a first instruction and immediately after execution of the last instruction of a function constituting the program. Environment values of the function before and after execution may be identified. The program may be dynamically instrumented without being affected by any tracing or debugging operations.
    Type: Grant
    Filed: March 18, 2010
    Date of Patent: July 1, 2014
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Jae-hoon Jeong
  • Patent number: 8762957
    Abstract: Data relating to execution flows at a computer system is aggregated across multiple execution flows by categorizing each execution flow into an execution flow shape. The execution flows may represent sequences of software components that are invoked or other computer system resources that are consumed. The execution flow shapes are developed by observing and recording the execution flows at the computer system and applying lossy compression rules. Execution flows are categorized into an execution flow shape which is a closest match. The execution flow data may be aggregated by an agent at the computer system, and communicated to a manager for subsequent use. The aggregation combines the information from all execution flows into a small enough data set that can be reported without consuming unduly large processing overhead while still preserving as many of the interesting aspects of the execution flows as possible.
    Type: Grant
    Filed: December 18, 2012
    Date of Patent: June 24, 2014
    Assignee: CA, Inc.
    Inventors: Jeffrey L Cobb, Daryl L Puryear, Gabriel J Vanrenen
  • Patent number: 8762960
    Abstract: A method of developing a tracing solution for the execution of blocks of computer code. The method comprises representing each block of code of an initial tracing solution as a vertex on an initial tracing solution graph. The vertices on the initial tracing solution graph constitute an initial set of vertices. The method further comprises checking whether there are any redundant vertices in the initial set of vertices. Redundant vertices are vertices not needed for a tracing solution. If there are any redundant vertices in the initial set of vertices, one or more of the redundant vertices is eliminated from the initial set of vertices, thereby deriving a reduced set of vertices.
    Type: Grant
    Filed: September 30, 2009
    Date of Patent: June 24, 2014
    Assignee: Freescale Semiconductor, Inc.
    Inventor: David Baca
  • Patent number: 8762971
    Abstract: A method, apparatus and program product are provided for servicing a production program. A mirror program is dynamically created using source code associated with the production program. The mirror program includes enhanced serviceability functionally relative to the production program that generates service information relevant to the production program. The mirror program executes while the production program remains in an active state such that the production program may be serviced using service information generated by the mirror program. The source code used to compile the production program is compared to a base line copy of the source code. Portions of the source code that differ from the base line copy of the source code are stored. The stored portions of the source code are associated with a unique identifier which is saved with the compiled production program.
    Type: Grant
    Filed: April 2, 2009
    Date of Patent: June 24, 2014
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Paul R. Day, Scott W. Elliott
  • Patent number: 8762956
    Abstract: Exemplary embodiments enable the generation of a report document. Exemplary embodiments identify a section of code for evaluation and insert at least one command for generating a report document into the section of code. An evaluation of the section of code is initiated and data is collected that is related to the evaluation of the section of code when the at least one command for generating a report document is evaluated.
    Type: Grant
    Filed: January 31, 2007
    Date of Patent: June 24, 2014
    Assignee: The MathWorks, Inc.
    Inventors: Matthew J. Simoneau, Edward Whittington Gulley
  • Publication number: 20140173571
    Abstract: Bytecode is injected to create a source tracking object for a data object received from a data source and to record information associated with the data source into the source tracking object. Bytecode is injected to create a copy of the data object for a tracking event in an application program, to create a flow tracking object for the tracking event, and to record information associated with the tracking event into the flow tracking object as the tracking event processes the copy of the data object. Bytecode is injected to create a sink tracking object for outputting the copy of the data object to a data sink and to record information associated with the data sink into the sink tracking object. Bytecode is injected to output the source tracking object, the flow tracking object, and the sink tracking object as dynamic analysis of dataflow in the application program.
    Type: Application
    Filed: October 30, 2013
    Publication date: June 19, 2014
    Applicant: salesforce.com, inc.
    Inventors: Yoel Gluck, Xiaoran Wang
  • Patent number: 8756574
    Abstract: Coverage analysis may be performed using reverse time. The coverage analysis may be based on last hit data. The last hit data may comprise a timestamp indicating a last time in which a coverage event was covered. Utilizing last hit data instead of first hit data as is known in the art enables distinction between coverage goals that were never covered and coverage goals that were not covered lately.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: June 17, 2014
    Assignee: International Business Machines Corporation
    Inventors: Avi Ziv, Laurent Fournier, Steven Mittermaier
  • Patent number: 8756586
    Abstract: The present invention relates to a system and method for automated performance testing in a dynamic production environment. More particularly the present invention relates to an automated system that enables the determination of whether a software application can meet the scalability and performance requirements in a real time use environment, wherein the performance requirement test comprises test for workload, reliability and resource usage. The system of the present invention provides an automated system for performing testing method that can convert a static environment i.e. fixed workload, one application state and one hardware representation into a dynamic one and predict accurate performance results for said constantly changing application. The system enables less effort, time and consequently money, and meets the performance scalability and requirements in real-time.
    Type: Grant
    Filed: December 10, 2010
    Date of Patent: June 17, 2014
    Assignee: Tata Consultancy Services Limited
    Inventors: Amol Khanapurkar, Omkar Parab, Suresh Malan
  • Patent number: 8756582
    Abstract: A method for a hybrid code signature including executing, via a processor, an application, the executing comprising executing a root instruction of the application; profiling, via the processor, the executing of the application, the profiling comprising storing a reference signature; determining, via the processor, a working signature of instructions executed subsequent to the executing of the root instruction, the determining comprising implementing a hashing function of the instructions in response to storing the reference signature; tracking the updating of the working signature by storing a value in a counter; and updating continuously, via the processor, the working signature with the hashing function while at least the working signature does not match the reference signature.
    Type: Grant
    Filed: August 22, 2011
    Date of Patent: June 17, 2014
    Assignee: International Business Machines Corporation
    Inventor: Mauricio J. Serrano
  • Patent number: 8756569
    Abstract: A method is presented for recording and injecting a fault event during execution of a computer program. The method may include detecting a method call event during execution of the program, incrementing a counter to produce a counter value, and determining, based on a program execution state, a fault event to be generated. The fault event may be associated with a fault event type. The fault event type and the counter value may be stored, and the fault event may be generated. A second method call event may be detected during execution of the program and a second counter may be incremented, producing a second counter value. A previously-generated fault event associated with a counter value matching the second counter value may be identified, and the previously-generated fault event may be generated.
    Type: Grant
    Filed: September 3, 2008
    Date of Patent: June 17, 2014
    Assignee: International Business Machines Corporation
    Inventor: Mauro Arcese
  • Patent number: 8756584
    Abstract: A code instrumentation method and a code instrumentation apparatus for instrumenting object codes of programs to enable memory access tracing. The code instrumentation method includes: identifying an object code block to be executed circularly in object codes; identifying at least one memory access instruction in the object code block where a memory address to be accessed during the circular execution of the object code block keeps unchanged; and inserting a routine for tracing the memory access to be executed by the at least one memory access instruction outside the object code block.
    Type: Grant
    Filed: March 26, 2009
    Date of Patent: June 17, 2014
    Assignee: International Business Machines Corporation
    Inventor: Wu Zhou
  • Patent number: 8756585
    Abstract: A monitoring of a server system during an execution of a server system processing logic, includes: during collection and storage of operational metrics by a given thread in a thread-local memory, determining that a checkpoint within the server system processing logic is reached; determining whether a threshold number of checkpoints have been encountered by the given thread; in response to the threshold number of checkpoints having been encountered, determining whether a threshold time interval since a last rollup of the collected operational metrics has been exceeded; and in response to the threshold time interval being exceeded, performing a rollup of the collected operational metrics from the thread-local memory to an accumulation point in a shared memory, where the accumulation point stores aggregated operational metrics from a plurality of threads.
    Type: Grant
    Filed: December 29, 2009
    Date of Patent: June 17, 2014
    Assignee: International Business Machines Corporation
    Inventors: Paul M Bird, David Kalmuk, Scott D Walkty
  • Patent number: 8752007
    Abstract: A method and apparatus for automatically generating a run-time instrumenter are disclosed. In accordance with the illustrative embodiment, an off-line analyzer first determines instrumentation locations for a program under test in accordance with a method called the Super Nested Block Method. After the instrumentation locations have been determined, source code for a run-time instrumenter is automatically generated based on the source code for the program under test and the instrumentation locations. The source code for the program under test and the run-time instrumenter are then compiled into executables, and a testing tool then executes the program under test and the run-time instrumenter in parallel.
    Type: Grant
    Filed: March 26, 2008
    Date of Patent: June 10, 2014
    Assignee: Avaya Inc.
    Inventors: Juan Jenny Li, David Mandel Weiss
  • Patent number: 8752027
    Abstract: Aspects of the subject matter described herein relate to injecting faults into programs for testing. In aspects, a program is instrumented with instrumentation points. A request that an exception be raised at an instrumentation point is received. In response, a sink is configured to listen for the event associated with the instrumentation point. The sink is further configured to cause the exception to be raised to the program in response to receiving the event. The exception may be raised without modifying code of the program.
    Type: Grant
    Filed: September 14, 2011
    Date of Patent: June 10, 2014
    Assignee: Microsoft Corporation
    Inventors: Sadek A. Noureddine, Artem Yegorov
  • Patent number: 8752026
    Abstract: A method for instrumenting a computer program, the method including identifying a program slice within a computer program, and instrumenting the program slice within the program.
    Type: Grant
    Filed: June 1, 2009
    Date of Patent: June 10, 2014
    Assignee: International Business Machines Corporation
    Inventors: Adi Sharabani, Omer Tripp
  • Patent number: 8752015
    Abstract: A technique for updating agent software which controls an agent, including how the agent adds instrumentation to an application and how the agent process data from the instrumentation. A current configuration file and an updated configuration file are evaluated in view of rules, to create a merged configuration file. The files include metadata entries. The rules can include: delete a current configuration file, not merge a current configuration file with an updated configuration file, overwrite a current configuration file with an updated configuration file, delete a metadata entry, prefer an entry in the configuration file over a corresponding entry in the updated configuration file, and prefer an entry in the updated configuration file over the corresponding entry in the configuration file. Customized entries in the current configuration file can be maintained if appropriate. Entries which are not maintained are kept in the merged configuration file as inline comments for documentation.
    Type: Grant
    Filed: December 5, 2011
    Date of Patent: June 10, 2014
    Assignee: CA, Inc.
    Inventors: Indranil Basak, Dipasoke Chattopadhyay, Abhijit Bhadra, Gurumurthy R
  • Patent number: 8752028
    Abstract: A monitoring of a server system during an execution of a server system processing logic, includes: during collection and storage of operational metrics by a given thread in a thread-local memory, determining that a checkpoint within the server system processing logic is reached; determining whether a threshold number of checkpoints have been encountered by the given thread; in response to the threshold number of checkpoints having been encountered, determining whether a threshold time interval since a last rollup of the collected operational metrics has been exceeded; and in response to the threshold time interval being exceeded, performing a rollup of the collected operational metrics from the thread-local memory to an accumulation point in a shared memory, where the accumulation point stores aggregated operational metrics from a plurality of threads.
    Type: Grant
    Filed: February 22, 2013
    Date of Patent: June 10, 2014
    Assignee: International Business Machines Corporation
    Inventors: Paul M Bird, David Kalmuk, Scott D Walkty
  • Publication number: 20140157240
    Abstract: A method of enabling an executed control flow path through computer program code to be determined. The method comprising modelling cumulative instruction counts for control flow paths through the computer program code, and inserting at least one probe within the computer program code to enable a cumulative instruction count value for at least one control flow path of the computer program code to be accessed.
    Type: Application
    Filed: July 20, 2011
    Publication date: June 5, 2014
    Applicant: Freescale Semiconductor, Inc
    Inventor: David Baca
  • Patent number: 8745597
    Abstract: System, and computer program product for providing programming support to a debugger are disclosed. The debugger executes at least one debugger programming statement which modifies at least a portion of the computer program during execution of the computer program without recompiling the computer program. The debugger may be instructed to execute the at least one debugger programming statement at a specified position of the computer program. The at least one debugger programming statement may include a delete instruction that instructs the debugger to prevent one or more programming statements at a specified position in the computer program from being executed. The debugger may be instructed to execute the at least one debugger programming statement instead of one or more programming statements at a specified position in the computer program without recompiling the computer program.
    Type: Grant
    Filed: November 25, 2009
    Date of Patent: June 3, 2014
    Assignee: International Business Machines Corporation
    Inventors: Madhusudanan Kandasamy, Vidya Ranganathan
  • Patent number: 8745596
    Abstract: The present disclosure simplifies programming debugging by dynamically injecting debugger compiled instrumentation into the debuggee process such that the debuggee process executes the instrumentation without executing the debugger. In one example method, the debugger controls compiling a description of the instrumentation as an instrumentation method. The debugger can then write the instrumentation method into the debuggee. The debuggee can save the state of a target method of the debuggee process at a predetermined location. The debuggee process calls the instrumentation method from the debuggee. In addition, the state of the target method can be restored and the resumed from the predetermined location after the instrumentation method executes.
    Type: Grant
    Filed: February 5, 2009
    Date of Patent: June 3, 2014
    Assignee: Microsoft Corporation
    Inventor: Paul Maybee
  • Patent number: 8745592
    Abstract: Some embodiments provide a system that generates a test suite for a software program. During operation, the system obtains a set of inputs for the software program and determines a coverage of the software program associated with the set of inputs. Next, the system determines a subset of the inputs which substantially provides the coverage of the software program. Finally, the system uses the subset of inputs as the test suite for the software program.
    Type: Grant
    Filed: January 8, 2010
    Date of Patent: June 3, 2014
    Assignee: Google Inc.
    Inventors: Tavis Ormandy, William A. Drewry
  • Patent number: 8745591
    Abstract: Computation execution can be visualized and debugged. A computation such as a database query plan graph can be extracted from a database query expression. Trace points can be injected into the database query expression while preserving original behavior. Query graphs can be generated with automatic inserting of mechanisms to connect to trace points, enabling visualization of query execution lifecycle states, collection of data traces across operators, and historical debugging with replay of data sets.
    Type: Grant
    Filed: October 19, 2011
    Date of Patent: June 3, 2014
    Assignee: Microsoft Corporation
    Inventors: Bart De Smet, Henricus Johannes Maria Meijer
  • Patent number: 8745598
    Abstract: A technique provides a hook that executes prior to a software application that is invisible to the software application. In an object-oriented execution environment, an imposter main class is loaded instead of the application main class. The imposter main class then manipulates the object-oriented execution environment to load the application main class without requiring knowledge of the application main class other than its name, and without requiring a change to the command line for the application.
    Type: Grant
    Filed: December 14, 2010
    Date of Patent: June 3, 2014
    Assignee: BMC Software, Inc.
    Inventors: Eyal Koren, Golan Hallel, Asaf Dafner
  • Publication number: 20140149968
    Abstract: A dynamic library profiling method and a dynamic library profiling system including writing a first break point instruction at a start address of a dynamic library function, recording a first event count value that is a process performance management unit (PMU) count when a target process executes the first break point instruction, writing a second break point instruction to a return address of the dynamic library function, and calculating a PMU count generated in a processor core while the dynamic library function is executed, by comparing the recorded first event count value with a second event count value that is a process PMU count when the target process executes the second break point instruction, wherein the process PMU count is a cumulative value of PMU counts generated in the processor core while the target process is executed.
    Type: Application
    Filed: November 22, 2013
    Publication date: May 29, 2014
    Applicants: Samsung Electronics Co., Ltd., SEOUL NATIONAL UNIVERSITY R&DB FOUNDATION
    Inventors: Min-Ju LEE, Bernhard EGGER, Jae-jin LEE, Young-Lak KIM, Hong-Gyu KIM, Hong-June KIM
  • Patent number: 8739135
    Abstract: Embodiments of the present invention provide a dynamic instrumentation system that uses statically defined probes. The probes may be defined using macro definitions. One or more libraries of macro definitions that are linked to static probes are provided in the computer system. Each probe is uniquely identified by a name having a well-defined prefix and a structured format. Probes may then be inserted at various locations and into the target software using standard macro calls. When the target software is compiled, the macro calls of each probe are expanded to calls to an existing function known as a probe handler function. Each probe handler function is identified in the computer system's symbol table with a unique symbol that corresponds to the name specified by the macro definition. When a probe is activated, the operating system kernel transfers control to an instrumentation kernel object.
    Type: Grant
    Filed: November 4, 2005
    Date of Patent: May 27, 2014
    Assignee: Red Hat, Inc.
    Inventor: Frank Eigler
  • Patent number: 8739143
    Abstract: Embodiments include methods, apparatus, and systems for profiling metrics for computer programs. One embodiment includes a method that executes a program to obtain data for each of plural entities in the program. Equations are received for plural metrics that define events occurring in the entities. The method then displays scores for each of the entities with respect to each of the metrics in order to visually indicate which of the entities to optimize to improve performance of the program.
    Type: Grant
    Filed: January 31, 2007
    Date of Patent: May 27, 2014
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: David LaFrance-Linden
  • Publication number: 20140143759
    Abstract: A method for comparing concurrent thread executions is disclosed. A thread flow marker class is defined for a source code. One or more markers of the thread flow marker class are embedded in a class of interest or in places of interest within the class of interest in the source code. A flow of data from concurrent threads executions from the source code is tracked using the one or more markers.
    Type: Application
    Filed: November 21, 2012
    Publication date: May 22, 2014
    Applicant: SAP AG
    Inventors: Nikolai Neichev, Radoslav Smilyanov, Petar Petrov
  • Patent number: 8732672
    Abstract: A method of creating constraints for use with object code insertion technology can include deriving an A-representation and a B-representation of values produced by execution of instructions of a portion of object code, wherein prior to object code insertion the A-representation and the B-representation of a value produced by same instruction(s) are equivalent. The method further can include identifying equalities between A-representations of values produced by different instructions and determining constraints from the identified equalities using B-representations, where the constraints are observed after object code insertion.
    Type: Grant
    Filed: December 15, 2005
    Date of Patent: May 20, 2014
    Assignee: International Business Machines Corporation
    Inventor: Gregory S. Tseytin
  • Patent number: 8732674
    Abstract: A target program is instrumented during execution by using statements in high-level programming languages, without restarting the target and without modifying the compiled binary of the target on disk. The target and the analysis program modifying it may each include managed code. The target program is presented by an instrumentation API as a queryable database, rather than a mere sequence of processor-level instructions. An instrumentation context for the target program's execution image is obtained, with identifications of functions, individual instructions, and other instrumentable items that satisfy criteria specified in a query. Functions and low-level instructions may be identified as satisfying the query regardless of whether they have executed yet. High-level statements transform query-satisfying items in the target's execution image, by appending code, injecting a fault, replacing an individual instruction, or replacing an individual operand.
    Type: Grant
    Filed: November 14, 2012
    Date of Patent: May 20, 2014
    Assignee: Microsoft Corporation
    Inventor: Karim Agha
  • Patent number: 8732673
    Abstract: System and method for automatically identifying a source of a run-time error in a computer system comprises a static analysis system (SAS), an instrumentation system (IS) and a post-execution analysis system (PEAS). The is arranged to generate static analysis data on computer program code (CPC) for the computer system, including information on possible behaviors of the CPC when executed. The IS is arranged to instrument the CPC by inserting marker triggers into the CPC that, generate a marker associated with each of a number of predetermined points in the CPC that would be reached during execution of the CPC. Each marker is, uniquely identifiable. The predetermined points are determined in dependence on the static analysis data. The PEASpost execution analysis system is arranged to processes data on a run-time error produced by execution of the instrumented CPC, wherein the generated markers and the static analysis data to identify the source of the run-time error.
    Type: Grant
    Filed: December 12, 2011
    Date of Patent: May 20, 2014
    Assignee: ITI Scotland Limited
    Inventors: Robert Finking, Simon Roberts, Graham Hewson
  • Publication number: 20140137083
    Abstract: Embodiments provide systems, methods, and computer program products for instrumenting software application code. A target method and a template method may each be elevated to respective linked lists that maintain offsets in a relative relationship using pointers. The lists are merged and converted back to byte code as an instrumented method.
    Type: Application
    Filed: October 22, 2013
    Publication date: May 15, 2014
    Applicant: Riverbed Technology, Inc.
    Inventors: Robert MEAGHER, Jeffrey LECOURS
  • Patent number: 8726243
    Abstract: Performance of applications run on a distributed processing structure including a grid of processing units is automatically tested by: running at least one application on the distributed processing structure; loading the application with processing workload to thereby produce processing workload on the distributed processing structure; sensing the operating status of the processing units in the distributed processing structure under the processing workload and producing information signals indicative of such operating status; collecting these information signals; providing a rule engine and selectively modifying, as a function of the rules in the rule engine and the information signals collected, at least one of: the processing workload on the application, and the operating status of the processing units in the grid.
    Type: Grant
    Filed: September 30, 2005
    Date of Patent: May 13, 2014
    Assignee: Telecom Italia S.p.A.
    Inventors: Antonio Nasuto, Danilo Gotta
  • Patent number: 8726239
    Abstract: An isolation system is described for converting original product code into corresponding modified code. The isolation system operates by identifying a subset of original methods to be converted. For each such original method, the isolation system generates a modified part having at least one property with a type-safe delegate type which matches a signature of the original method. Test code, which tests the product code, can then associate a delegate instance to the thus-defined property of the original method. This prompts an execution system to dynamically execute detour code associated with the delegate instance, rather than an instrumentation of the original method, thus avoiding dependency on potentially non-deterministic functionality which would be otherwise invoked by an instrumentation of the original method.
    Type: Grant
    Filed: May 5, 2010
    Date of Patent: May 13, 2014
    Assignee: Microsoft Corporation
    Inventors: Jonathan Paul de Halleux, Nikolai Tillmann
  • Publication number: 20140130018
    Abstract: In a computer, a method of collecting timing data related to a compute application is provided. The method comprises receiving user input from a user, the user input triggering providing at least one instruction to the computer application for execution of an operation and executing the operation. The results out of execution of the operation are presented to the user. The method further comprises generating a timing data record comprising data for determining the amount of time lapsed between start of the execution of the instruction and end of the execution of the instruction. By generating the timing data in the computer, the data for generating the timing data record is already available in the device can be directly used and stored. In this way, accurate timing data may be collected for further use.
    Type: Application
    Filed: November 5, 2013
    Publication date: May 8, 2014
    Applicant: Realworld Holding B.V.
    Inventor: Dan Arghirescu
  • Patent number: 8719798
    Abstract: System and method for providing logging information associated with development of executable program code. The method may include inserting a plurality of logging information elements into program code, the plurality of logging information elements having at least one logging parameter associated with the program code. In one embodiment, filtering criteria may be defined corresponding to the at least one logging parameter. In another embodiment, the program code may be filtered based on the filtering criteria. According to another embodiment, a result of the filtering may be provided including a subset of the plurality of logging information elements corresponding to said filtering criteria.
    Type: Grant
    Filed: August 1, 2007
    Date of Patent: May 6, 2014
    Assignees: Sony Corporation, Sony Electronics Inc.
    Inventor: Bob Unger
  • Patent number: 8719796
    Abstract: A program trace is obtained and events of the program trace are traversed. For each event identified in traversing the program trace, a trace slice of which the identified event is a part is identified based on the parameter instance of the identified event. For each trace slice of which the identified event is a part, the identified event is added to an end of a record of the trace slice. These parametric trace slices can be used in a variety of different manners, such as for monitoring, mining, and predicting.
    Type: Grant
    Filed: January 24, 2011
    Date of Patent: May 6, 2014
    Assignee: The Board of Trustees of the University of Illinois
    Inventors: Grigore Rosu, Patrick O. Meredith, Guo-fang Chen, Yamei Wu
  • Patent number: 8719789
    Abstract: Test coverage is enhanced by measuring various types of coupling between coverage tasks. The coupling measurements may be implicit coupling measurements, explicit coupling measurements, coding coupling measurements, performance coupling measurements, resource coupling measurements or the like. Coupling scores are calculated for coverage tasks and based thereon ranking of the coverage tasks or groups of coverage tasks may be determined The ranking may be utilized in selecting for which uncovered coverage task a test should be designed. The ranking may be utilized in computing a coverage measurement of a test suite. The ranking may be utilized to rank tests, based on the coverage tasks each test covers. Ranking of tests may be utilized for various purposes such as performing test selection.
    Type: Grant
    Filed: March 7, 2011
    Date of Patent: May 6, 2014
    Assignee: International Business Machines Corporation
    Inventors: Yoram Simha Adler, Rachel Tzoref-Brill, Moshe Klausner, Orna Pelleg Raz, Onn Menahem Shehory, Aviad Zlotnick
  • Patent number: 8719801
    Abstract: Described are various techniques by which a concurrent program is analyzed with respect to timing. In one aspect, code fragments in a concurrent program are modified and/or instrumented by inserting iteration counters inside loops. Examples of modified fragments include those corresponding to concurrently executing code fragments, non-blocking concurrent code fragments, blocking concurrent code fragments, fragments having a loop that may not terminate, fragments having interlocked operation, or fragments having a timeout. Such fragments are modified and/or flagged so as to provide the summary data. When statically analyzed, the instrumented code provides complexity information regarding each fragment, or combinations of fragments, such as concurrent fragments. Summary data regarding the concurrent program is provided by processing the complexity information into at least one computation graph.
    Type: Grant
    Filed: June 25, 2008
    Date of Patent: May 6, 2014
    Assignee: Microsoft Corporation
    Inventors: Sumit Gulwani, Raluca Carmen Sauciuc
  • Patent number: 8719799
    Abstract: Test coverage is enhanced by measuring various types of coupling between coverage tasks. The coupling measurements may be implicit coupling measurements, explicit coupling measurements, coding coupling measurements, performance coupling measurements, resource coupling measurements or the like. Based on the coupling measurements, different coverage tasks may be grouped together. For example, closely coupled coverage tasks may be grouped together. The groups may also be determined based on an initial distribution of groups, by combining groups having closely coupled member coverage tasks. The groups may be ordered and prioritized, such as based on the size of the groups and the number of uncovered tasks in each group. The groups may also be ordered, such as based on coupling score which aggregate the coupling measurements of the member coverage tasks.
    Type: Grant
    Filed: March 7, 2011
    Date of Patent: May 6, 2014
    Assignee: International Business Machines Corporation
    Inventors: Yoram Simha Adler, Rachel Tzoref-Brill, Moshe Klausner, Orna Pelleg Raz, Onn Menahem Shehory, Aviad Zlotnick
  • Publication number: 20140123116
    Abstract: Systems and methods for debugging domain specific languages are provided. In accordance with an embodiment, one such system can comprise a web which includes a virtual machine, a debug execution machine, and a domain specific language (DSL)-specific tool interface. The web server is configured to compile DSL code received from a developer computer. During compilation the DSL code is instrumented to include debugging information received from the developer computer. The web server is also configured to execute, by the virtual machine, the instrumented code. During execution the instrumented code communicates with the debug execution machine such that a state of the debug execution machine mirrors a state of the virtual machine.
    Type: Application
    Filed: October 30, 2012
    Publication date: May 1, 2014
    Applicant: Oracle International Corporation
    Inventors: John Smiljanic, Shailesh Vinayaka, James Driscoll
  • Patent number: 8713568
    Abstract: A system and method for detecting deadlock in multithread program is provided. The method includes: selecting the thread to be detected; initiating a tracking program to track the thread running in a kernel; initiating a target multithread program; determining whether the selected thread is running; dynamically inserting a probe in the database in order to detect the selected thread through the instrument function. The instrument function records the detected data, and when the recorded data goes beyond the threshold value of the kernel, the data is transmitted to the user space which stores the data, and analyzing the data stored in the user space to judge whether deadlock has been generated. Accordingly, it is possible to detect deadlock efficiently, without the source code of the target program. This is beneficial to a debug task of the multithread and is beneficial to analysis of the usage of the source by the multithread program.
    Type: Grant
    Filed: March 31, 2011
    Date of Patent: April 29, 2014
    Assignees: Samsung Electronics Co., Ltd., Samsung Electronics (China) R&D Center
    Inventors: Zhigang Shen, Feng Tian