Функция CDirScan NextL вызывает "Main Panic KERN-EXEC 0", если она не вызывается сразу же SetScanDataL () (т.е. если она вызывается позже в том же активном объекте после другого события)
f1 () - вызывается внутри активного объекта
iDirScan = CDirScan::NewLC(aFs);
iDirScan->SetScanDataL(aPath,
KEntryAttDir|KEntryAttMatchExclusive,
ESortNone, CDirScan::EScanDownTree);
//wait for some asynchronous event
f2 () - вызывается в том же активном объекте после некоторого асинхронного события
CDir* dir = NULL;
TRAPD(error, iDirScan->NextL(dir)); -->> "Main Panic KERN-EXEC 0"
Если iDirScan-> NextL () вызывается до ожидания какого-либо асинхронного события, все работает нормально.
Почему переменная CDirScan теряет свою действительность? Обратите внимание, что асинхронное событие не имеет ничего общего, это может быть простой фиктивный таймер.