| |
| |
|
|
| #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(Kernel::KProcess* process); |
| Kernel::KProcessAddress GetModuleEnd(const Kernel::KProcess* process, Kernel::KProcessAddress base); |
| Kernel::KProcessAddress FindMainModuleEntrypoint(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(Kernel::KProcess* process, |
| const Kernel::Svc::ThreadContext& ctx); |
| std::vector<BacktraceEntry> GetBacktrace(const Kernel::KThread* thread); |
|
|
| } |
|
|