Pause only on fatal messages

Also make some access violation an error since we don't pause on it.
This commit is contained in:
Nekotekina 2020-03-10 11:24:32 +03:00
parent d3eb267ba9
commit 87d4b14ca9
2 changed files with 2 additions and 2 deletions

View File

@ -1449,7 +1449,7 @@ bool handle_access_violation(u32 addr, bool is_writing, x64_context* context) no
if (!access_violation_recovered) if (!access_violation_recovered)
{ {
vm_log.notice("\n%s", cpu->dump()); vm_log.notice("\n%s", cpu->dump());
vm_log.fatal("Access violation %s location 0x%x (%s)", is_writing ? "writing" : "reading", addr, (is_writing && vm::check_addr(addr)) ? "read-only memory" : "unmapped memory"); vm_log.error("Access violation %s location 0x%x (%s)", is_writing ? "writing" : "reading", addr, (is_writing && vm::check_addr(addr)) ? "read-only memory" : "unmapped memory");
} }
// TODO: // TODO:

View File

@ -152,7 +152,7 @@ struct pause_on_fatal final : logs::listener
void log(u64 /*stamp*/, const logs::message& msg, const std::string& /*prefix*/, const std::string& /*text*/) override void log(u64 /*stamp*/, const logs::message& msg, const std::string& /*prefix*/, const std::string& /*text*/) override
{ {
if (msg.sev <= logs::level::fatal) if (msg.sev == logs::level::fatal)
{ {
// Pause emulation if fatal error encountered // Pause emulation if fatal error encountered
Emu.Pause(); Emu.Pause();