dmd.tocvdebug
Generate debug info in the CV4 debug format.
License
Source: tocvdebug.d
Documentation: https://dlang.org/phobos/dmd_tocvdebug.html
-
Declaration
pure nothrow @nogc @safe uint
visibilityToCVAttr
(Visibility.Kindvis
);CV4 pg. 25 Convert D visibility attribute to cv attribute.
-
Declaration
uint
cv_align
(ubyte*p
, uintn
);Align and pad.
Return Value
aligned count
-
Declaration
void
cv_udt
(const char*id
, uinttypidx
);write a UDT record to the object file
Parameters
char*
id
name of user defined type
uint
typidx
type index
-
Declaration
void
toDebug
(EnumDeclarationed
);Emit symbolic debug info in CV format.
-
Declaration
struct
CvFieldList
;Helper struct for field list records LF_FIELDLIST/LF_FIELDLIST_V2
Discussion
if the size exceeds the maximum length of a record, the last entry is an LF_INDEX entry with the type index pointing to the next field list record
Processing is done in two phases:
Phase 1: computing the size of the field list and distributing it over multiple records- construct
CvFieldList
with some precalculated field count/length - for each field, call count(length of field)
- call alloc() to allocate debtyp's
- for each field,
- call writePtr() to get a pointer into the current debtyp
- fill memory with field data
- call written(length of field)
- call debtyp() to create type records and return the index of the first one
- construct
-
Declaration
int
cvMember
(Dsymbols
, ubyte*p
);Insert CV info into *
p
.Return Value
number of bytes written, or that would be written if
p
==null