DwarfCfiDeinit
Description
Release every CIE / FDE table the CFI parser allocated. Safe on a zeroed struct.
Success
Returns to the caller. *self is zeroed.
Failure
Function cannot fail. NULL self is a no-op.
Usage example (Cross-references)
Usage examples (Cross-references)
}
if (e->cfi_built && e->cfi_ok) {
DwarfCfiDeinit(&e->cfi);
}
if (e->functions_built && e->functions_ok) { }
if (!ok) {
DwarfCfiDeinit(out);
return false;
} }
void DwarfCfiDeinit(DwarfCfi *self) {
if (!self)
return; const DwarfFde *fde = DwarfCfiFindFde(&cfi, target_pc);
ok = fde != NULL && DwarfCfiBuildRow(&cfi, fde, target_pc, out_row);
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf); const DwarfFde *fde = DwarfCfiFindFde(&cfi, target_pc);
ok = fde != NULL && DwarfCfiBuildRow(&cfi, fde, target_pc, out_row);
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf); const DwarfFde *fde = DwarfCfiFindFde(&cfi, target_pc);
ok = fde != NULL && DwarfCfiBuildRow(&cfi, fde, target_pc, out_row);
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf); const DwarfFde *fde = DwarfCfiFindFde(&cfi, target_pc);
ok = fde != NULL && DwarfCfiBuildRow(&cfi, fde, target_pc, out_row);
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf); ok = fde != NULL && DwarfCfiBuildRow(&cfi, fde, 0x5000, &row) && row.cfa.reg == 7 &&
cfi.eh_frame_addr == EH_SECTION_VADDR;
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf); ok = DwarfCfiFindFde(&cfi, 0x10ff) != NULL // last in-range address
&& DwarfCfiFindFde(&cfi, 0x1100) == NULL; // == end: exclusive -> miss
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf); ok = fde != NULL && DwarfCfiBuildRow(&cfi, fde, 0x1080, &row) // in range -> ok
&& !DwarfCfiBuildRow(&cfi, fde, 0x1100, &row); // == end -> rejected
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf); ok = cie != NULL && cie->version == 1 && cie->has_augmentation == 1 && cie->offset == 0 &&
cie->fde_pointer_encoding == 0x03 && cfi.eh_frame_addr == EH_SECTION_VADDR;
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf); const DwarfFde *fde = DwarfCfiFindFde(&cfi, 0x1000);
ok = fde != NULL && fde->offset == fde_off;
DwarfCfiDeinit(&cfi);
}
ElfDeinit(&elf);- In
Dwarf.c:140:
}
if (built) {
DwarfCfiDeinit(&cfi);
}
Last updated on