|
|
@ -47,6 +47,7 @@ private:
|
|
|
|
|
|
|
|
|
|
|
|
/// Log field type
|
|
|
|
/// Log field type
|
|
|
|
enum class Field : u8 {
|
|
|
|
enum class Field : u8 {
|
|
|
|
|
|
|
|
Skip = 1,
|
|
|
|
Message = 2,
|
|
|
|
Message = 2,
|
|
|
|
Line = 3,
|
|
|
|
Line = 3,
|
|
|
|
Filename = 4,
|
|
|
|
Filename = 4,
|
|
|
@ -85,6 +86,11 @@ private:
|
|
|
|
while (addr < end_addr) {
|
|
|
|
while (addr < end_addr) {
|
|
|
|
const Field field{static_cast<Field>(Memory::Read8(addr++))};
|
|
|
|
const Field field{static_cast<Field>(Memory::Read8(addr++))};
|
|
|
|
size_t length{Memory::Read8(addr++)};
|
|
|
|
size_t length{Memory::Read8(addr++)};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (static_cast<Field>(Memory::Read8(addr)) == Field::Skip) {
|
|
|
|
|
|
|
|
++addr;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
switch (field) {
|
|
|
|
switch (field) {
|
|
|
|
case Field::Message:
|
|
|
|
case Field::Message:
|
|
|
|
message = Memory::ReadCString(addr, length);
|
|
|
|
message = Memory::ReadCString(addr, length);
|
|
|
@ -99,6 +105,7 @@ private:
|
|
|
|
function = Memory::ReadCString(addr, length);
|
|
|
|
function = Memory::ReadCString(addr, length);
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
addr += length;
|
|
|
|
addr += length;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|