Re: C++ havarující program

Petr Labaj labaj na volny.cz
Pondělí Srpen 9 17:49:58 CEST 2021


No já jsem to myslel tak, že mezi zásobník a ostatní proměnné dám tu 
zarážku protected paměti.
Takže pokud tak ohraničím zásobník z obou stran, tak poznám (a můžu 
ošetřit) přetečení a podtečení.

PL

***********************

Dne 9.8.2021 v 17:40 Jaroslav Buchta napsal(a):
> Ono je to myslim bezne u vsech modernich OS s virtualizaci pameti. Asi 
> mozna ani nejde o to, ze by stranka pameti byla chranena, ale proste 
> nema pridelenou fyzickou pamet. Aplikace ma k dispozici teoreticky 4GB 
> (32 bit) pameti ale fyzicka pamet se mapuje v nekterych oblastech az v 
> pripade potreby. Stejne je to myslim u haldy. Pristup vyvola vyjimku a 
> OS to osetri. Pokud zjisti, ze chce zasobnik vetsi, nez je nastaveny 
> limit, tak aplikaci odstreli.
>
>
> Dne 09.08.2021 v 16:37 Petr Labaj napsal(a):
>> 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áš
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list