Debugging system for multi-threaded computer programs
First Claim
1. A method of executing a system call in a multi-threaded computer program for generating program analysis data, the method comprising:
- running an instrumented version of machine code representing the program wherein the instrumented version of machine code initializes a plurality of threads in a first instrumented process;
generating a second instrumented process;
executing the machine code of a first thread of the first instrumented process in the second instrumented process;
intercepting a system call during the execution of the machine code of the first thread in the second instrumented process; and
executing the system call in the first instrumented process.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of generating program analysis data for analyzing the operation of a computer program. The method comprises, executing an instrumented process of the computer program to define a reference execution of the program, intercepting a call to a library function by the instrumented process, executing the library function in an uninstrumented process, for the uninstrumented process, capturing in a log, only data generated by or modified through the execution of the library function required by the instrumented process to continue execution of the program, and wherein the captured log is arranged to enable deterministically reproducing the effect of the library function call on the instrumented process upon re-running of the reference execution based upon the captured log to generate the program analysis data.
-
Citations
11 Claims
-
1. A method of executing a system call in a multi-threaded computer program for generating program analysis data, the method comprising:
-
running an instrumented version of machine code representing the program wherein the instrumented version of machine code initializes a plurality of threads in a first instrumented process; generating a second instrumented process; executing the machine code of a first thread of the first instrumented process in the second instrumented process; intercepting a system call during the execution of the machine code of the first thread in the second instrumented process; and executing the system call in the first instrumented process. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A non-transitory computer readable medium comprising processor readable instructions configured to cause one or more processors to carry out a method comprising:
-
running an instrumented version of machine code representing the program wherein the instrumented version of machine code initializes a plurality of threads in a first instrumented process; generating a second instrumented process; executing the machine code of a first thread of the first instrumented process in the second instrumented process; intercepting a system call during the execution of the machine code of the first thread in the second instrumented process; and executing the system call in the first instrumented process.
-
Specification