-
-
Notifications
You must be signed in to change notification settings - Fork 594
/
dwarf.d
32 lines (25 loc) · 1.12 KB
/
dwarf.d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/** Dwarf debug
*
* Source: $(LINK2 https://github.com/dlang/dmd/blob/master/src/dmd/backend/dwarf.d, backend/_dwarf.d)
*/
module dmd.backend.dwarf;
// Online documentation: https://dlang.org/phobos/dmd_backend_dwarf.html
import dmd.backend.cc;
import dmd.backend.cdef;
import dmd.backend.outbuf;
import dmd.backend.type;
enum DWARF_VERSION = 3;
void dwarf_initfile(const(char) *filename);
void dwarf_termfile();
void dwarf_initmodule(const(char) *filename, const(char) *modulename);
void dwarf_termmodule();
void dwarf_func_start(Symbol *sfunc);
void dwarf_func_term(Symbol *sfunc);
uint dwarf_typidx(type *t);
uint dwarf_abbrev_code(ubyte *data, size_t nbytes);
int dwarf_regno(int reg);
void dwarf_addrel(int seg, targ_size_t offset, int targseg, targ_size_t val = 0);
int dwarf_reftoident(int seg, targ_size_t offset, Symbol *s, targ_size_t val);
void dwarf_except_gentables(Funcsym *sfunc, uint startoffset, uint retoffset);
void genDwarfEh(Funcsym *sfunc, int seg, Outbuffer *et, bool scancode, uint startoffset, uint retoffset);
int dwarf_eh_frame_fixup(int seg, targ_size_t offset, Symbol *s, targ_size_t val, Symbol *seh);