System and method for processing breakpoint events in a child process generated by a parent process
First Claim
1. A method comprising:
- instrumenting a parent process to generate instrumented functions in the parent process so as to create an instrumented version of the parent process;
storing uninstrumented instructions associated with the instrumented functions of the parent process;
monitoring with a process monitor execution of a child process created by the parent process for an initial breakpoint in the address space of the child process;
suspending with the process monitor execution of the child process in response to detection of the initial breakpoint with the process monitor;
replacing with the process monitor each occurrence of a breakpoint in the address space of the child process with the uninstrumented instructions such that the child process reflects an original, uninstrumented state of the parent process; and
resuming execution of the child process such that an uninstrumented version of the child process is executed.
1 Assignment
0 Petitions
Accused Products
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.
28 Citations
12 Claims
-
1. A method comprising:
-
instrumenting a parent process to generate instrumented functions in the parent process so as to create an instrumented version of the parent process; storing uninstrumented instructions associated with the instrumented functions of the parent process; monitoring with a process monitor execution of a child process created by the parent process for an initial breakpoint in the address space of the child process; suspending with the process monitor execution of the child process in response to detection of the initial breakpoint with the process monitor; replacing with the process monitor each occurrence of a breakpoint in the address space of the child process with the uninstrumented instructions such that the child process reflects an original, uninstrumented state of the parent process; and resuming execution of the child process such that an uninstrumented version of the child process is executed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-readable medium that stores a software tool, the software tool comprising:
-
an instrumentation engine configured to instrument a parent process to generate an instrumented version of the parent process that contains instrumented functions, the instrumentation engine further configured to store uninstrumented instructions associated with the instrumented functions in a process image store; and a process monitor configured to monitor execution of the parent process and a child process created by the parent process, the process monitor further being configured to suspend execution of the child process upon an initial breakpoint being encountered, to replace each occurrence of a breakpoint in the address space of the child process with the uninstrumented instructions from the process image store, and to resume execution of the child process such that an uninstrumented version of the child process will be executed.
-
- 10. The computer-readable medium of claim wherein the process monitor is further configured to monitor the parent process for an indication that the parent process is about to resume execution, to suspend execution of the parent process in response to the indication that the parent process is about to resume, and to restore each breakpoint occurrence to the address space of the parent process such that the instrumented version of the parent process will be executed.
Specification