Files
AnyPS5/core/libs/tests/GuestUnwindModuleInfoFixture.hpp
JAB-devandClaude Sonnet 5.5 61ed25d9ed fix(libkernel): drop the cached unwind tables when the loader frees a module
The cache key of relinked images has no time stamp or check sum, so a
different module of the same size loaded at the same base was served the
old tables. The loader now forgets the image when it frees the module, the
cache has a separate valid flag, and the sysmodule name cache is left out
of this change.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-13 18:13:12 +02:00

29 lines
696 B
C++

#pragma once
#include <cstdint>
struct alignas(4) UnwindFixtureHeader {
std::uint8_t version = 1;
std::uint8_t framePointerEncoding = 0x1b;
std::uint8_t countEncoding = 0x03;
std::uint8_t tableEncoding = 0x3b;
std::int32_t frames = 0;
std::uint32_t count = 0;
};
struct alignas(4) UnwindFixtureFrames {
std::uint32_t cieLength = 12;
std::uint32_t cieId = 0;
std::uint8_t cie[8] = {1, 0, 1, 0x78, 16, 0, 0, 0};
std::uint32_t terminator = 0;
std::uint32_t spare[3] = {};
std::uint32_t spareTerminator = 0;
};
struct UnwindFixture {
UnwindFixtureHeader header;
UnwindFixtureFrames frames;
};
extern "C" UnwindFixture* GetUnwindFixture();