Expression.h 548 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /*
  2. * Copyright (c) 2020, Itamar S. <itamar8910@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <AK/ByteBuffer.h>
  8. #include <AK/Types.h>
  9. struct PtraceRegisters;
  10. namespace Debug::Dwarf::Expression {
  11. enum class Type {
  12. None,
  13. UnsignedInteger,
  14. Register,
  15. };
  16. struct Value {
  17. Type type;
  18. union {
  19. FlatPtr as_addr;
  20. u32 as_u32;
  21. } data { 0 };
  22. };
  23. enum class Operations : u8 {
  24. RegEbp = 0x75,
  25. FbReg = 0x91,
  26. };
  27. ErrorOr<Value> evaluate(ReadonlyBytes, PtraceRegisters const&);
  28. }