Portál AbcLinuxu, 1. června 2025 22:19
Breberka a Intel
19.10.2006 19:19
| Přečteno: 1130×
Tak si tak ladim a najednou modrá smrt.
Docela zajímavé chování jsem vypozoroval s různými překladači u následujícího bugu:
void function()
{
float params[3];
float fValue = params[3];
}
K indexování je v té konkrétní situaci samozřejmě proměnná, nakonec intel je tak chytrej, že by při tomhle konkrétním případě hodil warning, že šahám mimo moji paměť. Zajímavé bylo ale to, jak se to chovalo při následujících pokusech. Na widlích v VC buildnuto Micro$oftím překladačem i Intelem v debugu to normálně chodilo (ani mě to moc nepřekvapuje), v releasu to však s M$ zahlásilo (co bych tak nějak čekal) "Access Violation", zatímco s Intelem nastala zmíněná modrá smrt (kvůli tomu sem to taky začal takle testovat). V linuxu to bylo obdobný. S gcc "Segmentation Fault", s Intelem totální zátuh, prostě se nehnula ani myš ani NumLock, jednoduše reset na bedně. Upozorňuji, že se normálně takovéto chyby přeložené s icc daří systému(ům) normálně zachytit, ale tohle mi je trochu záhadou.
Při změně "float params[3];" na "float params[4];" vše funguje. Vždy je pravda možné, že chyba s přístupem do paměti nastala již dříve, a padá to až někde dál, to ale nemění nic na tom, že bych očekával, že to systém zachytí a nedovolí procesu způsobit takovejhle crash.
Tiskni
Sdílej:
Komentáře
Vložit další komentář
19.10.2006 21:29
nula | skóre: 22
| blog:
archaic
Re: Breberka a Intel
Založit nové vlákno •
Nahoru
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.