Pregunta

Uno de los productos que desarrollamos es una aplicación de teléfono para los teléfonos Nokia hecho en C ++ y Symbian, empezamos a recibir "al azar" se bloquea cuando una hace con un pánico USUARIO 44.

Soy bastante nuevo en el entorno Symbian, así que estoy buscando herramientas y recomendaciones para ayudar a encontrar la raíz de este error.

¿Hay un equivalente de un "seguimiento de la pila" que puedo obtener? ¿Hay genérico código de captura de pánico que me pudiera dar una idea de él?

¿Fue útil?

Solución

http: // www. symbian.com/developer/techlib/v9.1docs/doc_source/reference/N10352/UserPanics.html :

This panic is raised by the Free() and FreeZ() member functions of an RHeap.
It is caused when the cell being freed overlaps the next cell on the free
list (i.e. the first cell on the free list with an address higher than the
one being freed).

Esto significa, a su llamando a delete / delete [] (que a su vez llamada gratis () / FreeZ ()) con un puntero no válido. Cuando debuging bajo el carburo debuger debe romper en la línea que causa el pánico y usted debería ser capaz de ver la eliminación válido.

Otros consejos

Kasprzol señaló , dando un paso a través del depurador debe dejar a reducir al conjunto de líneas o causando el pánico rutina. También es posible que desee asegurarse de que usted no está tratando de eliminar un objeto del montón cuya propiedad fue transferida a otro objeto del montón (probablemente a través de una llamada a un método, que no se explica claramente este hecho) que ya ha eliminado ese objeto antes de que va a eliminar de forma explícita . He sido mordido por éste antes.

Mi vago entendimiento es que el usuario 44 y 45 USUARIO pánicos ambos tienen que ver con los problemas del montón. El problema más común sería una doble eliminación. ¿Está NULL'ing sus punteros después de borrarlos? ¿Estás mirando contra NULL antes de eliminarlos? ¿Dónde podría ser el doble de borrado algo?

La opción más fácil para la depuración es probablemente usar carburo de 2.0, ya que es con todas las funciones y de libre acceso.

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