Aplicacion 32bits en maquina de 64

Horst H. von Brand vonbrand en inf.utfsm.cl
Mar Abr 22 17:19:41 CLT 2008


Rodrigo Javier Tobar Carrizo <rtobar en alumnos.inf.utfsm.cl> wrote:
> Alvaro Herrera escribió:
> > Rodrigo Javier Tobar Carrizo escribió:
> >
> >> Program received signal SIGSEGV, Segmentation fault.
> >> 0x080495cd in generate_new_population () at subgalaxyfinder.c:763
> >> 763             GalA[numgal].BulgeMass         = 0.0;
> >> (gdb)
> >>
> >> Es decir, se me cae en una asignacion, asi de simple.
> > Esto no es "simplemente una asignacion" -- estas dereferenciando el
> > puntero GalA.  Quizas GalA es nulo, o bien GalA[numgal] apunta mas alla
> > del fin de la memoria.
> > Fijate cuanto valen GalA y numgal en ese punto.
> 
> Si, por supuesto que lo hice... por eso hice todo el pasteleo de
> revisar. GalA es un puntero valido, y numgal esta dentro del scope del
> arreglo. De hecho, si le hago un printf funciona, o, como mencione
> tambien, si dentro de gdb hago un "set GalA[numgal] = 0", tambien
> funciona. Por eso me resulta raro.

Compilado con que opciones de optimizacion? Que compilador? Porque con -O2
gcc (al menos los mas nuevos) hacen reorganizaciones del codigo que te
harian salir los ojos de la cabeza... y en consecuencia, que te diga que se
cae alli puede ser completamente errado.

Otrosi, comunmente al analizar un core con gdb miente descaradamente sobre
como/donde se cayo, hay que correr el programa en gdb por si las dudas.

Caidas "en diferentes partes" suelen ser mas bien indicaciones de problemas
de hardware (recalentamiento de la CPU, RAM malona, bajones de voltaje/
fuente de poder sobreexigida, ...)
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                    Fono: +56 32 2654431
Universidad Tecnica Federico Santa Maria             +56 32 2654239
Casilla 110-V, Valparaiso, Chile               Fax:  +56 32 2797513


Más información sobre la lista de distribución Linux