After reading the step file, there will be an exception when closing the application

If I do not read the STEP file, there is no exception.

Here is my reading code:
STEPControl_Reader *reader = new STEPControl_Reader();
IFSelect_ReturnStatus status = reader->ReadFile(file.toUtf8().data());
if (status != IFSelect_RetDone)
{
return ret;
}
Standard_Integer NbRoots = reader->NbRootsForTransfer();
Standard_Integer num = reader->TransferRoots();
Standard_Integer number = reader->NbShapes();
for (int rank = 1; rank <= number; ++rank)
{
}
delete reader

------------------------------------------
Exception location:

Standard_Type::~Standard_Type ()
{
// remove descriptor from the registry
registry_type& aRegistry = GetRegistry();
Standard_ASSERT(aRegistry.UnBind (mySystemName), "Standard_Type::~Standard_Type() cannot find itself in registry",); //!Error

// std::cout << "Unregistering " << mySystemName << ": " << aRegistry.Extent() << std::endl;
Standard::Free (mySystemName);
Standard::Free (myName);
}

Attachments: 
Dmitrii Pasukhin's picture

Hello, can you share a stack?

Pure not-safety C pointer is not recomended to use with Reader. Please use std::shared_ptr or unique_ptr. Reader is a one-time object. All necessary data located in the WorkSession, that can be gotten by its method or setter by constructor.

Best regards, Dmitrii.

xb f's picture

Sorry for the late reply. I tried using std::share_ ptr, but this issue still exists. Here is a screenshot of the stack.

Attachments: 
Dmitrii Pasukhin's picture

Thank you for stack dump. We will check it. If problem will reproduce, I create a ticket. 

But can you check just a Reader on the stack? without new/delete. Just variable.

Best regards,

Dmitrii.