Including Instrumentation And Profiling Patents (Class 717/130)
  • Publication number: 20110107313
    Abstract: A computer implemented method involving receiving by an integrated development environment an output file from a profiling utility to generate a line chart of data from the output file. The method to visualize profiling data for a binary file automatically and to displaying corresponding source code in response to a user selection of a data point in the line chart.
    Type: Application
    Filed: November 4, 2009
    Publication date: May 5, 2011
    Applicant: Red Hat, Inc.
    Inventor: Elliott Baron
  • Publication number: 20110107307
    Abstract: System(s), method(s), and computer program product(s) for collecting program runtime information are provided. In one aspect, this comprises: an instrumentation module for inserting, by program instrumentation, monitoring code into the constructor of an exception class in a program to run; and a monitoring module implemented by said monitoring code, the monitoring module for collecting program runtime information during the running process of the program. In another aspect, this comprises: obtaining verification point variables from assertions for a program to be tested; inserting monitoring code into positions in the program that access the obtained verification point variables; and as the program runs, collecting runtime information of the program by the inserted monitoring code.
    Type: Application
    Filed: October 27, 2010
    Publication date: May 5, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Yan Kai Liu, Yao Qi, Xing Xing Shen, Chuang Tang
  • Patent number: 7937691
    Abstract: A method, apparatus, and computer instructions in a data processing system for monitoring the execution of instructions and accesses to memory locations. If an instruction is associated with a indicator, a counter associated with the instruction is incremented in response to detecting execution of the instruction. The indicator may be associated with a memory location with a counter associated with the memory location being incremented in response to an access of the memory location.
    Type: Grant
    Filed: September 30, 2003
    Date of Patent: May 3, 2011
    Assignee: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, Jr., Frank Eliot Levine, Enio Manuel Pineda, Christopher Michael Richardson, Robert John Urquhart
  • Patent number: 7930165
    Abstract: A method and corresponding equipment for emulation of a target programmable unit, which has at least one CPU, by means of an external emulation device, which is coupled to the target programmable unit by means of a communication link, comprising: transferring predetermined initialization data through the communication link to the emulation device for initializing the emulation; transferring through the communication link to the emulation device a CPU clock signal and emulation data; emulating the target programmable unit in the external emulation device using the transferred emulation data; ascertaining respective trace data from the emulation in the external emulation device and storing and/or outputting the trace data; deriving respective target integrity-control data and emulation integrity-control data from respective target-internal data and emulation-internal data; and transferring the derived target integrity-control data from the target programmable unit to the external emulation device.
    Type: Grant
    Filed: February 7, 2008
    Date of Patent: April 19, 2011
    Assignee: Accemic GmbH & Co. KG
    Inventors: Alexander Weiss, Alexander Lange
  • Patent number: 7930684
    Abstract: A system, method, and computer-accessible medium for logging and replaying asynchronous events are disclosed. One or more asynchronous events occurring during execution of a first instance of a computer program are logged. In logging the asynchronous events, a respective location in the execution of the first instance at which each of the one or more asynchronous events occurs is determined. A respective synchronous event preceding each asynchronous event is also determined. The asynchronous events are replayed during execution of a second instance of the computer program. In replaying each asynchronous event, the second instance is instrumented at the respective location during the execution of the second instance after detecting the preceding synchronous event.
    Type: Grant
    Filed: October 12, 2005
    Date of Patent: April 19, 2011
    Assignee: Symantec Operating Corporation
    Inventors: Guenter E. Roeck, Serge Pashenkov, Serge Shats
  • Patent number: 7930700
    Abstract: An embodiment of a method of ordering operations begins with a first step of a computing entity storing a training data set, which includes previously executed operation pairs, attribute data, and relative cost data. In a second step, the computing entity forms a predictor. In a third step, the computing entity applies the predictor to an operation pair of first and second to-be-executed operations to determine a predicted relative cost between the first and second to-be-executed operations. Another embodiment of the method comprises the first step, the second step, an alternative third step, and a fourth step. In the alternative third step, the computing entity applies the predictor to to-be-executed operations in operation pairs to determine a predicted relative cost between first and second operations for each operation pair. In the fourth step, the computing entity employs the operation pairs and the predicted relative costs to sort the to-be-executed operations.
    Type: Grant
    Filed: May 23, 2005
    Date of Patent: April 19, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Sujoy Basu, Ira Cohen
  • Patent number: 7926042
    Abstract: A system and method for dynamic instrumentation of an interpreted application. The method includes the operation of loading an interpreted code unit into a virtual machine. Testing instrumentation can then be inserted into the interpreted code unit using the virtual machine while the interpreted application continues executing. Another operation is executing the interpreted code unit with the testing instrumentation.
    Type: Grant
    Filed: October 31, 2005
    Date of Patent: April 12, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Virendra Kumar Mehta, Sandya S. Mannarswamy
  • Patent number: 7926036
    Abstract: The present examples provide technologies for estimating code failure proneness probabilities for a code set and/or the files that make up the set. The code set being evaluated is typically comprised of binary and/or source files that embody the software for which the estimates are desired. The estimates are typically based on a set of selected code metrics, the code metrics typically selected based on corresponding failures of a previous version of the software. A historically variant metric feedback factor may also be calculated and code metric values classified relative to a baseline code set embodying the previous version of the software.
    Type: Grant
    Filed: April 26, 2007
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: Nachiappan Nagappan, Thirumalesh Bhat
  • Patent number: 7926043
    Abstract: The described technology provides data structure path profiling. An instrumented version of a program is created that calls a profiler runtime when pointer based data structures are allocated or accessed via pointers. A model of the heap is created and nodes in the model data structures are assigned unique identifiers. Paths traversed through the model data structures are assigned unique identifiers. The paths are counted in order to identify paths through the data structure model that are traversed frequently. The model is useful for providing information about high frequency data paths to the program developer and for various optimization purposes, such as prefetching and or increasing data locality during garbage collection.
    Type: Grant
    Filed: June 20, 2006
    Date of Patent: April 12, 2011
    Assignee: Microsoft Corporation
    Inventors: Kapil Vaswani, Trishul Chilimbi
  • Publication number: 20110078664
    Abstract: The present invention comprises: a converting step for converting a source program into a machine language program; an inserting step for inserting notifying instructions for notifying that the source program has been executed in the machine language program; and a program generating step for generating the executable program from the machine language program in which the notifying instructions are inserted. Further, in the inserting step, the notifying instructions are placed at the entry points of each basic block that constitutes the machine language program and the notifying instructions to which the same conditions as those of the conditional instruction groups are granted are placed at the entry points of conditional instruction groups provided in the machine language program. In the program generating step, identification information for identifying the notifying instructions is granted to each of the notifying instructions.
    Type: Application
    Filed: December 7, 2010
    Publication date: March 31, 2011
    Applicant: PANASONIC CORPORATION
    Inventors: Yoko MAKIYORI, Taketo HEISHI, Akira TAKUMA
  • Patent number: 7917894
    Abstract: A source container for use in a computer system executing problem determination tools in an integrated environment across a computer network, the source container comprising a list of pathways to a plurality of source files and module objects. A software development may create the source container independently or within the front end of a problem determination tool. The front end of the problem determination tools sends the source container to its engine, and only source files and module objects having a pathway in the source container are analyzed within the engine of the problem determination tool. Furthermore, the results of the analysis of only those source files and module objects having a pathway in the source container are returned to the front end of the problem determination tool for viewing by the software developer.
    Type: Grant
    Filed: June 3, 2005
    Date of Patent: March 29, 2011
    Assignee: International Business Machines Corporation
    Inventors: Xuan Zhang Chen, Kushal Sayeed Munir, David Kenneth McKnight, Li Ding, Vadim Berestetsky
  • Patent number: 7917897
    Abstract: Embodiments of the invention are generally related to computer systems, and more specifically to the analysis of defects in computer software products. Defects uncovered during software testing may be stored in a data structure as data defects, code defects, or environment defects, along with further data describing a particular nature of the defects. The defects may be analyzed to determine a particular problem area causing the defects. If a particular class of defects is determined to be the dominant class of defects encountered during testing, an analysis path of that class of defects may be followed to determine a cause for the defects in the respective class. Therefore, corrective measures tailored to resolving the defects associated with the determined cause may be taken.
    Type: Grant
    Filed: February 16, 2007
    Date of Patent: March 29, 2011
    Assignee: International Business Machines Corporation
    Inventors: Kathryn Allyn Bassin, Brian Richard Lepel, Warren James Leslie, Susan Eileen Skrabanek, Crystal Faye Springer, Nathan Gary Steffenhagen
  • Patent number: 7917901
    Abstract: A technique for the dynamic instrumentation of a running software system. One or more callable instrumentation functions are accessible in a first memory space associated with the software system. The one or more callable instrumentation functions are adapted to probe an operation of the software system and return data regarding the probed operation. Probed operation environment information needed by the one or more instrumentation functions is provided to a second memory space associated with the software system. First memory space addresses associated with the probed operation environment information are determined from a resource that is accessible in the second memory space. A probe handler is generated that includes calls to the one or more instrumentation functions with references to the first memory space addresses. The probe handler is callable as part of the probed operation.
    Type: Grant
    Filed: August 7, 2006
    Date of Patent: March 29, 2011
    Assignee: International Business Machines Corporation
    Inventor: Akulavenkatavara Pradadarao
  • Patent number: 7912935
    Abstract: A computer program product embodied in a computer-readable medium is configurable to accomplish execution of an application that is specified and encoded in a markup-based descriptor language. The product includes client runtime computer code configured to cause a client computer device to process the markup-based descriptor language to deploy an application to accomplish execution of the application. The client runtime computer code is further configured to process the markup-based descriptor language to selectively configure the client computer device to deploy the application so as to accomplish execution of the application by the client computer device stand-alone or by the client computer device in cooperation with a server to which the device is connectable via a network connection.
    Type: Grant
    Filed: March 24, 2008
    Date of Patent: March 22, 2011
    Assignee: Eliad Technologies, Inc.
    Inventors: Patrick Merissert-Coffinieres, Alain Dinkespiler, Alejandro Daniel Rosenblatt, Madalina Stroe
  • Patent number: 7908590
    Abstract: A system and method for generating test cases for a computer program. The method and system include invoking execution of the computer program via a remote client and monitoring the execution of the computer program. Information about execution path of the computer program is collected and then the execution of the computer program is stopped via the remote client. One or more test cases are then generated utilizing the collected information. In one embodiment, the remote client is a computer test tool and the computer program is a web application.
    Type: Grant
    Filed: November 13, 2006
    Date of Patent: March 15, 2011
    Assignee: Parasoft Corporation
    Inventors: Jeehong Min, Matthew David Love, Wayne P. Ariola, Jr.
  • Patent number: 7908591
    Abstract: A memory profiler is provided in a programming environment. The memory profiler records memory usage information at a point of a program that runs in the programming environment. The memory profiler may record information on the amount of allocated memory, the amount of freed memory and the amount of peak memory usage. The memory profiler may also record the number of allocations and frees. The memory usage information is associated with individual points in the program so that a user can utilize this information to change the program to use less memory. With the memory usage information, the present invention enables a user to recognize how much memory is being allocated and used on behalf of a program and to track down what code is actually causing a problem in the program.
    Type: Grant
    Filed: July 17, 2006
    Date of Patent: March 15, 2011
    Assignee: The MathWorks, Inc.
    Inventors: William Nell, Loren Shure
  • Patent number: 7904956
    Abstract: A facility for providing access authorization is provided. The facility initially enforces a first, less restrictive policy when making its access control decisions. Subsequent to detecting an anomaly, the facility enforces a second, more restrictive policy when making its access control decisions. The facility returns to enforcing the first, less restrictive policy when the anomaly no longer exists. In another embodiment, the facility enforces a policy after detecting an anomaly and until the anomaly has ended.
    Type: Grant
    Filed: October 1, 2004
    Date of Patent: March 8, 2011
    Assignee: Microsoft Corporation
    Inventors: Gilad Golan, Mark Vayman
  • Patent number: 7904894
    Abstract: Various technologies and techniques are disclosed that automatically optimize package execution performance. A profiling phase executes each task in a control flow package and measures performance metrics, such as task execution length, task memory usage, task correlation to CPU versus input/output operations, network bandwidth, and running applications. An optimization phase optimizes subsequent executions of the package by using the performance metrics to make appropriate adjustments to the package. The profiling phase and optimizing phase are repeated over a period of time as appropriate to improve the package's performance without requiring a user to make adjustments to the tasks in the package.
    Type: Grant
    Filed: March 29, 2006
    Date of Patent: March 8, 2011
    Assignee: Microsoft Corporation
    Inventors: Michael Entin, Euan P. Garden, J. Kirk Haselden
  • Patent number: 7904912
    Abstract: A computer implemented method, apparatus, and computer usable code for identifying processor utilization. A current event is detected. A number of elapsed cycles for a processor since a previous event are identified in response to detecting the current event. An elapsed time using the number of elapsed cycles and a current frequency of the processor is calculated, wherein the elapsed time is used to identify the processor utilization.
    Type: Grant
    Filed: August 30, 2005
    Date of Patent: March 8, 2011
    Assignee: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, Frank Eliot Levine, Enio Manuel Pineda, Robert John Urquhart
  • Publication number: 20110055806
    Abstract: A system and method of discovering one or more program variable values may extract an abstract interpretation of a program variable used in a computer program, locate installation-specific repositories associated with the computer program, parse the located installation-specific repositories and extract one or more configuration parameters, and substitute the one or more configuration parameters into the extracted abstract interpretation.
    Type: Application
    Filed: September 3, 2009
    Publication date: March 3, 2011
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Sergej Chicherin, Nikolai A. Joukov, Birgit Pfitzmann, Marco Pistoia, Vasily Tarasov, Takaaki Tateishi, Norbert G. Vogl
  • Patent number: 7900198
    Abstract: A method for extracting context information from an extraction module to create a minimized extraction module, creating a parameter profile from the context information, transmitting the minimized extraction module to a target device, receiving a value extracted from the target device by the minimized extraction module, and combining the value with at least a portion of the context information to create a user readable log statement. A system having an extraction element extracting context information from an extraction module to create a minimized extraction module, a creating element creating a parameter profile from the context information, a transmitting element transmitting the minimized extraction module to a target device, a receiving element receiving a value extracted from the target device by the minimized extraction module, and a combining element combining the value with at least a portion of the context information to create a user readable log statement.
    Type: Grant
    Filed: October 2, 2006
    Date of Patent: March 1, 2011
    Assignee: Wind River Systems, Inc.
    Inventor: Bulent Kasman
  • Patent number: 7900196
    Abstract: A computer implemented method, apparatus and computer usable program code for collecting information on wait states occurring during execution of a program. Filter criteria associated with a wait state are identified. A determination is made as to whether the filter criteria are met for the wait state. Information is collected about a set of requesters associated with the wait state in response to a determination that the filter criteria have been met.
    Type: Grant
    Filed: May 24, 2006
    Date of Patent: March 1, 2011
    Assignee: International Business Machines Corporation
    Inventors: Jimmie Earl DeWitt, Jr., Riaz Y. Hussain, Frank Eliot Levine
  • Patent number: 7900195
    Abstract: Disclosed herein is a data processing system-implemented method, a data processing system, and an article of manufacture for investigating computer software. The data processing system-implemented method includes capturing tracing information at one or more boundary points of the computer software, and reproducing a behavior of the computer software at the boundary points based on the captured tracing information.
    Type: Grant
    Filed: January 5, 2009
    Date of Patent: March 1, 2011
    Assignee: International Business Machines Corporation
    Inventors: Robert Alan Begg, Murray Frederick Chislett, Albert Grankin, John Paul Parkin, Edward Van Gennip, Mark Francis Wilding
  • Publication number: 20110047532
    Abstract: Methods and apparatuses that collect code coverage information for selected code locations when executing executable code are described. Source code in one or more files may be annotated at the selected code locations. The executable code may be compiled from the annotated source code using standard compilers. The code coverage information may be collected into a run time data store accessible by other applications. In response to receiving a code coverage request, the code coverage information can be retrieved from the data store to compare with annotations identified from the source code. A code coverage report can be generated to indicate whether one or more of the selected code locations are not covered when executing the executable code.
    Type: Application
    Filed: August 28, 2009
    Publication date: February 24, 2011
    Inventor: Wenguang Wang
  • Publication number: 20110047531
    Abstract: Methods and apparatuses that collect code coverage information for selected code locations when executing executable code are described. Source code in one or more files may be annotated at the selected code locations. The executable code may be compiled from the annotated source code using standard compilers. The code coverage information may be collected into a run time data store accessible by other applications. In response to receiving a code coverage request, the code coverage information can be retrieved from the data store to compare with annotations identified from the source code. A code coverage report can be generated to indicate whether one or more of the selected code locations are not covered when executing the executable code.
    Type: Application
    Filed: August 19, 2009
    Publication date: February 24, 2011
    Inventor: Wenguang Wang
  • Patent number: 7895588
    Abstract: A method is described by defining one or more classes within a software application as being in scope, any class not defined as being in scope are defined as being out of scope, all classes comprise at least one method. The method further determines an amount of allocated memory for each of said in scope classes and said out of scope classes. Lastly, if one of said methods from one of said out of scope classes are called as a result of the calling of one of the in scope classes, adding said allocated memory from said out of scope class to said allocated memory of said in scope class.
    Type: Grant
    Filed: December 20, 2004
    Date of Patent: February 22, 2011
    Assignee: SAP AG
    Inventor: Albert P. Rossmann
  • Patent number: 7895577
    Abstract: The invention relates to a device for testing the structural coverage of a software program and a method implementing the device. The software, stored in a first memory comprises instructions which can be located via addresses on an address bus connecting the processor to the first memory. The device includes a second memory connected to the address bus that can be used to store values in memory associated with each address, these values indicating the conditions for calling up the associated address by the processor. The method consists in erasing all the contents of the second memory, performing tests validating the software, comparing the contents of the second memory with a list of addresses where instructions are located.
    Type: Grant
    Filed: June 21, 2005
    Date of Patent: February 22, 2011
    Assignee: Thales
    Inventor: Jerome Papineau
  • Patent number: 7895580
    Abstract: A system and method are described for tracing program flow within an application. In one embodiment of the invention, options for modifying application bytecode at a variety of different levels of precision are provided. For example, bytecode may be modified at the application level, the package level, the class level and/or the method level. Each level of precision effectively identifies a different set of methods of the application which are to be traced. Once the level of prevision is identified and the application is executed, information related to the modified bytecode is collected via a tracing service.
    Type: Grant
    Filed: December 30, 2003
    Date of Patent: February 22, 2011
    Assignee: SAP AG
    Inventor: Nikolai G. Nikolov
  • Patent number: 7895581
    Abstract: In one embodiment a computer system comprises one or more processors and a memory module communicatively connected to the one or more processors. The memory module comprises logic instructions which, when executed on the one or more processors configure the one or more processors to receive an interrupt in an execution thread of a process executing at an application layer of an operating system, intercept the interrupt in a profiling collector module invoked directly from a raw machine state, execute a profiling collection process, and return control from the interrupt to the execution thread when the profiling collection process is complete.
    Type: Grant
    Filed: January 26, 2007
    Date of Patent: February 22, 2011
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: David LaFrance-Linden
  • Patent number: 7890936
    Abstract: A method for reverse reading a computer program code to locate useful information includes receiving a selection of a line of the computer program code from a user, extracting one or more variables from the line of the computer program, searching the computer program code for one or more other lines of code that create and/or use the variables, and highlighting the other lines of code that create and/or use the variables.
    Type: Grant
    Filed: July 31, 2006
    Date of Patent: February 15, 2011
    Assignee: International Business Machines Corporation
    Inventors: Cary L. Bates, Jason J. Illg
  • Patent number: 7890941
    Abstract: Techniques for reliable binary instrumentation based on annotation information are described. A binary file that comprises a code section representing the executable code of a computer program is accessed. The binary file also comprises annotation information that indicates the boundaries of one or more portions of the computer program. Accurate data flow information and control flow information may be generated based on the annotation information included in the binary file. The binary file is instrumented by inserting a set of instrumentation code at one or more points in the code section of the computer program. The one or more points are determined based on the data flow information and the control flow information.
    Type: Grant
    Filed: November 10, 2005
    Date of Patent: February 15, 2011
    Assignee: Oracle America, Inc.
    Inventors: Chandrashekhar Garud, Fu-Hwa Wang
  • Patent number: 7886281
    Abstract: The disclosure is directed to a method of tracing processing of software instructions associated with a transaction. The method includes writing an access data stream addressed to a receiving application on a remote application server and writing a transaction identifier to the end of the access data stream. The receiving application is configured to read the access data stream and the transaction identifier when an instrumented version of the receiving application is implemented on the remote application server.
    Type: Grant
    Filed: March 29, 2005
    Date of Patent: February 8, 2011
    Assignee: Symantec Corporation
    Inventors: Steven Smith, Eric David Schank, Brian Mead Tyler
  • Patent number: 7886268
    Abstract: An activation program first activates a basic program and a first functional program, which realizes a specific function, among a plurality of functional programs, and then activates at least one second functional program among the functional programs after the first functional program is completely activated.
    Type: Grant
    Filed: February 3, 2006
    Date of Patent: February 8, 2011
    Assignee: Ricoh Company, Limited
    Inventor: Kiwamu Okabe
  • Patent number: 7882496
    Abstract: Metering execution of interpreted programs on a data processing system is accomplished. An interpreted program requests a service to an interpreter running the interpreted program. The interpreter invokes a native external function for implementing the service. The invocation of the external function is intercepted. The interpreted program identified according to the external function by accessing a catalogue which associates native functions with interpreted programs. A license management operation is performed according to the identified interpreted program.
    Type: Grant
    Filed: May 31, 2005
    Date of Patent: February 1, 2011
    Assignee: International Business Machines Corporation
    Inventors: Giorgio Cognigni, Marco Mechelli, Claudio Morgia, Bernardo Pastorelli
  • Patent number: 7877734
    Abstract: An apparatus, program product and method associate a unique key with routines in an application to enable a profiler to ascertain whether to collect profile information for a routine during its execution. A key may be generated, for example, during deployment or installation of an application in an application server or other runtime environment, and subsequently associated with the routines in the application, e.g., by storing the key in the class and/or library files for the application. By doing so, each application in a runtime environment may be uniquely identified by a profiler during execution, such that profile information will only be collected for those applications for which profiling has been enabled.
    Type: Grant
    Filed: January 12, 2006
    Date of Patent: January 25, 2011
    Assignee: International Business Machines Corporation
    Inventors: Steven Joseph Branda, John Joseph Stecher
  • Patent number: 7877742
    Abstract: A method, system, and computer program product for generating terminating, pseudo-random test instruction streams, including forward and backward branching instructions. A first instruction stream is generated, including at least one backward branching instruction and at least one forward branching instruction. Each backward branching instruction is preceded by at least one forward branching instruction, which is used to guarantee termination of the loop formed by the backward branching instruction. Backward branching targets are resolved when the backward branching instruction is inserted into the first instruction stream. Forward branching targets remain unresolved in the first instruction stream. A set of potential branch targets is determined for each forward branching instruction. For each forward branching instruction, a branch target is randomly selected from the set of potential branch targets for that forward branching instruction.
    Type: Grant
    Filed: June 8, 2006
    Date of Patent: January 25, 2011
    Assignee: International Business Machines Corporation
    Inventors: Ali Y. Duale, Theodore J. Bohizic, Dennis W. Wittig
  • Publication number: 20110016455
    Abstract: The power usage of software executable by an embedded system may be profiled without the need for test benches or power measurement systems. Additionally, the power profiles corresponding to multiple pieces of software may be determined and compared.
    Type: Application
    Filed: January 31, 2010
    Publication date: January 20, 2011
    Inventors: Glenn Perry, Herbert Yuen, Manfred Kreutzer, Thomas Gatterweh
  • Patent number: 7865777
    Abstract: Apparatus and methods for intercepting and analyzing threads are disclosed. In one embodiment, a thread data recorder is configured to instrument one or more existing functions by modifying computer executable instructions in the functions to intercept threads calling the functions. In one possible implementation, the number of existing functions instrumented can be reduced by instrumenting choke point functions. The instrumented functions can also capture data associated with the threads as the threads execute at the function. This data can be saved to memory and compressed into logs. In one aspect, the data can be saved and/or compressed at a time when processor resources are being used at or below predetermined level. The captured data can be used to analyze a functioning of a computer system in which the threads were produced.
    Type: Grant
    Filed: October 31, 2007
    Date of Patent: January 4, 2011
    Assignee: Microsoft Corporation
    Inventors: Chad Verbowski, Brad Daniels, John Dunagan, Shan Lu, Roussi Roussev, Juhan Lee, Arunvijay Kumar
  • Publication number: 20100333071
    Abstract: Mechanisms for time based context sampling of trace data with support for multiple virtual machines are provided. In response to the occurrence of an event, a plurality of sampling threads associated with a plurality of executing threads executing on processors of a data processing system are awakened. For each sampling thread, an execution state of a corresponding executing thread is determined with regard to one or more virtual machines of interest. For each sampling thread, based on the execution state of the corresponding executing thread, a determination is made whether to retrieve trace information from a virtual machine of interest associated with the corresponding executing thread. For each sampling thread, in response to a determination that trace information is to be retrieved from a virtual machine of interest associated with the corresponding executing thread, the trace information is retrieved from the virtual machine.
    Type: Application
    Filed: June 30, 2009
    Publication date: December 30, 2010
    Applicant: International Business Machines Corporation
    Inventors: Kean G. Kuiper, Frank E. Levine
  • Patent number: 7861231
    Abstract: A method and system to identifying the use of dangling pointers in software instrumentation irrespective of the location of the pointer in the memory. The main memory is preferably segmented into three parts defined as a first memory, a version segment and a pointer version segment. By use of the version segment and pointer version stored in the pointer version segment, checksum are made on a pointer version with a version on dereferencing a pointer in the first memory to identify references to a dangling pointer on negative determination. Identified dangling pointer may be reported to the end user.
    Type: Grant
    Filed: March 9, 2007
    Date of Patent: December 28, 2010
    Assignee: International Business Machines Corporation
    Inventors: Kumar Rangarajan, Satish Chandra Gupta, Ziv Glazberg, Ishai Rabinovitz
  • Patent number: 7861230
    Abstract: A method and system for profiling API shims is described herein. The system includes a profiler, a profiling application program interface (API), and a profiling shim. The profiling shim intercepts communications between the profiler and the profiling API. Calls from and to the profiler are chained through the profiling shim. The profiling shim may further log calls to functions from and to the profiler and/or validate the profiler's usage of the profiling API.
    Type: Grant
    Filed: May 24, 2006
    Date of Patent: December 28, 2010
    Assignee: Microsoft Corporation
    Inventor: Jonathan W. Keljo
  • Patent number: 7853927
    Abstract: Embodiments of the present invention present methods of tracing kernel functions of a kernel including: building a kernel tracing dynamically loadable kernel module (DLKM) wherein the kernel tracing DLKM contains user-specified kernel code; loading the kernel tracing DLKM on a target machine; invoking the kernel tracing DLKM on the target machine; and tracing kernel functions wherein trace variables are gathered. In some embodiments, the method may further include: creating user-specified kernel code wherein at least one kernel activity may be inspected or tested; creating at least one trace point corresponding to a point at which the kernel tracing DLKM is invoked; and compiling the kernel tracing DLKM.
    Type: Grant
    Filed: February 3, 2005
    Date of Patent: December 14, 2010
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Carol Petersen Muser
  • Patent number: 7849450
    Abstract: Devices, methods, and software program products for reverse execution of a simulation and/or tracing a value are provided. A state of a preceding checkpoint may be restored and a simulation may be run forward. Break points or watch points may be noted and the state of the last occurring breakpoint or watch point preceding the current simulation position may be restored. If no breakpoint or watch point occurred, an earlier checkpoint may be loaded and the previous steps may be repeated.
    Type: Grant
    Filed: January 28, 2005
    Date of Patent: December 7, 2010
    Assignee: Intel Corporation
    Inventors: Samuel Rydh, Peter S. Magnusson, Bengt Werner
  • Publication number: 20100306745
    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: Application
    Filed: June 1, 2009
    Publication date: December 2, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Adi Sharabani, Omer Tripp
  • Patent number: 7844954
    Abstract: A method and computer program product for logging non-deterministic events of a virtual machine executing a sequence guest instructions, the method including tracking an execution point in the sequence of executing guest instructions, the tracking of the execution point including determining a branch count of executed branch instructions; and detecting an occurrence of a non-deterministic event directed to the virtual machine during execution of the sequence of guest instructions, and recording information which includes an identifier of a current execution point, wherein the identifier includes the branch count.
    Type: Grant
    Filed: March 27, 2008
    Date of Patent: November 30, 2010
    Assignee: VMware, Inc.
    Inventors: Ganesh Venkitachalam, Michael Nelson, Boris Weissman, Min Xu, Vyacheslav V. Malyugin
  • Publication number: 20100299655
    Abstract: Methods, systems, and products for determining performance of a software entity running on a data processing system. The method comprises allowing extended execution of the software entity without monitoring code. The method also comprises intermittently sampling behavior data for the software entity. Intermittently sampling behavior data may be carried out by injecting monitoring code into the software entity to instrument the software entity, collecting behavior data by utilizing the monitoring code, and removing the monitoring code. The method also comprises repeatedly performing iterations of the allowing and sampling steps until collected behavior data is sufficient for diagnosing performance of the software entity. The method may further comprise analyzing the collected behavior data to diagnose performance of the software entity.
    Type: Application
    Filed: May 22, 2009
    Publication date: November 25, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Randall Ray Heisch, Bret Ronald Olszewski
  • Publication number: 20100287539
    Abstract: A computing system for converting software code into an executable program include an expanding preprocessor that receives software code including debug statements and expands the debug statements into conditions that include a static variable and that must be met before a trace contained in the statement is executed, the expanding preprocessor creating an expanded code output. The system also includes a replacement preprocessor coupled to the expanding preprocessor and receiving the expanded code, the replacement preprocessor forming replaced code by replacing one or more occurrences of the static variables with a unique variable name and a compiler that compiles the replacement code to create an executable.
    Type: Application
    Filed: May 11, 2009
    Publication date: November 11, 2010
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Yoonho Park, Philippe L. Selo
  • Publication number: 20100287534
    Abstract: Test suites can be optimized for more efficient software testing. A software program is instrumented and test cases of a test suite are run against the instrumented target binaries. A set of metrics are identified that can be used to capture a test case's execution and behavior and allow pairs of test cases of a test suite to be compared in a quantifiable manner. Metric values for test case pairs are generated and combined to create one or more unique signature values. Signature values are compared to cluster analogous test cases, allowing for, e.g., the association of comparable test cases, the identification of redundant test cases, and the formation of a test suite subset that can effectively test under time constraints.
    Type: Application
    Filed: May 7, 2009
    Publication date: November 11, 2010
    Applicant: Microsoft Corporation
    Inventors: Vipindeep Vangala, Phani Kishore Talluri, Jacek A. Czerwonka, Sarada Prasanna Samantaray
  • Patent number: 7827543
    Abstract: Data address profiling allows determination of sources of code execution hindrance with different perspectives of memory references and allows correlation of sampled runtime events and memory reference objects, such as cache lines. Associating sampled runtime events with data addresses provides for efficient and targeted optimization of code with respect to data addresses and physical and/or logical memory reference objects (e.g., memory segments, heap variables, variable instances, stack variables, etc.). An instruction instance is identified in relation to a sampled runtime event. A data address is determined from the instruction instance. From the determined address, a memory reference object is ascertained.
    Type: Grant
    Filed: May 6, 2004
    Date of Patent: November 2, 2010
    Assignee: Oracle America, Inc.
    Inventors: Nicolai Kosche, Brian J. Wylie, Christopher P. Aoki, Martin S. Itzkowitz
  • Patent number: 7827539
    Abstract: A tracing system that provides automated tuning of execution tracing by adjusting the collection of trace data is described. In one embodiment, the user sets an initial tracing profile for a tracing program. In addition, the user sets an upper limit for the tracing performance penalty. The auto-tuning system monitors the performance penalty induced by tracing and, when the performance impact is excessive, removes trace points that are causing the most impact on performance. Auto tuning is especially useful for performing software recording in mission-critical and/or time-critical applications, such as servers, real-time applications, etc. The system typically adjusts relatively quickly such that most users do not feel the influence of the tracer.
    Type: Grant
    Filed: June 23, 2005
    Date of Patent: November 2, 2010
    Assignee: Identify Software Ltd.
    Inventors: Shlomo Wygodny, David Elkind, Moshe Kravchik