dmd.backend.dwarfdbginf

Emit Dwarf symbolic debug info

Compiler implementation of the D programming language.

Members

Functions

addToAAchars
uint addToAAchars(AAchars* aachars, const(char)[] str)

Adds str to aachars, and assigns a new index if none

cv_outlist
void cv_outlist()

Write out any deferred symbols.

doUnwindEhFrame
bool doUnwindEhFrame()

Determine if generating a eh_frame with full unwinding information. This decision is done on a per-function basis.

dwarf_CFA_args_size
void dwarf_CFA_args_size(size_t sz)

Set total size of arguments pushed on the stack.

dwarf_CFA_offset
void dwarf_CFA_offset(int reg, int offset)

Set reg to be at offset from frame register.

dwarf_CFA_set_loc
void dwarf_CFA_set_loc(uint location)

Set the location, i.e. the offset from the start of the function. It must always be greater than the current location.

dwarf_CFA_set_reg_offset
void dwarf_CFA_set_reg_offset(int reg, int offset)

Set the frame register, and its offset.

dwarf_except_gentables
void dwarf_except_gentables(Funcsym* sfunc, uint startoffset, uint retoffset)

Write Dwarf-style exception tables.

dwarf_func_start
void dwarf_func_start(Symbol* sfunc)

Start of code gen for function.

dwarf_func_term
void dwarf_func_term(Symbol* sfunc)

End of code gen for function.

dwarf_line_add_directory
uint dwarf_line_add_directory(const(char)* path)

Add a directory to lineDirectories

dwarf_line_addfile
uint dwarf_line_addfile(const(char)* path)

Add a file to infoFileName_table

dwarf_outsym
void dwarf_outsym(Symbol* s)

Write out symbol table for current function.

dwarf_regno
int dwarf_regno(int reg)

Convert CPU register number to Dwarf register number.

dwarf_termfile
void dwarf_termfile()

Finish writing Dwarf debug info to object file.

getSymName
const(char)* getSymName(Symbol* sym)

Returns a pretty identifier name from sym.

retrieveDirectory
const(char)[] retrieveDirectory(const(char)* path)

Extracts the directory from path.

rewrite
void rewrite(OutBuffer* buf, size_t offset, T data)

Replace the bytes in buf from the offset by data.

writeDebugFrameFDE
void writeDebugFrameFDE(IDXSEC dfseg, Symbol* sfunc)

Generate function's Frame Description Entry into .debug_frame

writeDebugFrameHeader
void writeDebugFrameHeader(OutBuffer* buf)

Append .debug_frame header to buf.

writeEhFrameFDE
void writeEhFrameFDE(IDXSEC dfseg, Symbol* sfunc, bool ehunwind, uint CIE_offset)

Append function's FDE (Frame Description Entry) to .eh_frame

Structs

CFA_reg
struct CFA_reg

DWARF DEBUG OUTPUT *******************************

Meta