Error muy raro

07/08/2003 - 11:22 por jose | Informe spam
Hola grupo,

Estoy desarrollando una aplicación usando las MFC's.
En una de las clases, se produce el siguiente error:
Unhandled exection in "Nombre del programa" (MSVCRTD.DLL): 0xC00000005:
Access Violation.

Mirando el stack veo que el error se produce al ejecutar el siguiente
código, aunque no siempre que se ejecuta !!!:
if(m_cs == _T("")) return;
m_cs es una variable CString privada de la clase.

¿Alguna sugerencia?

Muchas gracias,

Jose

Preguntas similare

Leer las respuestas

#1 Luis Gómez Sánchez [MS]
08/08/2003 - 09:47 | Informe spam
El error se produce porque se está intentando acceder a una posición de
memoria no válida. En cuanto a la línea que provoca el problema, podrías
modificarla por:
if(m_cs.IsEmpty()) return;

Un saludo.
Luis Gómez
Microsoft Product Support Services
Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no
otorga ningún derecho.



"jose" wrote in message
news:
Hola grupo,

Estoy desarrollando una aplicación usando las MFC's.
En una de las clases, se produce el siguiente error:
Unhandled exection in "Nombre del programa" (MSVCRTD.DLL): 0xC00000005:
Access Violation.

Mirando el stack veo que el error se produce al ejecutar el siguiente
código, aunque no siempre que se ejecuta !!!:
if(m_cs == _T("")) return;
m_cs es una variable CString privada de la clase.

¿Alguna sugerencia?

Muchas gracias,

Jose
Respuesta Responder a este mensaje
#2 jose
08/08/2003 - 11:17 | Informe spam
En modo release el programa funciona perfectamente !!!

La clase CString contiene el puntero m_pchData. Al hacer una llamada a una
función que no utiliza la variable, este puntero pasa a tener un valor NULL
y es cuando se produce el error.

¿A alguien le ha pasado algo similar?
¿Algún enfoque para encontrar la solución?


"Jaime Stuardo" wrote in
news::

Puede ser que el error esté antes. Muchas veces los errores no se
manifiestan donde debieran, sino que mucho más adelante. Te espera una
ardua tarea de depuración.

Ahora... lo más probable es que el problema sea en alguna función de
la biblioteca CRT, como por ejemplo, strcpy, strcmp, etc. Mira en tu
código si tienes algunas de esas llamadas.

Salu2
Jaime

"jose" wrote in message
news:
Hola grupo,

Estoy desarrollando una aplicación usando las MFC's.
En una de las clases, se produce el siguiente error:
Unhandled exection in "Nombre del programa" (MSVCRTD.DLL):
0xC00000005:
Access Violation.

Mirando el stack veo que el error se produce al ejecutar el siguiente
código, aunque no siempre que se ejecuta !!!:
if(m_cs == _T("")) return;
m_cs es una variable CString privada de la clase.

¿Alguna sugerencia?

Muchas gracias,

Jose





Respuesta Responder a este mensaje
#3 iflores
08/08/2003 - 11:44 | Informe spam
Este tipo de errores suelen venir provocados porque en algún sitio (que no
tiene que ser precisamente donde el programa acaba petando) se hace un
acceso a memoria erroneo (por ejemplo escribes más allà del espacio asignado
a un array mediante un new) esto puede provocar que el programa no pete en
ese momento si la dirección de memoria accedida/modificada es del proceso
pero que pete más adelante cuando se quiere utilizar lo que había en esa
posición (que podría ser otra variable importante) Además puede pasar que en
release funcione y en debug no o biceversa ya que las variables se guardan
en sitios diferentes.

Estos errores son difíciles de encontrar ya que no sabes donde demonios la
cosa empieza a perder aceite, así que te recomiendo repasar bien todos los
new y posteriores accesos a esas variables, ir quitando trozos de código y
ver si sigue petando, descartar opciones y... paciencia.

Saludos


Ismael Flores
-
CIRCONTROL, S.A.
Baldrich 222
08223 - Terrassa
SPAIN
Tel. +34 937362940
Fax. +34 937362941
E.mail:
WEB: www.circontrol.com
-

"jose" escribió en el mensaje
news:
En modo release el programa funciona perfectamente !!!

La clase CString contiene el puntero m_pchData. Al hacer una llamada a una
función que no utiliza la variable, este puntero pasa a tener un valor


NULL
y es cuando se produce el error.

¿A alguien le ha pasado algo similar?
¿Algún enfoque para encontrar la solución?


"Jaime Stuardo" wrote in
news::

> Puede ser que el error esté antes. Muchas veces los errores no se
> manifiestan donde debieran, sino que mucho más adelante. Te espera una
> ardua tarea de depuración.
>
> Ahora... lo más probable es que el problema sea en alguna función de
> la biblioteca CRT, como por ejemplo, strcpy, strcmp, etc. Mira en tu
> código si tienes algunas de esas llamadas.
>
> Salu2
> Jaime
>
> "jose" wrote in message
> news:
>> Hola grupo,
>>
>> Estoy desarrollando una aplicación usando las MFC's.
>> En una de las clases, se produce el siguiente error:
>> Unhandled exection in "Nombre del programa" (MSVCRTD.DLL):
>> 0xC00000005:
>> Access Violation.
>>
>> Mirando el stack veo que el error se produce al ejecutar el siguiente
>> código, aunque no siempre que se ejecuta !!!:
>> if(m_cs == _T("")) return;
>> m_cs es una variable CString privada de la clase.
>>
>> ¿Alguna sugerencia?
>>
>> Muchas gracias,
>>
>> Jose
>
>
>

Respuesta Responder a este mensaje
#4 iflores
08/08/2003 - 13:53 | Informe spam
Hola Jose,

No hay de que por la respuesta. A mi me ha pasado alguna vez y la verdad es
que te vuelves loco para encontrarlo. A mi me funciona bastante bien el ir
comentando trozos de código hasta que ya no peta. Eso te da muchas pistas.
La clase CString nunca me ha dado problemas y no será porque no la utilice.

Saludos y suerte.

Ismael Flores
-
CIRCONTROL, S.A.
Baldrich 222
08223 - Terrassa
SPAIN
Tel. +34 937362940
Fax. +34 937362941
E.mail:
WEB: www.circontrol.com
-

"jose" escribió en el mensaje
news:
Hola Ismael,

Ante todo, muchas gracias por responder.
Creo que tienes razón y que el error debe estar en la línea de lo que tú
has apuntado y que el uso que hago de la variable CString no está
involucrado en el problema. Investigaré en esta dirección.

Reitero las gracia.

Jose


Respuesta Responder a este mensaje
#5 Alberto Tostado
08/08/2003 - 14:02 | Informe spam
Podría ser que la instancia de la clase
donde reside la variable m_cs no esté
instanciada. ¿¿Puede ser que se te haya
olvidado hacer el new??

Mira el contenido del puntero this en el
contexto del "casque" para ver si apunta
a basura, NULL o cualquier otra guarrería.

Un saludo.
Alberto Tostado.




Hola grupo,

Estoy desarrollando una aplicación usando las MFC's.
En una de las clases, se produce el siguiente error:
Unhandled exection in "Nombre del programa"


(MSVCRTD.DLL): 0xC00000005:
Access Violation.

Mirando el stack veo que el error se produce al ejecutar


el siguiente
código, aunque no siempre que se ejecuta !!!:
if(m_cs == _T("")) return;
m_cs es una variable CString privada de la clase.

¿Alguna sugerencia?

Muchas gracias,

Jose
.

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida