MCPcopy Create free account
hub / github.com/async-profiler/async-profiler / parseFde

Method parseFde

src/dwarf.cpp:111–130  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109}
110
111void DwarfParser::parseFde() {
112 u32 fde_len = get32();
113 if (fde_len == 0 || fde_len == 0xffffffff) {
114 return;
115 }
116
117 const char* fde_start = _ptr;
118 u32 cie_offset = get32();
119 if (_count == 0) {
120 _ptr = fde_start - cie_offset;
121 parseCie();
122 _ptr = fde_start + 4;
123 }
124
125 u32 range_start = getPtr() - _image_base;
126 u32 range_len = get32();
127 _ptr += getLeb();
128 parseInstructions(range_start, fde_start + fde_len);
129 addRecord(range_start + range_len, DW_REG_FP, LINKED_FRAME_SIZE, -LINKED_FRAME_SIZE, -LINKED_FRAME_SIZE + DW_STACK_SLOT);
130}
131
132void DwarfParser::parseInstructions(u32 loc, const char* end) {
133 const u32 code_align = _code_align;

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected