Ich hatte Probleme mit dem gleichen Programm, weil es viele Speicherzuweisungen macht. Ich bin die meisten Probleme losgeworden, aber ich habe immer noch Probleme mit einem bestimmten Problem. Wenn ich mein Programm in Eclipse lief es kompiliert gut, aber es stürzt mit dieser NachrichtSpeicherprobleme, die mein c-Programm zum Absturz bringen, aber es stürzt beim Debuggen nicht ab?
*** glibc detected *** /home/user/workspace/TTPrueba/Debug/TTPrueba: free(): invalid pointer: 0xb6bc0588 ***
Als ich es lief mit Valgrind es mir diese
==31580== Process terminating with default action of signal 11 (SIGSEGV)
==31580== Access not within mapped region at address 0x0
==31580== at 0x804BEA3: termino (Menu.c:899)
==31580== by 0x804BE05: computar_transformadas (Menu.c:840)
So das Problem sagt, ist, dass es kostenlos versucht eine ungültige Speicheradresse, aber dann gehe ich im Debug-Modus Schritt für Schritt und das Programm stürzt nie !!!! :(
Jede Idee, warum so etwas passieren könnte? Wie kommt es funktioniert beim Debuggen, aber nicht beim Laufen? Das ist ziemlich seltsames Verhalten.
for(phi=0;phi<360;phi++){
for(j=0;j<par.param1[phi][0];j++){
for(o=0;o<(par.prueba[phi][j][1]-par.prueba[phi][j][0]);o++){//AQUI 849
free(par.pixels[phi][j][o]);//HERE IS LINE 899 WHERE IT ALWAYS CRASHES
if(o==(par.prueba[phi][j][1]-par.prueba[phi][j][0]-1))
free(par.pixels[phi][j]);
}
free(par.prueba[phi][j]);
}
Danke für die Hilfe!
Ah. Die schöne - und nicht * fast * seltene genug - [Heisenbug] (http://en.wikipedia.org/wiki/Heisenbug) in seinem natürlichen Lebensraum. Sehen Sie das schöne Tarnmuster des Gefieders? Was ist das? Du kannst es nicht sehen? Nun ja. So weißt du, dass es da ist. – dmckee
Im Debugger der Speicher möglicherweise Null, in Ihrem Programm ist dies möglicherweise nicht der Fall. Versuchen Sie, Ihre Mallocs in Callocs zu ändern. – Mikhail
"Ich gehe Schritt für Schritt im Debug-Modus und das Programm stürzt nie !!!!" - Willkommen in der Welt des Debuggens! –