/// Print only DIEs that have a certain name. static void filterByAccelName(ArrayRef<std::string> Names, DWARFContext &DICtx, raw_ostream &OS) { SmallVector<uint64_t, 4> Offsets; for (const auto &Name : Names) { getDIEOffset(DICtx.getAppleNames(), Name, Offsets); getDIEOffset(DICtx.getAppleTypes(), Name, Offsets); getDIEOffset(DICtx.getAppleNamespaces(), Name, Offsets); getDIEOffset(DICtx.getDebugNames(), Name, Offsets); } llvm::sort(Offsets.begin(), Offsets.end()); Offsets.erase(std::unique(Offsets.begin(), Offsets.end()), Offsets.end()); for (uint64_t Off: Offsets) { DWARFDie Die = DICtx.getDIEForOffset(Off); Die.dump(OS, 0, getDumpOpts()); } }