gcc vs. egcs

Petr Mojzisek P.Mojzisek na sh.cvut.cz
Čtvrtek Březen 11 20:58:50 CET 1999


> > Nejprve jsem používal gcc. Ten oba programy přeložil, avšak oba ve
> > stejném místě spadnou. Padá to v jedné ze sady rutin, o kterou tady jde.
> > Konkrétně to tam leze za alokované pole...
> 
> Pokud jsem to dobre pochopil, tak se neni co divit, ze program spadne,
> kdyz saha kam nema.

Tak tomu taky rozumím. Zajímavé je, že tato skutečnost nenastane při
překladu egcs.
Tam to vypadá, že to sahá dobře.

> > Pak jsem zkusil egcs. Prog1 se tvářil, že funguje a snad tomu tak i je.
> > Prog2 ovšem ne. Sice proleze ono kritické místo, kde to padalo při
> > překladu gcc, ale spadne o kus dál. A teď ten gól. Spadne to ve funkci
> > malloc. Jo. Proste to chytne SIGSEGV v mallocu.
> 
> Na tom neni nic divneho. Pokud program hrabne kam nema a prepise neco
> duleziteho, muze to pozdeji spadnout skoro kdekoliv a zdanlive naprosto
> nelogicky. Doporucuju zkusit ElectricFence, ktere by melo zajistit, ze
> program spadne tam, kde k chybe v pristupu dopameti doslo.

Tu EFence zkusím. Ale ještě jednou: ten prog1 pod egcs funguje!!!! Pod
gcc ne.
Prog2 nefunguje podobojí a padá ve funkci malloc. Paměti je dost, ale to
není zřejmě relevantní.


Další informace o konferenci Linux