Pregunta

CDirScan función NextL plantea "Principal de Pánico KERN-EXEC 0" si es que no se llama de inmediato SetScanDataL() (es decir,si es llamado, posteriormente, en el mismo objeto activo después de otro evento)

f1() - llamada dentro de los activos objeto de

iDirScan = CDirScan::NewLC(aFs);
iDirScan->SetScanDataL(aPath, 
    KEntryAttDir|KEntryAttMatchExclusive, 
    ESortNone, CDirScan::EScanDownTree);
//wait for some asynchronous event

f2() - llamada dentro de un mismo objeto activo, después de algunos asynchonous evento

CDir* dir = NULL;
TRAPD(error, iDirScan->NextL(dir)); -->> "Main Panic KERN-EXEC 0"

Si iDirScan->NextL() es llamado antes que a la espera de algún evento asincrónico, todo funciona bien.

Por qué CDirScan variable pierde su validez?Tenga en cuenta que el evento asincrónico no tiene nada que hacer, puede ser un simple maniquí temporizador.

¿Fue útil?

Solución

Escribí un código de prueba en un intento de reproducir esto, pero no podía.

En general, KERN-EXEC 0 los pánicos son causadas en su mayoría por obsoletos R identificadores de objeto.Por ejemplo, asegúrese de que el RFs mango de pasar a CDirScan no se cierra demasiado temprano.

Otros consejos

Podría publicar más de su código para analizar?

¿Esto dos partes del código están en diferentes funciones f1, f2, o ambos están en una función f1, esto no está claro para mí?

Además, si iDirScan es parte de su clase no se debe dejar en función de pila de limpieza (NewLC).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top