Skip to main content

Module debug_info

Module debug_info 

Source
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§

DebugLoc
An instruction’s source location (FUNC_CODE_DEBUG_LOC): the fields of the DILocation it is.

Enums§

DebugNode
A debug-information node: one of LLVM 3.7’s DI* metadata classes.