Dynamic instrumentation event trace system and methods
Filing Information
- Patent Number: US7047521
- Application Number: US9876675
- Filing date: 06/07/2001
- Issue date: 05/16/2006
- Prior Publication Data:
- US20020199172 - 12/26/2002
- Predicted expiration date: 03/01/2023
- Patent term adjustment: 632
- U.S. Classifications: 717/130 · 717/128 ·
- International Classifications: G06F944 ·
- View document at: (opens new window):
USPTO · PAIR · esp@cenet · Patent Family* Related patent documents may or may not exist on these sites
Abstract
Program code loaded for execution by a computer can be dynamically instrumented to collect event data by inserting an instruction at a trace point within the program code as loaded in a memory space of a computer, where the trace point corresponds to the beginning of a predefined function of the program selected for event tracing. The instruction provides for the direction of the execution of said computer to a function proxy routine, which includes a call to an instance of the predefined function. Event data is collected in connection with the calling of the instance of the predefined function.References Cited
U.S. Patent Documents
| Document Number | Assignees | Inventors | Issue/Pub Date |
|---|---|---|---|
| US5528753* | International Business Machines Corporation | Fortin | Jun 1996 |
| US5732273* | Digital Equipment Corporation | Srivastava et al. | Mar 1998 |
| US5872909 | Wind River Systems, Inc. | Wilner et al. | Feb 1999 |
| US5996092* | International Business Machines Corporation | Augsburg et al. | Nov 1999 |
| US6023561* | Advanced Micro Devices, Inc. | Mann | Feb 2000 |
| US6026236* | International Business Machines Corporation | Fortin et al. | Feb 2000 |
| US6047390* | Motorola, Inc. | Butt et al. | Apr 2000 |
| US6164841* | Hewlett-Packard Company | Mattson et al. | Dec 2000 |
| US6173395* | Advanced Micro Devices, Inc. | Wisor et al. | Jan 2001 |
| US6216143* | International Business Machines Corporation | Ryan et al. | Apr 2001 |
| US6263488* | International Business Machines Corporation | Fortin et al. | Jul 2001 |
| US6351845* | Sun Microsystems, Inc. | Hinker et al. | Feb 2002 |
| US6507805* | International Business Machines Corporation | Gordon et al. | Jan 2003 |
Referenced By
| Document Number | Assignee | Inventors | Issue/Pub Date |
|---|---|---|---|
| US7194731 | Sun Microsystems, Inc. | Bryan M. Cantrill | Mar 2007 |
| US7559055 | Research In Motion Limited | Lianghua Yang et al. | Jul 2009 |
| US7428666 | Texas Instruments Incorporated | Gary L. Swoboda et al. | Sep 2008 |
| US7281017 | Sumisho Computer Systems Corporation | Mathew J. Hostetter et al. | Oct 2007 |
| US7353505 | International Business Machines Corporation | Anthony John O'Dowd | Apr 2008 |
| US7299456 | International Business Machines Corporation | Cary L. Bates et al. | Nov 2007 |
| US7322027 | Microsoft Corporation | Patrick Tousignant | Jan 2008 |
| US7117507 | Sumisho Computer Systems Corporation | Mathew J. Hostetter et al. | Oct 2006 |
| US7216341 | Microsoft Corporation | Brian J. Guarraci | May 2007 |
| US7552043 | International Business Machines Corporation | Gabor Bobok et al. | Jun 2009 |
Patent Family
| Document Number | Assignee | Inventors | Issue/Pub Date |
|---|---|---|---|
| US20020199172 | Mitchell Bunnell | Dec 2002 | |
| US7047521 | LynoxWorks, Inc. | Mitchell Bunnell | May 2006 |
Independent Claims | See all claims (19)
- 1. A system providing for dynamic instrumentation and event data collection with respect to a target program as executed by a target computer, said system comprising: a) a target data collection routine including a data collection buffer and wherein said target data collection routine is responsive to calls to store event data in said data collection buffer; and b) a target driver including a trace control routine and an instrumentation routine, wherein execution of said instrumentation routine by said target computer subsequent to the loading and initial execution of said target program dynamically installs a deterministic program execution redirection instruction with respect to a named function of said target program to redirect execution of said target program by said target computer to said trace control routine, said instrumentation routine providing for the dynamic location and decoding of said named function to enable dynamic installation of said deterministic program execution redirection instruction, wherein execution of said instrumentation routine further provides, in response to a predetermined input signal provided to said target driver, for the dynamic removal of said deterministic program execution redirection instruction whereby said named function is restored to a non-instrumented state, wherein said instrumentation routine preserves an instance of said named function, wherein said trace control routine supports the collection and transfer of event data to said target data collection routine, and wherein execution of said trace control routine includes execution of said instance of said named function.
- 6. A method of dynamically instrumenting executable program code provided in the memory of a computer system, said method comprising the steps of: a) dynamically provisioning a sequence of executable program code in response to a predetermined user input, wherein said sequence of executable program code is part of an executable program and wherein said step of dynamically provisioning is performed after initiation of execution of said executable program within the memory of said computer system, said dynamically provisioning including i) enabling the interception of execution of said sequence through insertion of a deterministic branch instruction at a predetermined location within said sequence; and ii) restoring said sequence by removal of said deterministic branch instruction from said predetermined location; and b) executing an event capture routine in response to interception of said sequence, wherein execution of said event capture routine enables execution of said sequence and selectively enables execution of a data collection routine to record data associated with execution of said sequence.
- 12. A diagnostic system supporting dynamic instrumentation of a target program executing within the memory of a computer system, said diagnostic system comprising: a) a buffer providing for the storage of execution trace data reflective of the occurrence of traceable events within the execution of said target program; and b) a trace program provided and concurrently executable within the memory of said computer system, said trace program including i) a list of addresses within said target program designated as the source of traceable events; ii) a trace data collection routine executable to selectively capture and provide trace data to said buffer; iii) a dynamic patch routine executable to dynamically instrument said target program at each address of said list by establishing respective deterministic execution paths through said addresses that provide for execution of said trace data collection routine, wherein said dynamic patch routine includes a patch management routine that supports an instrumenting of said target program at a predetermined address subsequent to loading and initial execution of said target program by said computer system, and wherein said patch management routine is responsive to user provided trace commands issued with respect to said predetermined address to selectively apply and remove said instrumenting of said target program at said predetermined address; and wherein trace data is collected through a deterministic flow of execution through said target program with minimal impact on the system behavior of said target program and said computer system.





View assignee updates
analyzing 100 million+ documents to uncover your network...