private void RegisterInstructionDescriptor(InstructionDescriptor descriptor) { if (InstructionDescriptorsByAddress.ContainsKey(descriptor.Eip)) { return; } InstructionDescriptorsByAddress.Add(descriptor.Eip, descriptor); }
public void RecordInstructionCall(InstInstruction instruction) { AssertRecordingMode(); var instructionDescriptor = new InstructionDescriptor(instruction.Eip, instruction.Instruction); RegisterInstructionDescriptor(instructionDescriptor); var newInstructionCall = new InstructionCall(instructionDescriptor, instruction.CpuTime); InstructionCalls.Add(newInstructionCall); }
// individual instructions don't really have a return time in the current data public InstructionCall(InstructionDescriptor descriptor, double callingTime) { Descriptor = descriptor; CallingTime = callingTime; }