Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: ftejada en 19 Abril 2014, 13:40 pm



Título: Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation
Publicado por: ftejada en 19 Abril 2014, 13:40 pm
Hola Gente! soy nuevo en el foro y es la primera vez que escribo.

Haber.... tengo un programa que estoy creando, en el que utilizo dos librerias (Ogre3d y PhysX 3.3) para intentar unirlas.

Alguien podría explicarme por qué tipo de causas sale el error: Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation He leido por ahí que se refiere a que el programa intenta acceder a parte de la memoria que está reservada o algo así.

La verdad es que es mucho codigo para subirlo y si subo el "solution" de Visual C++ 2010 tendríais que instalar ambas librerias para poder compilarlo y ejecutarlo, por lo que simplemente me gustaría saber por qué, o mejor dicho, qué tipo de causas provocan este error y así intentar averiguar donde está el problema de mi aplicación y solucionarlo.

La aplicacion es muy simple, creo un "plano" como suelo y una caja a una altura determinada. Al correr la aplicacion la caja empieza a caer por la gravedad hasta que colisiona contra el suelo.
El caso es que he conseguido que la aplicación corra durante unos segundos, pero pasado ese tiempo la IDE se sale del programa y me salta el error.

Bueno espero vuestra ayuda. Saludos y gracias.


Título: Re: Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation
Publicado por: ivancea96 en 19 Abril 2014, 13:56 pm
Access violation es que accedes a zonas de memoria que no tienes permitidas. Quizás sea un problema con punteros. Revisa que los punteros nunca apunten a zonas de memoria más allá de tu programa.

¿Algún puntero mal puesto?


Título: Re: Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation
Publicado por: ftejada en 19 Abril 2014, 20:07 pm
Access violation es que accedes a zonas de memoria que no tienes permitidas. Quizás sea un problema con punteros. Revisa que los punteros nunca apunten a zonas de memoria más allá de tu programa.

¿Algún puntero mal puesto?
Como puedo ver si un puntero apunta a una zona de memoria mas allá de mi programa???



Título: Re: Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation
Publicado por: xiruko en 19 Abril 2014, 23:57 pm
Como puedo ver si un puntero apunta a una zona de memoria mas allá de mi programa???

Depura tu programa. Si no sabes, aprende a hacerlo ya que es algo indispensable en un programador. Básicamente tienes dos opciones:

1. Usar algún depurador tipo gdb, o alguno que ya esté en el IDE que uses. Aquí puedes usar breakpoints, ver en cada instrucción el valor de tus variables, la pila, etc. Tienes muchísima información pero no es algo que se aprenda en dos días.

2. Usar printf() en puntos claves de tu programa para conseguir averiguar donde te tira ese error. Puedes poner cosas como "Puntero inicializado", "Antes del for", etc etc, así como imprimir los valores que tengan tus variables. Menos información pero más fácil de hacer, y muchas veces con esto se consigue ver el fallo tonto que hace que no corra el programa.

Yo probaría con la segunda opción para ver si con un poco de suerte eso es suficiente para encontrar el error, pero no estaría de más que fueras echándole un ojo al depurador que más te guste e ir aprendiendo a manejarlo.

Saludos.


Título: Re: Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation
Publicado por: ivancea96 en 20 Abril 2014, 02:09 am
Si dices que es mucho código, puedes empezar revisando ciclos donde trabajes con matrices, o revisar operator[] de vectores, en caso de que uses.


Título: Re: Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation
Publicado por: P3RV3RT en 20 Abril 2014, 03:11 am
Pon breakpoints en varias funciones del programa (en el codigo ) para saber mas o menos de donde viene ese error... Una vez localizada la funcion, analizalo instruccion a instruccion, con el debugger de VS mejor, asi iras comprobando los valores que tienen tu variables y las que "deberian" de tener...

Como ya han comentado antes, ese error es debido a que un puntero esta apuntando  y seguramente modificando donde no tiene acceso, o en un array donde estas poniendo mas datos de los que soporta tu array...
 


Título: Re: Excepcion no controlada en 0xcdcdcdcd en xxxxxxx.exe:0xC0000005:Access violation
Publicado por: ftejada en 20 Abril 2014, 14:47 pm
Voy indagar con la informacion que me habeis dado, haber si consigo encontrar el problema y solucionarlo. En dos o tres dias os contesto a ver qué pasó ya que ahora estoy fuera.
Muchas gracias a todos por la ayuda.