Expand description
Debug information as a program built with -Zi keeps it in its module (-Qembed_debug, or the ILDB part of a
container): LLVM 3.7’s DI* metadata nodes, read from their metadata records as dxc 1.9.2609’s bitcode reader reads
them, and the source location of each instruction (DebugLoc).
A node’s references to other metadata are metadata ids (MetadataId, None for a null reference), strings
included: a name is the id of a metadata string (crate::module::Metadata::String), and a reference to a value
(a subprogram’s function, a global variable’s variable, a template parameter’s value) is the id of a value as
metadata (crate::module::Metadata::Value). Numbers keep LLVM’s widths: a line, column, tag or flags word is the
unsigned LLVM keeps (the low 32 bits of the record’s operand), sizes and offsets are 64 bits.
Structs§
- Debug
Loc - An instruction’s source location (
FUNC_CODE_DEBUG_LOC): the fields of theDILocationit is.
Enums§
- Debug
Node - A debug-information node: one of LLVM 3.7’s
DI*metadata classes.