From 56d3a949e69a5217298bba71189fec22571b9d24 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Sun, 12 Jul 2020 20:24:55 +0200 Subject: [PATCH] UserspaceEmulator: Disable per-instruction trace dumps for now With tracing turned on, it's just too slow when doing big operations like initializing malloc freelists. --- DevTools/UserspaceEmulator/Emulator.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/DevTools/UserspaceEmulator/Emulator.cpp b/DevTools/UserspaceEmulator/Emulator.cpp index 3180dc5ee5..545a949030 100644 --- a/DevTools/UserspaceEmulator/Emulator.cpp +++ b/DevTools/UserspaceEmulator/Emulator.cpp @@ -172,13 +172,22 @@ int Emulator::exec() { ELFSymbolProvider symbol_provider(*m_elf); + bool trace = false; + while (!m_shutdown) { - auto base_eip = m_cpu.eip(); + u32 base_eip = 0; + if (trace) + base_eip = m_cpu.eip(); + auto insn = X86::Instruction::from_stream(m_cpu, true, true); - out() << (const void*)base_eip << " \033[33;1m" << insn.to_string(base_eip, &symbol_provider) << "\033[0m"; + + if (trace) + out() << (const void*)base_eip << " \033[33;1m" << insn.to_string(base_eip, &symbol_provider) << "\033[0m"; (m_cpu.*insn.handler())(insn); - m_cpu.dump(); + + if (trace) + m_cpu.dump(); } return m_exit_status; }