1 /**
2  * Definitions for DWARF debug infos (v3)
3  *
4  * See_Also: $(LINK2 http://dwarfstd.org/doc/Dwarf3.pdf, DWARF standard)
5  * Source: $(DMDSRC backend/_dwarf.d)
6  */
7 
8 module dmd.backend.dwarf;
9 
10 import dmd.backend.cc;
11 import dmd.backend.cdef;
12 import dmd.backend.outbuf;
13 import dmd.backend.type;
14 
15 extern (C++):
16 
17 nothrow:
18 
19 enum DWARF_VERSION = 3;
20 
21 void dwarf_initfile(const(char) *filename);
22 void dwarf_termfile();
23 void dwarf_initmodule(const(char) *filename, const(char) *modulename);
24 void dwarf_termmodule();
25 void dwarf_func_start(Symbol *sfunc);
26 void dwarf_func_term(Symbol *sfunc);
27 uint dwarf_typidx(type *t);
28 uint dwarf_abbrev_code(ubyte *data, size_t nbytes);
29 
30 int dwarf_regno(int reg);
31 
32 void dwarf_addrel(int seg, targ_size_t offset, int targseg, targ_size_t val = 0);
33 int dwarf_reftoident(int seg, targ_size_t offset, Symbol *s, targ_size_t val);
34 void dwarf_except_gentables(Funcsym *sfunc, uint startoffset, uint retoffset);
35 void genDwarfEh(Funcsym *sfunc, int seg, Outbuffer *et, bool scancode, uint startoffset, uint retoffset);
36 int dwarf_eh_frame_fixup(int seg, targ_size_t offset, Symbol *s, targ_size_t val, Symbol *seh);