Lines Matching refs:writer

27 #include "debug/dwarf/writer.h"
48 Writer<> writer(buffer);
49 size_t cie_header_start_ = writer.data()->size();
50 writer.PushUint32(0); // Length placeholder.
51 writer.PushUint32((format == DW_EH_FRAME_FORMAT) ? 0 : 0xFFFFFFFF); // CIE id.
52 writer.PushUint8(1); // Version.
53 writer.PushString("zR");
54 writer.PushUleb128(DebugFrameOpCodeWriter<Vector>::kCodeAlignmentFactor);
55 writer.PushSleb128(DebugFrameOpCodeWriter<Vector>::kDataAlignmentFactor);
56 writer.PushUleb128(return_address_register.num()); // ubyte in DWARF2.
57 writer.PushUleb128(1); // z: Augmentation data size.
60 writer.PushUint8(DW_EH_PE_pcrel | DW_EH_PE_sdata8); // R: Pointer encoding.
63 writer.PushUint8(DW_EH_PE_absptr | DW_EH_PE_udata8); // R: Pointer encoding.
67 writer.PushUint8(DW_EH_PE_pcrel | DW_EH_PE_sdata4); // R: Pointer encoding.
70 writer.PushUint8(DW_EH_PE_absptr | DW_EH_PE_udata4); // R: Pointer encoding.
73 writer.PushData(opcodes.data());
74 writer.Pad(is64bit ? 8 : 4);
75 writer.UpdateUint32(cie_header_start_, writer.data()->size() - cie_header_start_ - 4);
93 Writer<> writer(buffer);
94 size_t fde_header_start = writer.data()->size();
95 writer.PushUint32(0); // Length placeholder.
98 writer.PushUint32(cie_pointer);
102 writer.PushUint32(cie_pointer);
113 writer.PushUint64(code_address);
114 writer.PushUint64(code_size);
116 writer.PushUint32(code_address);
117 writer.PushUint32(code_size);
119 writer.PushUleb128(0); // Augmentation data size.
120 writer.PushData(opcodes.data(), opcodes.size());
121 writer.Pad(is64bit ? 8 : 4);
122 writer.UpdateUint32(fde_header_start, writer.data()->size() - fde_header_start - 4);
134 Writer<> writer(debug_info);
135 size_t start = writer.data()->size();
136 writer.PushUint32(0); // Length placeholder.
137 writer.PushUint16(4); // Version.
138 writer.PushUint32(debug_abbrev_offset);
139 writer.PushUint8(entries.Is64bit() ? 8 : 4);
140 size_t entries_offset = writer.data()->size();
142 writer.PushData(entries.data());
143 writer.UpdateUint32(start, writer.data()->size() - start - 4);
167 Writer<> writer(debug_line);
168 size_t header_start = writer.data()->size();
169 writer.PushUint32(0); // Section-length placeholder.
170 writer.PushUint16(3); // .debug_line version.
171 size_t header_length_pos = writer.data()->size();
172 writer.PushUint32(0); // Header-length placeholder.
173 writer.PushUint8(1 << opcodes.GetCodeFactorBits());
174 writer.PushUint8(DebugLineOpCodeWriter<Vector>::kDefaultIsStmt ? 1 : 0);
175 writer.PushInt8(DebugLineOpCodeWriter<Vector>::kLineBase);
176 writer.PushUint8(DebugLineOpCodeWriter<Vector>::kLineRange);
177 writer.PushUint8(DebugLineOpCodeWriter<Vector>::kOpcodeBase);
181 writer.PushUint8(opcode_lengths[i]);
184 writer.PushData(directory.data(), directory.size() + 1);
186 writer.PushUint8(0); // Terminate include_directories list.
188 writer.PushData(file.file_name.data(), file.file_name.size() + 1);
189 writer.PushUleb128(file.directory_index);
190 writer.PushUleb128(file.modification_time);
191 writer.PushUleb128(file.file_size);
193 writer.PushUint8(0); // Terminate file list.
194 writer.UpdateUint32(header_length_pos, writer.data()->size() - header_length_pos - 4);
195 size_t opcodes_offset = writer.data()->size();
196 writer.PushData(opcodes.data());
197 writer.UpdateUint32(header_start, writer.data()->size() - header_start - 4);