Lines Matching refs:cie
45 if (fde == nullptr || fde->cie == nullptr) { in Step()
55 loc_regs.cie = fde->cie; in Step()
62 return Eval(it->second.cie, process_memory, it->second, regs, finished); in Step()
71 DwarfCie* cie = &cie_entries_[offset]; in GetCieFromOffset() local
73 if (!FillInCieHeader(cie) || !FillInCie(cie)) { in GetCieFromOffset()
78 return cie; in GetCieFromOffset()
82 bool DwarfSectionImpl<AddressType>::FillInCieHeader(DwarfCie* cie) { in FillInCieHeader() argument
83 cie->lsda_encoding = DW_EH_PE_omit; in FillInCieHeader()
99 cie->cfa_instructions_end = memory_.cur_offset() + length64; in FillInCieHeader()
100 cie->fde_address_encoding = DW_EH_PE_sdata8; in FillInCieHeader()
115 cie->cfa_instructions_end = memory_.cur_offset() + length32; in FillInCieHeader()
116 cie->fde_address_encoding = DW_EH_PE_sdata4; in FillInCieHeader()
134 bool DwarfSectionImpl<AddressType>::FillInCie(DwarfCie* cie) { in FillInCie() argument
135 if (!memory_.ReadBytes(&cie->version, sizeof(cie->version))) { in FillInCie()
141 if (cie->version != 1 && cie->version != 3 && cie->version != 4 && cie->version != 5) { in FillInCie()
155 cie->augmentation_string.push_back(aug_value); in FillInCie()
158 if (cie->version == 4 || cie->version == 5) { in FillInCie()
163 if (!memory_.ReadBytes(&cie->segment_size, 1)) { in FillInCie()
171 if (!memory_.ReadULEB128(&cie->code_alignment_factor)) { in FillInCie()
178 if (!memory_.ReadSLEB128(&cie->data_alignment_factor)) { in FillInCie()
184 if (cie->version == 1) { in FillInCie()
192 cie->return_address_register = return_address_register; in FillInCie()
193 } else if (!memory_.ReadULEB128(&cie->return_address_register)) { in FillInCie()
199 if (cie->augmentation_string[0] != 'z') { in FillInCie()
200 cie->cfa_instructions_offset = memory_.cur_offset(); in FillInCie()
210 cie->cfa_instructions_offset = memory_.cur_offset() + aug_length; in FillInCie()
212 for (size_t i = 1; i < cie->augmentation_string.size(); i++) { in FillInCie()
213 switch (cie->augmentation_string[i]) { in FillInCie()
215 if (!memory_.ReadBytes(&cie->lsda_encoding, 1)) { in FillInCie()
229 if (!memory_.ReadEncodedValue<AddressType>(encoding, &cie->personality_handler)) { in FillInCie()
236 if (!memory_.ReadBytes(&cie->fde_address_encoding, 1)) { in FillInCie()
323 const DwarfCie* cie = GetCieFromOffset(fde->cie_offset); in FillInFde() local
324 if (cie == nullptr) { in FillInFde()
327 fde->cie = cie; in FillInFde()
329 if (cie->segment_size != 0) { in FillInFde()
331 cur_offset += cie->segment_size; in FillInFde()
337 bool valid = memory_.ReadEncodedValue<AddressType>(cie->fde_address_encoding, &fde->pc_start); in FillInFde()
341 if (!valid || !memory_.ReadEncodedValue<AddressType>(cie->fde_address_encoding, &fde->pc_end)) { in FillInFde()
348 if (cie->augmentation_string.size() > 0 && cie->augmentation_string[0] == 'z') { in FillInFde()
359 if (!memory_.ReadEncodedValue<AddressType>(cie->lsda_encoding, &fde->lsda_address)) { in FillInFde()
407 const DwarfCie* cie; member
461 if (reg == eval_info->cie->return_address_register) { in EvalRegister()
473 bool DwarfSectionImpl<AddressType>::Eval(const DwarfCie* cie, Memory* regular_memory, in Eval() argument
477 if (cie->return_address_register >= cur_regs->total_regs()) { in Eval()
493 .cie = cie, in Eval()
542 cur_regs->set_pc((*cur_regs)[cie->return_address_register]); in Eval()
561 if (!cfa.GetLocationInfo(pc, fde->cie->cfa_instructions_offset, fde->cie->cfa_instructions_end, in GetCfaLocationInfo()
581 const DwarfCie* cie = fde->cie; in Log() local
582 if (!cfa.Log(indent, pc, cie->cfa_instructions_offset, cie->cfa_instructions_end)) { in Log()
712 DwarfCie* cie = &cie_entries_[start_offset]; in GetNextCieOrFde() local
713 cie->lsda_encoding = DW_EH_PE_omit; in GetNextCieOrFde()
714 cie->cfa_instructions_end = next_entries_offset_; in GetNextCieOrFde()
715 cie->fde_address_encoding = cie_fde_encoding; in GetNextCieOrFde()
717 if (!this->FillInCie(cie)) { in GetNextCieOrFde()