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