|
LLVM
4.0.0
|
Collects and handles line tables information in a CodeView format. More...
#include <CodeViewDebug.h>
Classes | |
| struct | TypeLoweringScope |
Public Member Functions | |
| CodeViewDebug (AsmPrinter *Asm) | |
| void | setSymbolSize (const llvm::MCSymbol *, uint64_t) override |
| For symbols that have a size designated (e.g. More... | |
| void | endModule () override |
| Emit the COFF section that holds the line table information. More... | |
| void | beginFunction (const MachineFunction *MF) override |
| Gather pre-function debug information. More... | |
| void | endFunction (const MachineFunction *) override |
| Gather post-function debug information. More... | |
| void | beginInstruction (const MachineInstr *MI) override |
| Process beginning of an instruction. More... | |
Public Member Functions inherited from llvm::DebugHandlerBase | |
| void | beginInstruction (const MachineInstr *MI) override |
| Process beginning of an instruction. More... | |
| void | endInstruction () override |
| Process end of an instruction. More... | |
| void | beginFunction (const MachineFunction *MF) override |
| Gather pre-function debug information. More... | |
| void | endFunction (const MachineFunction *MF) override |
| Gather post-function debug information. More... | |
| MCSymbol * | getLabelBeforeInsn (const MachineInstr *MI) |
| Return Label preceding the instruction. More... | |
| MCSymbol * | getLabelAfterInsn (const MachineInstr *MI) |
| Return Label immediately following the instruction. More... | |
Public Member Functions inherited from llvm::AsmPrinterHandler | |
| virtual | ~AsmPrinterHandler () |
| Pin vtable to this file. More... | |
| virtual void | markFunctionEnd () |
| virtual void | beginFragment (const MachineBasicBlock *MBB, ExceptionSymbolProvider ESP) |
| virtual void | endFragment () |
| virtual void | beginFunclet (const MachineBasicBlock &MBB, MCSymbol *Sym=nullptr) |
| Emit target-specific EH funclet machinery. More... | |
| virtual void | endFunclet () |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::DebugHandlerBase | |
| static int | fragmentCmp (const DIExpression *P1, const DIExpression *P2) |
| Determine the relative position of the fragments described by P1 and P2. More... | |
| static bool | fragmentsOverlap (const DIExpression *P1, const DIExpression *P2) |
| Determine whether two variable fragments overlap. More... | |
| static uint64_t | getBaseTypeSize (const DITypeRef TyRef) |
| If this type is derived from a base type then return base type size. More... | |
Protected Member Functions inherited from llvm::DebugHandlerBase | |
| DebugHandlerBase (AsmPrinter *A) | |
| void | identifyScopeMarkers () |
| Indentify instructions that are marking the beginning of or ending of a scope. More... | |
| void | requestLabelBeforeInsn (const MachineInstr *MI) |
| Ensure that a label will be emitted before MI. More... | |
| void | requestLabelAfterInsn (const MachineInstr *MI) |
| Ensure that a label will be emitted after MI. More... | |
Protected Attributes inherited from llvm::DebugHandlerBase | |
| AsmPrinter * | Asm |
| Target of debug info emission. More... | |
| MachineModuleInfo * | MMI |
| Collected machine module information. More... | |
| DebugLoc | PrevInstLoc |
| Previous instruction's location information. More... | |
| MCSymbol * | PrevLabel = nullptr |
| const MachineBasicBlock * | PrevInstBB = nullptr |
| DebugLoc | PrologEndLoc |
| This location indicates end of function prologue and beginning of function body. More... | |
| const MachineInstr * | CurMI = nullptr |
| If nonnull, stores the current machine instruction we're processing. More... | |
| LexicalScopes | LScopes |
| DbgValueHistoryMap | DbgValues |
| History of DBG_VALUE and clobber instructions for each user variable. More... | |
| DenseMap< const MachineInstr *, MCSymbol * > | LabelsBeforeInsn |
| Maps instruction with label emitted before instruction. More... | |
| DenseMap< const MachineInstr *, MCSymbol * > | LabelsAfterInsn |
| Maps instruction with label emitted after instruction. More... | |
Collects and handles line tables information in a CodeView format.
Definition at line 37 of file CodeViewDebug.h.
| CodeViewDebug::CodeViewDebug | ( | AsmPrinter * | Asm | ) |
Definition at line 43 of file CodeViewDebug.cpp.
References llvm::DebugHandlerBase::Asm, llvm::MCObjectFileInfo::getCOFFDebugSymbolsSection(), llvm::MachineModuleInfo::getModule(), llvm::Module::getNamedMetadata(), llvm::AsmPrinter::getObjFileLowering(), llvm::DebugHandlerBase::MMI, and llvm::MachineModuleInfo::setDebugInfoAvailability().
|
overridevirtual |
Gather pre-function debug information.
Implements llvm::AsmPrinterHandler.
Definition at line 1017 of file CodeViewDebug.cpp.
References llvm::DebugHandlerBase::Asm, assert(), llvm::DebugHandlerBase::beginFunction(), llvm::MCStreamer::EmitCVFuncIdDirective(), llvm::MachineInstr::FrameSetup, llvm::DebugLoc::getFnDebugLoc(), llvm::MachineFunction::getFunction(), llvm::AsmPrinter::getFunctionBegin(), llvm::Function::getSubprogram(), llvm::MachineModuleInfo::hasDebugInfo(), MBB, MI, llvm::DebugHandlerBase::MMI, and llvm::DebugHandlerBase::PrologEndLoc.
|
overridevirtual |
Process beginning of an instruction.
Implements llvm::AsmPrinterHandler.
Definition at line 2142 of file CodeViewDebug.cpp.
References llvm::DebugHandlerBase::Asm, llvm::DebugHandlerBase::beginInstruction(), llvm::MachineInstr::FrameSetup, llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getFlag(), llvm::MachineInstr::isDebugValue(), llvm::AsmPrinter::MF, and llvm::DebugHandlerBase::PrevInstLoc.
|
overridevirtual |
Gather post-function debug information.
Implements llvm::AsmPrinterHandler.
Definition at line 2118 of file CodeViewDebug.cpp.
References llvm::DebugHandlerBase::Asm, assert(), llvm::DebugHandlerBase::endFunction(), llvm::MachineFunction::getFunction(), and llvm::AsmPrinter::getFunctionEnd().
|
overridevirtual |
Emit the COFF section that holds the line table information.
Implements llvm::AsmPrinterHandler.
Definition at line 381 of file CodeViewDebug.cpp.
References llvm::MCStreamer::AddComment(), llvm::DebugHandlerBase::Asm, assert(), llvm::MCStreamer::EmitCVFileChecksumsDirective(), llvm::MCStreamer::EmitCVStringTableDirective(), llvm::MachineModuleInfo::hasDebugInfo(), llvm::DebugHandlerBase::MMI, and P.
|
inlineoverridevirtual |
For symbols that have a size designated (e.g.
common symbols), this tracks that size.
Implements llvm::AsmPrinterHandler.
Definition at line 305 of file CodeViewDebug.h.
1.8.6