Curiosita' tecnica
Enrico Colombini
erix a erix.it
Gio 27 Feb 2003 08:36:57 UTC
Un mio programma C dava "segmentation fault" a causa di un errore. Fin qui
niente di strano, ma mi incuriosisce la modalita' della cosa:
La causa del segfault era una serie di letture al di fuori dei limiti di un
array. Il segfault pero' avveniva piu' tardi, in occasione di una scrittura
perfettamente lecita in un altro array.
Potevo eseguire tutte le letture "out of bounds" che volevo senza problemi, ma
alla prima scrittura (ho provato a spostarla anche fuori della funzione
incriminata) andava in segfault.
Non conosco i dettagli del meccanismo di protezione della memoria di Linux.
Qualcuno ha una spiegazione?
.Erix.
Maggiori informazioni sulla lista
Lug
|