2020-05-04 12:14:39 +03:00
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2020, Itamar S. <itamar8910@gmail.com>
|
|
|
|
|
*
|
2021-04-22 01:24:48 -07:00
|
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
2020-05-04 12:14:39 +03:00
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#pragma once
|
2020-05-28 20:40:53 +02:00
|
|
|
|
2022-09-14 00:56:13 +02:00
|
|
|
#include <AK/ByteBuffer.h>
|
|
|
|
|
#include <AK/Types.h>
|
2020-05-04 12:14:39 +03:00
|
|
|
|
2020-09-12 00:44:54 +02:00
|
|
|
struct PtraceRegisters;
|
2020-05-04 12:14:39 +03:00
|
|
|
|
2020-08-25 04:33:07 +01:00
|
|
|
namespace Debug::Dwarf::Expression {
|
2020-05-28 20:40:53 +02:00
|
|
|
|
2020-05-04 12:14:39 +03:00
|
|
|
enum class Type {
|
|
|
|
|
None,
|
2021-07-13 17:45:38 +02:00
|
|
|
UnsignedInteger,
|
2020-05-04 12:14:39 +03:00
|
|
|
Register,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct Value {
|
|
|
|
|
Type type;
|
|
|
|
|
union {
|
2021-07-13 18:16:36 +02:00
|
|
|
FlatPtr as_addr;
|
2020-05-04 12:14:39 +03:00
|
|
|
u32 as_u32;
|
|
|
|
|
} data { 0 };
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum class Operations : u8 {
|
|
|
|
|
RegEbp = 0x75,
|
|
|
|
|
FbReg = 0x91,
|
|
|
|
|
};
|
|
|
|
|
|
2023-01-22 00:51:45 +01:00
|
|
|
ErrorOr<Value> evaluate(ReadonlyBytes, PtraceRegisters const&);
|
2020-05-04 12:14:39 +03:00
|
|
|
|
2020-05-28 20:40:53 +02:00
|
|
|
}
|