diff --git a/src/analyzer/analysis.cpp b/src/analyzer/analysis.cpp index aaf4d9d9..3a84394b 100644 --- a/src/analyzer/analysis.cpp +++ b/src/analyzer/analysis.cpp @@ -101,11 +101,6 @@ namespace { c.win_emu->log.print(color::dark_gray, "Performing thread switch: %X -> %X\n", current_thread.id, new_thread.id); - -#ifdef OS_EMSCRIPTEN - debugger::event_context ec{.win_emu = *c.win_emu}; - debugger::handle_events(ec); -#endif } void handle_module_load(const analysis_context& c, const mapped_module& mod) @@ -122,6 +117,14 @@ namespace { auto& win_emu = *c.win_emu; +#ifdef OS_EMSCRIPTEN + if ((win_emu.get_executed_instructions() % 0x20000 == 0) + { + debugger::event_context ec{.win_emu = win_emu}; + debugger::handle_events(ec); + } +#endif + const auto is_main_exe = win_emu.mod_manager.executable->is_within(address); const auto is_previous_main_exe = win_emu.mod_manager.executable->is_within(c.win_emu->process.previous_ip); diff --git a/src/windows-emulator/windows_emulator.cpp b/src/windows-emulator/windows_emulator.cpp index 9433e08a..44175c43 100644 --- a/src/windows-emulator/windows_emulator.cpp +++ b/src/windows-emulator/windows_emulator.cpp @@ -12,7 +12,7 @@ #include "network/static_socket_factory.hpp" -constexpr auto MAX_INSTRUCTIONS_PER_TIME_SLICE = 100000; +constexpr auto MAX_INSTRUCTIONS_PER_TIME_SLICE = 0x20000; namespace {