LLVM 22.0.0git
|
#include "llvm/DebugInfo/DWARF/DWARFUnwindTablePrinter.h"
#include "llvm/DebugInfo/DIContext.h"
#include "llvm/DebugInfo/DWARF/DWARFExpressionPrinter.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/Format.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cinttypes>
#include <cstdint>
#include <optional>
Go to the source code of this file.
Functions | |
static void | printRegister (raw_ostream &OS, DIDumpOptions DumpOpts, unsigned RegNum) |
static void | printUnwindLocation (const UnwindLocation &UL, raw_ostream &OS, DIDumpOptions DumpOpts) |
Print an unwind location expression as text and use the register information if some is provided. | |
static void | printRegisterLocations (const RegisterLocations &RL, raw_ostream &OS, DIDumpOptions DumpOpts) |
Print all registers + locations that are currently defined in a register locations. | |
static void | printUnwindRow (const UnwindRow &Row, raw_ostream &OS, DIDumpOptions DumpOpts, unsigned IndentLevel) |
Print an UnwindRow to the stream. | |
|
static |
Definition at line 23 of file DWARFUnwindTablePrinter.cpp.
References llvm::DIDumpOptions::GetNameForDWARFReg, llvm::DIDumpOptions::IsEH, OS, and RegName.
Referenced by printRegisterLocations(), and printUnwindLocation().
|
static |
Print all registers + locations that are currently defined in a register locations.
RL | the register locations to print. |
OS | the stream to use for output. |
MRI | register information that helps emit register names insteead of raw register numbers. |
IsEH | true if the DWARF Call Frame Information is from .eh_frame instead of from .debug_frame. This is needed for register number conversion because some register numbers differ between the two sections for certain architectures like x86. |
Definition at line 117 of file DWARFUnwindTablePrinter.cpp.
References llvm::First, llvm::dwarf::RegisterLocations::getRegisterLocation(), llvm::dwarf::RegisterLocations::getRegisters(), OS, printRegister(), and printUnwindLocation().
Referenced by llvm::dwarf::operator<<(), and printUnwindRow().
|
static |
Print an unwind location expression as text and use the register information if some is provided.
R | the unwind location to print. |
OS | the stream to use for output. |
MRI | register information that helps emit register names insteead of raw register numbers. |
IsEH | true if the DWARF Call Frame Information is from .eh_frame instead of from .debug_frame. This is needed for register number conversion because some register numbers differ between the two sections for certain architectures like x86. |
Definition at line 49 of file DWARFUnwindTablePrinter.cpp.
References llvm::dwarf::UnwindLocation::CFAPlusOffset, llvm::dwarf::UnwindLocation::Constant, llvm::dwarf::UnwindLocation::DWARFExpr, llvm::dwarf::UnwindLocation::getAddressSpace(), llvm::dwarf::UnwindLocation::getDereference(), llvm::dwarf::UnwindLocation::getDWARFExpressionBytes(), llvm::dwarf::UnwindLocation::getLocation(), llvm::dwarf::UnwindLocation::getOffset(), llvm::dwarf::UnwindLocation::getRegister(), llvm::dwarf::UnwindLocation::hasAddressSpace(), OS, llvm::printDwarfExpression(), printRegister(), llvm::dwarf::UnwindLocation::RegPlusOffset, llvm::dwarf::UnwindLocation::Same, llvm::dwarf::UnwindLocation::Undefined, and llvm::dwarf::UnwindLocation::Unspecified.
Referenced by llvm::dwarf::operator<<(), printRegisterLocations(), and printUnwindRow().
|
static |
Print an UnwindRow to the stream.
Row | the UnwindRow to print. |
OS | the stream to use for output. |
MRI | register information that helps emit register names insteead of raw register numbers. |
IsEH | true if the DWARF Call Frame Information is from .eh_frame instead of from .debug_frame. This is needed for register number conversion because some register numbers differ between the two sections for certain architectures like x86. |
IndentLevel | specify the indent level as an integer. The UnwindRow will be output to the stream preceded by 2 * IndentLevel number of spaces. |
Definition at line 155 of file DWARFUnwindTablePrinter.cpp.
References llvm::format(), llvm::raw_ostream::indent(), OS, printRegisterLocations(), and printUnwindLocation().
Referenced by llvm::dwarf::operator<<(), and llvm::dwarf::printUnwindTable().