class DWARFExpression::Operation

Declaration

class DWARFExpression::Operation { /* full declaration omitted */ };

Description

This class represents an Operation in the Expression. Each operation can have up to 2 oprerands. An Operation can be in Error state (check with isError()). This means that it couldn't be decoded successfully and if it is the case, all others fields contain undefined values.

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:34

Member Variables

private uint8_t Opcode
The Op Opcode, DW_OP_ <something >.
private llvm::DWARFExpression::Operation::Description Desc
private bool Error = false
private uint64_t EndOffset
private uint64_t[2] Operands
private uint64_t[2] OperandEndOffsets

Method Overview

  • private bool extract(llvm::DataExtractor Data, uint8_t AddressSize, uint64_t Offset, Optional<dwarf::DwarfFormat> Format)
  • public uint8_t getCode() const
  • public const llvm::DWARFExpression::Operation::Description & getDescription() const
  • public uint64_t getEndOffset() const
  • public uint64_t getOperandEndOffset(unsigned int Idx) const
  • public uint64_t getRawOperand(unsigned int Idx) const
  • public bool isError() const
  • public bool print(llvm::raw_ostream & OS, llvm::DIDumpOptions DumpOpts, const llvm::DWARFExpression * Expr, const llvm::MCRegisterInfo * RegInfo, llvm::DWARFUnit * U, bool isEH) const
  • public static bool verify(const llvm::DWARFExpression::Operation & Op, llvm::DWARFUnit * U)

Methods

bool extract(llvm::DataExtractor Data,
             uint8_t AddressSize,
             uint64_t Offset,
             Optional<dwarf::DwarfFormat> Format)

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:104

Parameters

llvm::DataExtractor Data
uint8_t AddressSize
uint64_t Offset
Optional<dwarf::DwarfFormat> Format

uint8_t getCode() const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:89

const llvm::DWARFExpression::Operation::
    Description&
    getDescription() const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:88

uint64_t getEndOffset() const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:94

uint64_t getOperandEndOffset(
    unsigned int Idx) const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:91

Parameters

unsigned int Idx

uint64_t getRawOperand(unsigned int Idx) const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:90

Parameters

unsigned int Idx

bool isError() const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:95

bool print(llvm::raw_ostream& OS,
           llvm::DIDumpOptions DumpOpts,
           const llvm::DWARFExpression* Expr,
           const llvm::MCRegisterInfo* RegInfo,
           llvm::DWARFUnit* U,
           bool isEH) const

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:96

Parameters

llvm::raw_ostream& OS
llvm::DIDumpOptions DumpOpts
const llvm::DWARFExpression* Expr
const llvm::MCRegisterInfo* RegInfo
llvm::DWARFUnit* U
bool isEH

static bool verify(
    const llvm::DWARFExpression::Operation& Op,
    llvm::DWARFUnit* U)

Description

Verify \p Op. Does not affect the return of \a isError().

Declared at: llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h:101

Parameters

const llvm::DWARFExpression::Operation& Op
llvm::DWARFUnit* U