The NDPluginPVXS constructor fails if the IOC is built with both WITH_PVA=YES and WITH_PVXS=YES. The constructor fails when this line is present:
m_record(NTNDArrayRecordPvxs::create(pvName))
The main body of the constructor is never entered, and the destructor for NDPluginDriver is called.
If that line is commented out then the constructor is entered, but of course the plugin does not work.
If the driver is built with WITH_PVA=NO then this problem does not occur.