From cb4192bce93f6987910107aeda2f3ae7b2eee5fe Mon Sep 17 00:00:00 2001 From: Eladash Date: Sat, 14 Mar 2020 16:29:31 +0200 Subject: [PATCH] vm: Log all guest memory bases at startup --- Utilities/Thread.cpp | 6 ------ rpcs3/Emu/Memory/vm.cpp | 12 ++++++++++++ 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Utilities/Thread.cpp b/Utilities/Thread.cpp index 8655a82397..a035ea31f3 100644 --- a/Utilities/Thread.cpp +++ b/Utilities/Thread.cpp @@ -1571,9 +1571,6 @@ static LONG exception_filter(PEXCEPTION_POINTERS pExp) noexcept fmt::append(msg, "Thread id = %s.\n", std::this_thread::get_id()); - sys_log.notice("Memory bases:\nvm::g_base_addr = %p\nvm::g_sudo_addr = %p\nvm::g_exec_addr = %p\nvm::g_stat_addr = %p\nvm::g_reservations = %p\n", - vm::g_base_addr, vm::g_sudo_addr, vm::g_exec_addr, vm::g_stat_addr, vm::g_reservations); - std::vector modules; for (DWORD size = 256; modules.size() != size; size /= sizeof(HMODULE)) { @@ -1698,9 +1695,6 @@ static void signal_handler(int sig, siginfo_t* info, void* uct) noexcept sys_log.notice("\n%s", cpu->dump()); } - sys_log.notice("Memory bases:\nvm::g_base_addr = %p\nvm::g_sudo_addr = %p\nvm::g_exec_addr = %p\nvm::g_stat_addr = %p\nvm::g_reservations = %p\n", - vm::g_base_addr, vm::g_sudo_addr, vm::g_exec_addr, vm::g_stat_addr, vm::g_reservations); - std::string msg = fmt::format("Segfault %s location %p at %p.\n", cause, info->si_addr, RIP(context)); if (thread_ctrl::get_current()) diff --git a/rpcs3/Emu/Memory/vm.cpp b/rpcs3/Emu/Memory/vm.cpp index 9f4754328f..34f4d92de1 100644 --- a/rpcs3/Emu/Memory/vm.cpp +++ b/rpcs3/Emu/Memory/vm.cpp @@ -1125,6 +1125,18 @@ namespace vm { void init() { + vm_log.notice("Guest memory bases address ranges:\n" + "vm::g_base_addr = %p - %p\n" + "vm::g_sudo_addr = %p - %p\n" + "vm::g_exec_addr = %p - %p\n" + "vm::g_stat_addr = %p - %p\n" + "vm::g_reservations = %p - %p\n", + g_base_addr, g_base_addr + UINT32_MAX, + g_sudo_addr, g_sudo_addr + UINT32_MAX, + g_exec_addr, g_exec_addr + 0x200000000 - 1, + g_stat_addr, g_stat_addr + UINT32_MAX, + g_reservations, g_reservations + UINT32_MAX); + g_locations = { std::make_shared(0x00010000, 0x1FFF0000, 0x200), // main