Martes 12 de Noviembre de 2024, 20:56
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
tiny_malloc error? Agradecería mucho la ayudita :(
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: tiny_malloc error? Agradecería mucho la ayudita :( (Leído 2200 veces)
Phass
Nuevo Miembro
Mensajes: 13
tiny_malloc error? Agradecería mucho la ayudita :(
«
en:
Jueves 30 de Diciembre de 2010, 14:55 »
0
Hola !! He intentando ejecutar mi proyecto fin de carrera y me he encontrado en que en varias de esas ejecuciones me sale este error de "tiny_malloc..." y no tengo ni idea de por qué puede ser por más vueltas que le doy...
Código: C++
(
gdb
)
bt
#0 0x93992338 in tiny_malloc_from_free_list ()
#1 0x9398b1cd in szone_malloc ()
#2 0x9398b0d8 in malloc_zone_malloc ()
#3 0x9398b06c in malloc ()
#4 0x90b27598 in operator new ()
#5 0x0000bd48 in __gnu_cxx::new_allocator<unsigned long>::allocate ()
#6 0x0000bd72 in std::_Bvector_base<std::allocator<bool> >::_M_allocate ()
#7 0x0000dbe8 in std::vector<bool, std::allocator<bool> >::_M_insert_aux ()
#8 0x0000dd95 in std::vector<bool, std::allocator<bool> >::push_back ()
#9 0x00003618 in Poblacion::Cruce_uniforme ()
#10 0x000060db in Algoritmo::Algoritmo ()
#11 0x00006c89 in Algoritmo::Algoritmo ()
#12 0x00008f7a in main ()
Alguien tiene idea? La verdad es que os agradecería mucho la ayuda ya que en teoría mi proyecto está finalizado, pero si me ocurre esto en algunas ejecuciones no puedo experimentar...
Muchas gracias a todos como siempre
Tweet
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #1 en:
Jueves 30 de Diciembre de 2010, 15:13 »
0
A lo mejor algunos somos programadores, pero no adivinos (por lo menos que yo sepa)
Deberías poner en qué parte del código te saltan esos errores. Igualmente a primera vista parece algo de falta de memoria, aunque sin más detalles es imposible de saber.
Saludos
Fr33k K0mpu73r
Phass
Nuevo Miembro
Mensajes: 13
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #2 en:
Jueves 30 de Diciembre de 2010, 15:27 »
0
Bueno cabe decir que ese error me sale también en otras partes del proyecto, pero la función donde sale éste es la sguiente:
Código: C++
void
Poblacion
::
Cruce_uniforme
(
Individuo
&
padre1, Individuo
&
padre2,
Individuo
&
hijo1, Individuo
&
hijo2
)
{
// Lo primero de todo sera generar dos mascaras aleatorias, una para los
// parametros booleanos y otro para los reales
vector
<
bool
>
mascara_booleana
(
0
)
;
vector
<
bool
>
mascara_reales
(
0
)
;
for
(
int
i
=
0
;
i
<
padre1.
operacion_escalar
.
size
(
)
;
i
++
)
{
float
b
=
padre1.
Numeros_Aleatorios_Entre_a_y_b
(
0
,
1
)
;
if
(
b
>=
0.5
)
mascara_booleana.
push_back
(
1
)
;
else
mascara_booleana.
push_back
(
0
)
;
}
for
(
int
i
=
0
;
i
<
padre1.
parametros_reales
.
size
(
)
;
i
++
)
{
float
b
=
padre1.
Numeros_Aleatorios_Entre_a_y_b
(
0
,
1
)
;
if
(
b
>=
0.5
)
mascara_reales.
push_back
(
1
)
;
else
mascara_reales.
push_back
(
0
)
;
}
// En este punto se tienen generadas de forma aleatoria unas mascaras que seran
// distintas para cada cruce.
/* La politica de cruce a uilizar sera la siguiente:
Si 1 en Mascara -> Parametro del padre1 para el hijo1
Si 0 en Mascara -> Parametro del padre2 para el hijo1
Si 1 en Mascara -> Parametro del padre2 para el hijo2
Si 0 en Mascara -> Parametro del padre1 para el hijo2
*/
// Aplicamos el cruce selectivo con la politica anterior para crear el hijo1 y
// el hijo 2
for
(
int
i
=
0
;
i
<
mascara_booleana.
size
(
)
;
i
++
)
{
if
(
mascara_booleana
[
i
]
==
1
)
{
hijo1.
operacion_escalar
.
push_back
(
padre1.
operacion_escalar
[
i
]
)
;
hijo2.
operacion_escalar
.
push_back
(
padre2.
operacion_escalar
[
i
]
)
;
}
else
{
hijo1.
operacion_escalar
.
push_back
(
padre2.
operacion_escalar
[
i
]
)
;
hijo2.
operacion_escalar
.
push_back
(
padre1.
operacion_escalar
[
i
]
)
;
}
}
for
(
int
i
=
0
;
i
<
mascara_reales.
size
(
)
;
i
++
)
{
if
(
mascara_reales
[
i
]
==
1
)
{
hijo1.
parametros_reales
.
push_back
(
padre1.
parametros_reales
[
i
]
)
;
hijo2.
parametros_reales
.
push_back
(
padre2.
parametros_reales
[
i
]
)
;
}
else
{
hijo1.
parametros_reales
.
push_back
(
padre2.
parametros_reales
[
i
]
)
;
hijo2.
parametros_reales
.
push_back
(
padre1.
parametros_reales
[
i
]
)
;
}
}
}
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #3 en:
Jueves 30 de Diciembre de 2010, 20:32 »
0
¿Y dónde exactamente en dicho método?
Fr33k K0mpu73r
Phass
Nuevo Miembro
Mensajes: 13
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #4 en:
Jueves 30 de Diciembre de 2010, 21:01 »
0
No tengo ni idea, es solo el error que produce el depurador... me han dicho por ahí que puede que sea problema del kernel de Mac Os a la hora de asignar memoria... pero buf, ni idea....
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #5 en:
Jueves 30 de Diciembre de 2010, 22:13 »
0
Dudo mucho que sea un error del kernel. Depúralo y así ves dónde ocurre exactamente.
Un saludo.
Fr33k K0mpu73r
Phass
Nuevo Miembro
Mensajes: 13
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #6 en:
Jueves 30 de Diciembre de 2010, 22:25 »
0
Eso que puse al principio ya es la depuración del gdb... no muestra nada mas
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #7 en:
Viernes 31 de Diciembre de 2010, 01:18 »
0
Me refiero a que lo ejecutes paso a paso y enlazar el fuente para que vayas viendo justo donde pasa. Hay muchas formas de depurar
Fr33k K0mpu73r
Phass
Nuevo Miembro
Mensajes: 13
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #8 en:
Viernes 31 de Diciembre de 2010, 01:28 »
0
y cómo hago eso? ya se me escapa... jeje gracias
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #9 en:
Viernes 31 de Diciembre de 2010, 01:47 »
0
Lo siento, pero ahora mismo no tengo tiempo para escribir un tutorial sobre GDB. Puedes consultar el mismo manual de GDB o tu amigo Google
Fr33k K0mpu73r
Phass
Nuevo Miembro
Mensajes: 13
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #10 en:
Viernes 31 de Diciembre de 2010, 12:30 »
0
A ver he estado toda la noche sin dormir intentando depurar y parece que ahora el unico error que me sale es el siguiente:
Código: C++
#0 0x93992338 in tiny_malloc_from_free_list ()
#1 0x9398b1cd in szone_malloc ()
#2 0x9398b0d8 in malloc_zone_malloc ()
#3 0x9398b06c in malloc ()
#4 0x90b27598 in operator new ()
#5 0x0000b828 in __gnu_cxx::new_allocator<unsigned long>::allocate (this=0xbffff4d4, __n=1) at ext/new_allocator.h:88
#6 0x0000b852 in std::_Bvector_base<std::allocator<bool> >::_M_allocate (this=0xbffff4d4, __n=6) at stl_bvector.h:389
#7 0x0000b86c in std::vector<bool, std::allocator<bool> >::_M_initialize (this=0xbffff4d4, __n=6) at stl_bvector.h:468
#8 0x0000bafd in std::vector<bool, std::allocator<bool> >::operator= (this=0xbffff4d4, __x=@0x802750) at stl_bvector.h:707
[
b
]
#9 0x000048a9 in Individuo::Individuo (this=0xbffff4d4, rhs=@0x802750) at Individuo.H:171
#10 0x0000492a in Individuo::Individuo (this=0xbffff4d4, rhs=@0x802750) at Individuo.H:174[/b]
#11 0x000055f9 in Algoritmo::Algoritmo (this=0xbffff8c4, var=2, ops_L=6, pob=50, inf=-1, sup=1, fich=@0xbffff94c, sel=1, cru=3, mut=1, rep=1, pc=0.899999976, pm=0.100000001, tp=10000, el=1) at Algoritmo.H:287
#12 0x000064cf in Algoritmo::Algoritmo (this=0xbffff8c4, var=2, ops_L=6, pob=50, inf=-1, sup=1, fich=@0xbffff94c, sel=1, cru=3, mut=1, rep=1, pc=0.899999976, pm=0.100000001, tp=10000, el=1) at Algoritmo.H:495
#13 0x000087d1 in main () at main_con_SLP_punto_H.cpp:308
Parece problema de Individuo::Individuo (this=0xbffff4d4, rhs=@0x802750) at Individuo.H y la funcion es :
Código: C++
Individuo
::
Individuo
(
const
Individuo
&
rhs
)
{
tamanio
=
rhs.
tamanio
;
max_operations_L
=
rhs.
max_operations_L
;
limite_inferior
=
rhs.
limite_inferior
;
limite_superior
=
rhs.
limite_superior
;
fitness
=
rhs.
fitness
;
operacion_escalar.
resize
(
0
)
;
-
>
line
170
operacion_escalar
=
rhs.
operacion_escalar
;
parametros_reales.
resize
(
0
)
;
parametros_reales
=
rhs.
parametros_reales
;
-
>
line
173
}
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: tiny_malloc error? Agradecería mucho la ayudita :(
«
Respuesta #11 en:
Sábado 1 de Enero de 2011, 19:58 »
0
¿Ése es el constructor de la clase
Individuo
pero recibe un puntero a un objeto
Individuo
? ¿Y cómo creas un objeto
Individuo
en el primer momento? Aparte, te aconsejo que siempre que pases punteros a métodos, compruebes si es un puntero válido (no nulo).
Aparte, está claro que tu problema es de alocación de memoria. ¿Has comprobado si hay memoria disponible para crear este nuevo objeto?
Saludos
Fr33k K0mpu73r
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
tiny_malloc error? Agradecería mucho la ayudita :(