MCPcopy Create free account
hub / github.com/devosoft/avida / PrintStatus

Method PrintStatus

avida-core/source/cpu/cHardwareGP8.cc:661–708  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

659
660
661void cHardwareGP8::PrintStatus(ostream& fp)
662{
663 fp << "CPU CYCLE:" << m_organism->GetPhenotype().GetCPUCyclesUsed() << "." << m_cur_uop << " ";
664 fp << "THREAD:" << m_cur_thread << " ";
665 fp << "IP:" << getIP().Position() << " (" << GetInstSet().GetName(getIP().GetInst()) << ")" << endl;
666
667
668 for (int i = 0; i < NUM_REGISTERS; i++) {
669 DataValue& reg = m_threads[m_cur_thread].reg[i];
670 fp << static_cast<char>('A' + i) << "X:" << reg.value << " ";
671 fp << setbase(16) << "[0x" << reg.value << "] " << setbase(10);
672 fp << "(" << reg.from_env << " " << reg.env_component << " " << reg.originated << " " << reg.oldest_component << ") ";
673 }
674
675 // Add some extra information if additional time costs are used for instructions,
676 // leave this out if there are no differences to keep it cleaner
677 if ( m_organism->GetPhenotype().GetTimeUsed() != m_organism->GetPhenotype().GetCPUCyclesUsed() )
678 {
679 fp << " EnergyUsed:" << m_organism->GetPhenotype().GetTimeUsed();
680 }
681 fp << endl;
682
683 fp << " R-Head:" << getHead(hREAD).Position() << " "
684 << "W-Head:" << getHead(hWRITE).Position() << " "
685 << "F-Head:" << getHead(hFLOW).Position() << " "
686 << "RL:" << GetReadLabel().AsString() << " "
687 << "Ex:" << m_last_output
688 << endl;
689
690 int number_of_stacks = GetNumStacks();
691 for (int stack_id = 0; stack_id < number_of_stacks; stack_id++) {
692 fp << ((m_threads[m_cur_thread].cur_stack == stack_id) ? '*' : ' ') << " Stack " << stack_id << ":" << setbase(16) << setfill('0');
693 for (int i = 0; i < m_inst_set->GetStackSize(); i++) fp << " Ox" << setw(8) << GetStack(i, stack_id, 0);
694 fp << setfill(' ') << setbase(10) << endl;
695 }
696
697 for (int i = 0; i < m_mem_array.GetSize(); i++) {
698 const cCPUMemory& mem = m_mem_array[i];
699 fp << " Mem " << i << " (" << mem.GetSize() << "): " << mem.AsString() << endl;
700 }
701
702 for (int i = 0; i < m_genes.GetSize(); i++) {
703 const cCPUMemory& mem = m_genes[i].memory;
704 fp << " Gene " << i << " (" << mem.GetSize() << "): " << mem.AsString() << endl;
705 }
706
707 fp.flush();
708}
709
710void cHardwareGP8::SetupMiniTraceFileHeader(Avida::Output::File& df, const int gen_id, const Apto::String& genotype)
711{

Callers 1

TraceHardwareMethod · 0.45

Calls 8

GetCPUCyclesUsedMethod · 0.80
GetStackSizeMethod · 0.80
PositionMethod · 0.45
GetNameMethod · 0.45
GetInstMethod · 0.45
GetTimeUsedMethod · 0.45
AsStringMethod · 0.45
GetSizeMethod · 0.45

Tested by

no test coverage detected