static std::error_code getOffset(const SymbolRef &Sym, uint64_t &Result) { uint64_t Address; if (std::error_code EC = Sym.getAddress(Address)) return EC; if (Address == UnknownAddressOrSize) { Result = UnknownAddressOrSize; return object_error::success; } const ObjectFile *Obj = Sym.getObject(); section_iterator SecI(Obj->section_begin()); if (std::error_code EC = Sym.getSection(SecI)) return EC; if (SecI == Obj->section_end()) { Result = UnknownAddressOrSize; return object_error::success; } uint64_t SectionAddress = SecI->getAddress(); Result = Address - SectionAddress; return object_error::success; }