[ LUGOS ] coredump

Boris Benko Boris.Benko na telekom.si
Pon Dec 29 07:32:24 CET 1997


> Tako sem tudi do zdaj delal... :) Samo rata malo nepregledno... Sploh pa
> sedaj, ko se mi je program ene parkrat tko brez razloga sesul, v core
> dumpu je pa vse kar dobim ene par vprasajev in da je bil crash v libc oz
> kakem drugem libu... Vse kaze na nek zelo lep in ucinkovit memory
> overrun/underrun, ki ga bo treba prej ali slej najt... :)

Aha. Se pravi, da se program vseeno sesuva. Coredump pa bi vseeno po moje
moral biti dober. Jaz sem imel problem, da sem vracal pomnilnik, ki je ze bil
vrnjen, pa ga je razneslo nekje globoko v sistemski funkciji. Nic nisem mogel
razbrati (stack je bil drugi, nic ni resolval v simbole)...

> Well, kindof... Sem dobil idejo, da bom pred in za vsak malloc/calloc
> naredil kak 'dump' :) Uf, tega je na tone... :(
>

Tega pa je res malo dosti. Jaz bi prej naredil takole... Napisal bi makroje,
ki bi "prekrila" funkciji malloc in free (ali kar pac rabis) in bi spremljal,
kaj se alocira in kaj se vraca. Pred vsakim memcpy ali strcpy (ali kar pac
uporabljas), pa bi adreso verificiral (t.j., da ni bila ze prej s cim
povozena)... Alocirane adrese hashiras, tako da takole preverjanje naslovov ne
pozre dosti casa...

Jaz sem na ta nacin nasel eno napako mogoce pol leta nazaj (ob tem pa se 3
druge :-( )... Aha... Pa upam,da ne delas
kaksnih napak v stilu:

char *funkcija_ki_rada_kopira_niz(const char *izvorni)
{
    char ponorni[255];

    if(strlen(izvorni)>254) return NULL;
    return strcpy(ponorni,izvorni);
}

=b

--
============================================================================
Boris Benko, dipl.ing.                | E-mail: Boris.Benko na telekom.si
Telekom Slovenije, PE Murska Sobota   |         B.Benko na s-gms.ms.edus.si
Senior Prog./Sys admin./Informatik    |         Boris.Benko na computer.org
Slu§ba za informatiko                 | Phone: +386 69 31 676
                                      |        +386 69 37 800 21
============================================================================





Dodatne informacije o seznamu Starilist