Patents by Inventor Eric Gouriou

Eric Gouriou has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 7415699
    Abstract: A monitoring interface, includes logic responsive to a pre-fork event, the pre-fork event responsive to a vfork system call. The pre-fork event includes indicia that identifies a child process to be created in accordance with the vfork system call. A method for controlling the execution of a child process created from a parent process, where the parent process is monitored by a software tool includes, receiving indicia that a vfork system call will be executed by the parent process, suspending execution of the parent process, extracting a process identifier from the indicia of the vfork system call, the process identifier corresponding to a child process to be generated by the parent process when the parent process executes the vfork system call, setting a process monitor thread to observe the child process, and resuming execution of the parent process to enable the parent process to execute past the vfork system call.
    Type: Grant
    Filed: June 27, 2003
    Date of Patent: August 19, 2008
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati, Sushanth Rai, Edward Sharpe
  • Patent number: 7185320
    Abstract: A software tool includes logic configured to enable a child process that inherits the address space of a modified parent process to execute an unaltered version of the address space when the child process inherits the altered address space of the parent process. A method for processing breakpoint events in a child process created from a parent process, when the parent process is modified by a software tool includes, storing unmodified parent process code replaced by each occurrence of a breakpoint inserted into the address space during modification of the parent process, monitoring execution of a child process created by the parent process for an initial breakpoint in the address space, suspending execution of the child process in response to an initial breakpoint, replacing each occurrence of a breakpoint in the address space with the unmodified parent process code, and resuming execution of the child process.
    Type: Grant
    Filed: June 27, 2003
    Date of Patent: February 27, 2007
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati
  • Patent number: 7017153
    Abstract: A method and system for reverting a process in an in-line instrumented state to an uninstrumented state. In one embodiment, the present invention modifies selected text segment portions from the process to be uninstrumented. The present embodiment then unmaps instrumented code space such that the instrumented code space is inaccessible to the process. In this embodiment, the present invention also cleans a call stack of the process by unwinding the call stack and resetting the storage locations for return pointers from the instrumented code space to uninstrumented code space.
    Type: Grant
    Filed: December 13, 2001
    Date of Patent: March 21, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Eric Gouriou, Robert Hundt
  • Patent number: 6957421
    Abstract: The present invention, in various embodiments, is directed to techniques for providing debugging capability for program code instrumentation. In one embodiment, an instrumentor inserts an instrumentation breakpoint at the beginning of a block of original code. When this breakpoint is reached during execution of the application program that includes the block of original code, the instrumenator, from the block of original code, generates a block of instrumented code. This block of instrumented code may include debugging breakpoints that are carried from the block of original code or are inserted into the block of instrumented code during debugging. After generating the instrumented code, the instrumentor executes the instrumented code until debugging breakpoints are reached that stop the program flow, thereby allowing a programmer to perform debugging functions at these debugging breakpoints.
    Type: Grant
    Filed: January 26, 2001
    Date of Patent: October 18, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Robert Hundt, Vinodha Ramasamy, Umesh Krishnaswamy, Eric Gouriou
  • Patent number: 6918110
    Abstract: Method and apparatus for dynamic instrumentation of an executable application program. The application program includes a plurality of functions, each function having an entry point and an endpoint. When the application is executed, a shared memory segment is created for an instrumentation program and the application program. Upon initial invocation of the original functions in the application program, corresponding substitute functions are created in the shared memory segment, the substitute versions including instrumentation code. Thereafter, the substitute functions are executed in lieu of the original functions in the application program.
    Type: Grant
    Filed: April 11, 2001
    Date of Patent: July 12, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Robert Hundt, Vinodha Ramasamy, Eric Gouriou, David J. Babcock, Thomas C. Lofgren, Jose German Rivera, Umesh Krishnaswamy
  • Patent number: 6898785
    Abstract: Method and apparatus for handling calls from relocated instrumented functions to functions that expect a return pointer value in an original address space. In various embodiments of the invention, instrumented versions of selected functions of an executable program are generated and stored in a relocation address space. When a function is called by a function in the relocation address space, a return pointer register stores a first return-pointer value that is an address in the relocation address space. The address in the original address space that corresponds (logically) to the first return-pointer value is identified as an original return-pointer value. The first return-pointer value is associated with the original return-pointer value, references to the original return-pointer value are substituted for references to the first return-pointer value, and the instruction at the address indicated by the original return-pointer value is replaced with a breakpoint.
    Type: Grant
    Filed: August 16, 2001
    Date of Patent: May 24, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Vinodha Ramasamy, Eric Gouriou, Robert Hundt
  • Publication number: 20040268317
    Abstract: A debug interface, includes logic responsive to a pre-fork event, the pre-fork event responsive to a fork instruction call wherein the pre-fork event includes indicia that identifies a child process to be created in accordance with the fork instruction call. A method for controlling the execution of a child process created from a parent process, where the parent process is instrumented by a software tool includes, receiving indicia that a fork instruction will be executed by the parent process, suspending execution of the parent process, extracting a process identifier from the indicia of the fork instruction, the process identifier corresponding to a child process to be generated by the parent process when the parent process executes the fork instruction, setting a process monitor thread to observe the child process, and resuming execution of the parent process to enable the parent process to execute the fork instruction.
    Type: Application
    Filed: June 27, 2003
    Publication date: December 30, 2004
    Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati, Sushanth Rai, Edward Sharpe
  • Publication number: 20040268315
    Abstract: A software tool includes logic configured to enable a child process that inherits the address space of a modified parent process to execute an unaltered version of the address space when the child process inherits the altered address space of the parent process. A method for processing breakpoint events in a child process created from a parent process, when the parent process is modified by a software tool includes, storing unmodified parent process code replaced by each occurrence of a breakpoint inserted into the address space during modification of the parent process, monitoring execution of a child process created by the parent process for an initial breakpoint in the address space, suspending execution of the child process in response to an initial breakpoint, replacing each occurrence of a breakpoint in the address space with the unmodified parent process code, and resuming execution of the child process.
    Type: Application
    Filed: June 27, 2003
    Publication date: December 30, 2004
    Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati
  • Publication number: 20040168156
    Abstract: A pair of functions setjmp( ) and longjmp( ) shares the data related to the program context. When instrumentation starts, the instrumentation tool creates the instrumented code, resulting in two sets of program code, e.g., the original code and the instrumented code. Functions setjmp( ) and longjmp( ) in the instrumented code may be referred to as functions setjmp′( ) and longjmp′( ), respectively. In one embodiment, when function setjmp′( ) is reached, but before being executed, the setjmp′-continued location is identified, and based on this setjmp′-continued location, the corresponding setjmp-continued location is also identified and saved for later use. When un-instrumentation occurs, the instrumented code is discarded, execution reverts to the original code, and function longjmp( ) is executed, which, based on the saved information, causes execution to continue at the setjmp-continued location.
    Type: Application
    Filed: January 22, 2003
    Publication date: August 26, 2004
    Inventors: Robert Hundt, David J. Babcock, Eric Gouriou, Sujoy Saraswati, Curt Wohlgemuth
  • Publication number: 20040003375
    Abstract: A computer-implemented method for examining a software program using dynamic instrumentation and instruction pointer sampling. In one embodiment, the method includes the step of inserting probe code into a program during runtime. A performance analysis tool is used to collect data resulting from execution of the probe code. The performance analysis tool is also used to collect instruction pointer samples from the execution. The collected data and the instruction pointer samples are then combined.
    Type: Application
    Filed: June 28, 2002
    Publication date: January 1, 2004
    Inventors: Jini S. George, Robert Hundt, Dave Babcock, Sujoy Saraswati, Eric Gouriou, Manoj N. P., Umesh Krishnaswamy
  • Publication number: 20030135847
    Abstract: A method and system for reverting a process in an in-line instrumented state to an uninstrumented state. In one embodiment, the present invention modifies selected text segment portions from the process to be uninstrumented. The present embodiment then unmaps instrumented code space such that the instrumented code space is inaccessible to the process. In this embodiment, the present invention also cleans a call stack of the process by unwinding the call stack and resetting the storage locations for return pointers from the instrumented code space to uninstrumented code space.
    Type: Application
    Filed: December 13, 2001
    Publication date: July 17, 2003
    Inventors: Eric Gouriou, Robert Hundt
  • Publication number: 20030037318
    Abstract: Method and apparatus for handling calls from relocated instrumented functions to functions that expect a return pointer value in an original address space. In various embodiments of the invention, instrumented versions of selected functions of an executable program are generated and stored in a relocation address space. When a function is called by a function in the relocation address space, a return pointer register stores a first return-pointer value that is an address in the relocation address space. The address in the original address space that corresponds (logically) to the first return-pointer value is identified as an original return-pointer value. The first return-pointer value is associated with the original return-pointer value, references to the original return-pointer value are substituted for references to the first return-pointer value, and the instruction at the address indicated by the original return-pointer value is replaced with a breakpoint.
    Type: Application
    Filed: August 16, 2001
    Publication date: February 20, 2003
    Inventors: Vinodha Ramasamy, Eric Gouriou, Robert Hundt
  • Publication number: 20020152455
    Abstract: Method and apparatus for dynamic instrumentation of an executable application program. The application program includes a plurality of functions, each function having an entry point and an endpoint. When the application is executed, a shared memory segment is created for an instrumentation program and the application program. Upon initial invocation of the original functions in the application program, corresponding substitute functions are created in the shared memory segment, the substitute versions including instrumentation code. Thereafter, the substitute functions are executed in lieu of the original functions in the application program.
    Type: Application
    Filed: April 11, 2001
    Publication date: October 17, 2002
    Inventors: Robert Hundt, Vinodha Ramasamy, Eric Gouriou, David J. Babcock, Thomas C. Lofgren, Jose German Rivera, Umesh Krishnaswamy
  • Publication number: 20020104074
    Abstract: The present invention, in various embodiments, is directed to techniques for providing debugging capability for program code instrumentation. In one embodiment, an instrumentor inserts an instrumentation breakpoint at the beginning of a block of original code. When this breakpoint is reached during execution of the application program that includes the block of original code, the instrumenator, from the block of original code, generates a block of instrumented code. This block of instrumented code may include debugging breakpoints that are carried from the block of original code or are inserted into the block of instrumented code during debugging. After generating the instrumented code, the instrumentor executes the instrumented code until debugging breakpoints are reached that stop the program flow, thereby allowing a programmer to perform debugging functions at these debugging breakpoints.
    Type: Application
    Filed: January 26, 2001
    Publication date: August 1, 2002
    Inventors: Robert Hundt, Vinodha Ramasamy, Umesh Krishnaswamy, Eric Gouriou