Adapted to log system
This commit is contained in:
		| @@ -521,7 +521,7 @@ namespace CORE_DEF_NAME { | ||||
|  | ||||
|     template<typename ARCH> | ||||
|     status target_adapter<ARCH>::read_registers(std::vector<uint8_t>& data, std::vector<uint8_t>& avail) { | ||||
|         LOG(logging::TRACE)<<"reading target registers"; | ||||
|         LOG(TRACE)<<"reading target registers"; | ||||
|         //return idx<0?:; | ||||
|         data.clear(); | ||||
|         avail.clear(); | ||||
| @@ -663,8 +663,8 @@ namespace CORE_DEF_NAME { | ||||
|         auto saddr=map_addr({iss::CODE, iss::PHYSICAL, addr}); | ||||
|         auto eaddr=map_addr({iss::CODE, iss::PHYSICAL, addr+length}); | ||||
|         target_adapter_base::bp_lut.addEntry(++target_adapter_base::bp_count, saddr.val, eaddr.val-saddr.val); | ||||
|         LOG(logging::TRACE)<<"Adding breakpoint with handle "<<target_adapter_base::bp_count<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|         LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         LOG(TRACE)<<"Adding breakpoint with handle "<<target_adapter_base::bp_count<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|         LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         return Ok; | ||||
|     } | ||||
|  | ||||
| @@ -674,12 +674,12 @@ namespace CORE_DEF_NAME { | ||||
|         unsigned handle=target_adapter_base::bp_lut.getEntry(saddr.val); | ||||
|         // TODO: check length of addr range | ||||
|         if(handle){ | ||||
|             LOG(logging::TRACE)<<"Removing breakpoint with handle "<<handle<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|             LOG(TRACE)<<"Removing breakpoint with handle "<<handle<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|             target_adapter_base::bp_lut.removeEntry(handle); | ||||
|             LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|             LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|             return Ok; | ||||
|         } | ||||
|         LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         return Err; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -4708,7 +4708,7 @@ namespace rv32imac { | ||||
|  | ||||
|     template<typename ARCH> | ||||
|     status target_adapter<ARCH>::read_registers(std::vector<uint8_t>& data, std::vector<uint8_t>& avail) { | ||||
|         LOG(logging::TRACE)<<"reading target registers"; | ||||
|         LOG(TRACE)<<"reading target registers"; | ||||
|         //return idx<0?:; | ||||
|         data.clear(); | ||||
|         avail.clear(); | ||||
| @@ -4850,8 +4850,8 @@ namespace rv32imac { | ||||
|         auto saddr=map_addr({iss::CODE, iss::PHYSICAL, addr}); | ||||
|         auto eaddr=map_addr({iss::CODE, iss::PHYSICAL, addr+length}); | ||||
|         target_adapter_base::bp_lut.addEntry(++target_adapter_base::bp_count, saddr.val, eaddr.val-saddr.val); | ||||
|         LOG(logging::TRACE)<<"Adding breakpoint with handle "<<target_adapter_base::bp_count<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|         LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         LOG(TRACE)<<"Adding breakpoint with handle "<<target_adapter_base::bp_count<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|         LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         return Ok; | ||||
|     } | ||||
|  | ||||
| @@ -4861,12 +4861,12 @@ namespace rv32imac { | ||||
|         unsigned handle=target_adapter_base::bp_lut.getEntry(saddr.val); | ||||
|         // TODO: check length of addr range | ||||
|         if(handle){ | ||||
|             LOG(logging::TRACE)<<"Removing breakpoint with handle "<<handle<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|             LOG(TRACE)<<"Removing breakpoint with handle "<<handle<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|             target_adapter_base::bp_lut.removeEntry(handle); | ||||
|             LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|             LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|             return Ok; | ||||
|         } | ||||
|         LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         return Err; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -3710,7 +3710,7 @@ namespace rv64ia { | ||||
|  | ||||
|     template<typename ARCH> | ||||
|     status target_adapter<ARCH>::read_registers(std::vector<uint8_t>& data, std::vector<uint8_t>& avail) { | ||||
|         LOG(logging::TRACE)<<"reading target registers"; | ||||
|         LOG(TRACE)<<"reading target registers"; | ||||
|         //return idx<0?:; | ||||
|         data.clear(); | ||||
|         avail.clear(); | ||||
| @@ -3852,8 +3852,8 @@ namespace rv64ia { | ||||
|         auto saddr=map_addr({iss::CODE, iss::PHYSICAL, addr}); | ||||
|         auto eaddr=map_addr({iss::CODE, iss::PHYSICAL, addr+length}); | ||||
|         target_adapter_base::bp_lut.addEntry(++target_adapter_base::bp_count, saddr.val, eaddr.val-saddr.val); | ||||
|         LOG(logging::TRACE)<<"Adding breakpoint with handle "<<target_adapter_base::bp_count<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|         LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         LOG(TRACE)<<"Adding breakpoint with handle "<<target_adapter_base::bp_count<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|         LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         return Ok; | ||||
|     } | ||||
|  | ||||
| @@ -3863,12 +3863,12 @@ namespace rv64ia { | ||||
|         unsigned handle=target_adapter_base::bp_lut.getEntry(saddr.val); | ||||
|         // TODO: check length of addr range | ||||
|         if(handle){ | ||||
|             LOG(logging::TRACE)<<"Removing breakpoint with handle "<<handle<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|             LOG(TRACE)<<"Removing breakpoint with handle "<<handle<<" for addr 0x"<<std::hex<<saddr.val<<std::dec; | ||||
|             target_adapter_base::bp_lut.removeEntry(handle); | ||||
|             LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|             LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|             return Ok; | ||||
|         } | ||||
|         LOG(logging::TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         LOG(TRACE)<<"Now having "<<target_adapter_base::bp_lut.size()<<" breakpoints"; | ||||
|         return Err; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -37,6 +37,7 @@ | ||||
| #include <iss/iss.h> | ||||
| #include <iostream> | ||||
|  | ||||
| #include <iss/log_categories.h> | ||||
| #include <iss/arch/rv32imac.h> | ||||
| #include <iss/arch/rv64ia.h> | ||||
| #include <iss/jit/MCJIThelper.h> | ||||
| @@ -46,13 +47,22 @@ namespace po= boost::program_options; | ||||
|  | ||||
| int main(int argc, char *argv[]) { | ||||
|     try{ | ||||
|         /** Define and parse the program options | ||||
|         /* | ||||
|          *  Define and parse the program options | ||||
|          */ | ||||
|         po::variables_map vm; | ||||
|         if(parse_cli_options(vm, argc, argv)) return ERROR_IN_COMMAND_LINE; | ||||
|         configure_default_logger(vm); | ||||
|         // configure the connection logger | ||||
|         configure_debugger_logger(); | ||||
|         if(vm.count("verbose")){ | ||||
|             auto l = logging::as_log_level(vm["verbose"].as<int>()); | ||||
|             LOGGER(DEFAULT)::reporting_level() = l; | ||||
|             LOGGER(connection)::reporting_level()=l; | ||||
|         } | ||||
|         if(vm.count("log-file")){ | ||||
|             // configure the connection logger | ||||
|             auto f = fopen(vm["log-file"].as<std::string>().c_str(), "w"); | ||||
|             LOG_OUTPUT(DEFAULT)::stream() = f; | ||||
|             LOG_OUTPUT(connection)::stream() = f; | ||||
|         } | ||||
|  | ||||
|         // application code comes here // | ||||
|         iss::init_jit(argc, argv); | ||||
| @@ -77,9 +87,15 @@ int main(int argc, char *argv[]) { | ||||
|             cpu->get_arch()->load_file(vm["mem"].as<std::string>() , iss::arch::traits<iss::arch::rv32imac>::MEM); | ||||
|         } | ||||
|  | ||||
|         configure_disass_logger(vm); | ||||
|         if(vm.count("disass")){ | ||||
|             cpu->setDisassEnabled(true); | ||||
|             LOGGER(disass)::reporting_level()=logging::INFO; | ||||
|             auto file_name=vm["disass"].as<std::string>(); | ||||
|             if (file_name.length() > 0) { | ||||
|                 LOG_OUTPUT(disass)::stream() = fopen(file_name.c_str(), "w"); | ||||
|                 LOGGER(disass)::print_time() = false; | ||||
|                 LOGGER(disass)::print_severity() = false; | ||||
|             } | ||||
|         } | ||||
|         if(vm.count("reset")){ | ||||
|             auto str = vm["reset"].as<std::string>(); | ||||
| @@ -90,7 +106,7 @@ int main(int argc, char *argv[]) { | ||||
|         } | ||||
|         return cpu->start(vm["cycles"].as<int64_t>()); | ||||
|     } catch(std::exception& e){ | ||||
|         LOG(logging::ERROR) << "Unhandled Exception reached the top of main: " | ||||
|         LOG(ERROR) << "Unhandled Exception reached the top of main: " | ||||
|                 << e.what() << ", application will now exit" << std::endl; | ||||
|         return ERROR_UNHANDLED_EXCEPTION; | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user