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: 7415699Abstract: 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: GrantFiled: June 27, 2003Date of Patent: August 19, 2008Assignee: Hewlett-Packard Development Company, L.P.Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati, Sushanth Rai, Edward Sharpe
-
Patent number: 7185320Abstract: 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: GrantFiled: June 27, 2003Date of Patent: February 27, 2007Assignee: Hewlett-Packard Development Company, L.P.Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati
-
Patent number: 7017153Abstract: 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: GrantFiled: December 13, 2001Date of Patent: March 21, 2006Assignee: Hewlett-Packard Development Company, L.P.Inventors: Eric Gouriou, Robert Hundt
-
Patent number: 6957421Abstract: 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: GrantFiled: January 26, 2001Date of Patent: October 18, 2005Assignee: Hewlett-Packard Development Company, L.P.Inventors: Robert Hundt, Vinodha Ramasamy, Umesh Krishnaswamy, Eric Gouriou
-
Patent number: 6918110Abstract: 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: GrantFiled: April 11, 2001Date of Patent: July 12, 2005Assignee: 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: 6898785Abstract: 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: GrantFiled: August 16, 2001Date of Patent: May 24, 2005Assignee: Hewlett-Packard Development Company, L.P.Inventors: Vinodha Ramasamy, Eric Gouriou, Robert Hundt
-
Publication number: 20040268317Abstract: 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: ApplicationFiled: June 27, 2003Publication date: December 30, 2004Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati, Sushanth Rai, Edward Sharpe
-
Publication number: 20040268315Abstract: 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: ApplicationFiled: June 27, 2003Publication date: December 30, 2004Inventors: Eric Gouriou, Robert Hundt, Sujoy Saraswati
-
Publication number: 20040168156Abstract: 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: ApplicationFiled: January 22, 2003Publication date: August 26, 2004Inventors: Robert Hundt, David J. Babcock, Eric Gouriou, Sujoy Saraswati, Curt Wohlgemuth
-
Publication number: 20040003375Abstract: 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: ApplicationFiled: June 28, 2002Publication date: January 1, 2004Inventors: Jini S. George, Robert Hundt, Dave Babcock, Sujoy Saraswati, Eric Gouriou, Manoj N. P., Umesh Krishnaswamy
-
Publication number: 20030135847Abstract: 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: ApplicationFiled: December 13, 2001Publication date: July 17, 2003Inventors: Eric Gouriou, Robert Hundt
-
Publication number: 20030037318Abstract: 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: ApplicationFiled: August 16, 2001Publication date: February 20, 2003Inventors: Vinodha Ramasamy, Eric Gouriou, Robert Hundt
-
Publication number: 20020152455Abstract: 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: ApplicationFiled: April 11, 2001Publication date: October 17, 2002Inventors: Robert Hundt, Vinodha Ramasamy, Eric Gouriou, David J. Babcock, Thomas C. Lofgren, Jose German Rivera, Umesh Krishnaswamy
-
Publication number: 20020104074Abstract: 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: ApplicationFiled: January 26, 2001Publication date: August 1, 2002Inventors: Robert Hundt, Vinodha Ramasamy, Umesh Krishnaswamy, Eric Gouriou