void printFieldContainer() { int N = FieldContainerFactory::the()->getNumTotalContainers(); for (int i=0;i<N;++i) { FieldContainer* fc = FieldContainerFactory::the()->getContainer(i); if(fc == 0) continue; // skip prototypes if(fc->getType().getPrototype() == 0 || fc->getType().getPrototype() == fc ) continue; //cout << "\nFC id: " << fc->getId() << flush; AttachmentContainer* ac = dynamic_cast<AttachmentContainer*>(fc); if (ac == 0) { Attachment* a = dynamic_cast<Attachment*>(fc); if (a != 0) { FieldContainer* dad = 0; if (a->getMFParents()->size() > 0) dad = a->getParents(0); ac = dynamic_cast<AttachmentContainer*>(dad); } } const Char8* name = getName(ac); if (name != 0) printf("Detected living FC %s (%s) %p refcount %d ID %d\n", fc->getTypeName(), name, fc, fc->getRefCount(), fc->getId()); else printf( "Detected living FC %s %p refcount %d ID %d\n", fc->getTypeName(), fc, fc->getRefCount(), fc->getId() ); } }