pub fn validate_regs(&self, flags: ReplayTaskIgnore) {
        // don't validate anything before execve is done as the actual
        // *process did not start prior to this point
        if !self.session().done_initial_exec() {
            return;
        }

        // @TODO When this `if` triggers trace frame may already be borrowed.
        // This could run into a borrow mut error.
        if flags == ReplayTaskIgnore::IgnoreEsi {
            let mut trace_frame = self.current_trace_frame_mut();
            let rec_regs = trace_frame.regs_mut();
            if self.regs_ref().arg4() != rec_regs.arg4() {
                log!(
                    LogWarn,
                    "Probably saw kernel bug mutating $esi across pread/write64\n\
                call: recorded:{:#x}; replaying:{:#x}.  Fudging registers.",
                    rec_regs.arg4(),
                    self.regs_ref().arg4()
                );
                rec_regs.set_arg4(self.regs_ref().arg4());
            }
        }

        // TODO: add perf counter validations (hw int, page faults, insts)
        let trace_frame = self.current_trace_frame();
        let rec_regs = trace_frame.regs_ref();
        Registers::compare_register_files(
            Some(self),
            "replaying",
            self.regs_ref(),
            "recorded",
            rec_regs,
            MismatchBehavior::BailOnMismatch,
        );
    }
/// Assert that the current register values match the values in the
///  current trace record.
Assert that the current register values match the values in the
current trace record.
Assert that the current register values match the values in the current trace record .
pub fn validate_regs(&self, flags: ReplayTaskIgnore) {
        // don't validate anything before execve is done as the actual
        // *process did not start prior to this point
        if !self.session().done_initial_exec() {
            return;
        }
        // @TODO When this `if` triggers trace frame may already be borrowed.
        // This could run into a borrow mut error.
        if flags == ReplayTaskIgnore::IgnoreEsi {
            let mut trace_frame = self.current_trace_frame_mut();
            let rec_regs = trace_frame.regs_mut();
            if self.regs_ref().arg4() != rec_regs.arg4() {
                log!(
                    LogWarn,
                    "Probably saw kernel bug mutating $esi across pread/write64\n\
                call: recorded:{:#x}; replaying:{:#x}.  Fudging registers.",
                    rec_regs.arg4(),
                    self.regs_ref().arg4()
                );
                rec_regs.set_arg4(self.regs_ref().arg4());
            }
        }
        // TODO: add perf counter validations (hw int, page faults, insts)
        let trace_frame = self.current_trace_frame();
        let rec_regs = trace_frame.regs_ref();
        Registers::compare_register_files(
            Some(self),
            "replaying",
            self.regs_ref(),
            "recorded",
            rec_regs,
            MismatchBehavior::BailOnMismatch,
        );
    }
pub fn validate_regs ( & self , flags : ReplayTaskIgnore ) { // don't validate anything before execve is done as the actual // *process did not start prior to this point if ! self . session ( ) . done_initial_exec ( ) { return ; } // @TODO When this `if` triggers trace frame may already be borrowed. // This could run into a borrow mut error. if flags == ReplayTaskIgnore :: IgnoreEsi { let mut trace_frame = self . current_trace_frame_mut ( ) ; let rec_regs = trace_frame . regs_mut ( ) ; if self . regs_ref ( ) . arg4 ( ) != rec_regs . arg4 ( ) { log ! ( LogWarn " \n \
 " rec_regs arg4 ( ) self regs_ref ( ) arg4 ( ) ) ; rec_regs . set_arg4 ( self . regs_ref ( ) . arg4 ( ) ) ; } } // TODO: add perf counter validations (hw int, page faults, insts) let trace_frame = self . current_trace_frame ( ) ; let rec_regs = trace_frame . regs_ref ( ) ; Registers :: compare_register_files ( Some ( self ) , " " , self . regs_ref ( ) , " " , rec_regs , MismatchBehavior :: BailOnMismatch , ) ; }
Assert that the current register values match the values in the
current trace record.
Assert that the current register values match the values in the current trace record .
&self
flags
ReplayTaskIgnore