diff options
Diffstat (limited to 'src/core/arm/debug.h')
-rw-r--r-- | src/core/arm/debug.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/core/arm/debug.h b/src/core/arm/debug.h new file mode 100644 index 000000000..c542633db --- /dev/null +++ b/src/core/arm/debug.h @@ -0,0 +1,35 @@ +// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <optional> + +#include "core/hle/kernel/k_thread.h" +#include "core/loader/loader.h" + +namespace Core { + +std::optional<std::string> GetThreadName(const Kernel::KThread* thread); +std::string_view GetThreadWaitReason(const Kernel::KThread* thread); +std::string GetThreadState(const Kernel::KThread* thread); + +Loader::AppLoader::Modules FindModules(const Kernel::KProcess* process); +Kernel::KProcessAddress GetModuleEnd(const Kernel::KProcess* process, Kernel::KProcessAddress base); +Kernel::KProcessAddress FindMainModuleEntrypoint(const Kernel::KProcess* process); + +void InvalidateInstructionCacheRange(const Kernel::KProcess* process, u64 address, u64 size); + +struct BacktraceEntry { + std::string module; + u64 address; + u64 original_address; + u64 offset; + std::string name; +}; + +std::vector<BacktraceEntry> GetBacktraceFromContext(const Kernel::KProcess* process, + const Kernel::Svc::ThreadContext& ctx); +std::vector<BacktraceEntry> GetBacktrace(const Kernel::KThread* thread); + +} // namespace Core |