Re: C++ havarující program
Petr Labaj
labaj na volny.cz
Pondělí Srpen 9 16:37:44 CEST 2021
Teď budu určitě působit jako lunetic, že jsem to nevěděl.
Ale ta metoda, že se mezi zásobník a statické proměnné vloží protected
stránka, mi připadá jako hodně chytré řešení. Že pak sestupující
zásobník nemůže přepsat ta statická data (pokud jsem to teda správně
pochopil).
Takže díky za tuhle informaci.
PL
***********************
Dne 9.8.2021 v 14:06 Tomáš Hamouz napsal(a):
> Re: C++ havarující program Sice pozdě, ale přece.
> Pokud se ve Win nic nezměnilo, tak se fyzicky při startu vlákna
> alokovaly pro zásobník jen dvě stránky, z toho první RW a druhá
> protected. V okamžiku jakéhokoliv přístupu k té protected stránce se
> vyvolala výjimka, ve které se buď přialokovala další stránka (tedy
> stávající se změnila na RW a přidala se nová, označená jako
> protected), nebo, při překročení limitu, se vygenerovala chyba.
> V uvedeném příkladu vlastní definice data[] nic nealokuje, jen posune
> SP. K přístupu dojde až v okamžiku kdy se vytváří stack frame při
> volání další funkce, tím je dané zpoždění mezi "přealokací" a
> vyvoláním chyby.
>
> Tomáš
Další informace o konferenci Hw-list