|
From: MoJiong Q. <qm...@ho...> - 2008-07-27 03:50:41
|
Yes, the replay runs the original sequence of instructions. The basic idea is to record the non-deterministic events by intercepting and recording all the system calls requested by client program. During the replay, the client system calls are not handed to kernel, and the recorded syscall results (syscall ret, and memory written by OS kernel) will be feeded back. Because the non-deterministic events are injected back into the client program, its replay will get the exact same execution path of the record. Valgrind tool like Cachegrind can be turned on in the replay. The tool will be notified the same set of instrumentation events in the same order, as it would be in the record if turned on. I am still a new Valgrind hacker. I am not sure the following stuff: 1 For a given basic block, libVEX gurantees deterministic translation result for the same hardware? Which factors affect the translation result? 2 Whether Valgrind core brings indeterminism to the instruction sequence of client program? Espeically when the syscalls are not actually serviced by OS kernel in replay. Do you have any comments?Thanks,Mojiong> Date: Sat, 26 Jul 2008 13:54:23 +1000> From: nj...@cs...> To: qm...@ho...> CC: val...@li...> Subject: Re: [Valgrind-developers] Record/replay support in valgrind> > On Thu, 24 Jul 2008, MoJiong Qiu wrote:> > > I have spent some time implementing a prototype of record and replay in > > the valgrind core based on intercepting and recording syscall results and > > playing back their results. So far, I have only wrapped a dozen or so > > syscalls and valgrind only records and replays small single threaded > > programs. I am able to record execution for these small programs with > > this modified valgrind core with no analysis, and have the core replay the > > execution while turning on instrumentation and analysis (I turned on > > cachegrind while replaying). More complex client programs can be > > supported as more syscalls are recorded and replayed. It doesn't > > currently support multithreading or signal delivery, though I expect > > recording and replaying these should be doable as well.> > You say you record the system calls, but then you run Cachegrind on the > replayed code. Are you running all the original instructions during the > replay?> > Nick _________________________________________________________________ Connect to the next generation of MSN Messenger http://imagine-msn.com/messenger/launch80/default.aspx?locale=en-us&source=wlmailtagline |