Сақтаудың бұзылуы - Storage violation

Жылы есептеу а сақтауды бұзу бұл аппараттық немесе бағдарламалық жасақтама Кінә а болған кезде пайда болады тапсырма аймағына кіруге тырысады компьютер сақтау орны оған қол жеткізуге рұқсат етілмеген.

Сақтауды бұзудың түрлері

Сақтауды бұзу, мысалы, тапсырмаға жатпайтын сақтауды оқудан, жазудан немесе босатудан тұрады. Сақтауды бұзудың кең тараған түрі а деп аталады стек буферінің толып кетуі мұнда бағдарлама оған қойылған шектен асуға тырысады шақыру стегі. Сондай-ақ, ол жадтың толық қорғалмаған (немесе жоқ) қорғанысы бар басқа жіпке «тиесілі» жадыны өзгертуге әрекеттенуі мүмкін.

Сақтау ережелерін бұзуды болдырмау

Сияқты транзакциялық жүйелерде сақтаудың бұзылуы орын алуы мүмкін CICS транзакцияға жатпайтын қоймаға жазуға болатын жағдайларда; сияқты мүмкіндіктерді қосу арқылы мұндай бұзушылықтарды азайтуға болады сақтау қорғанысы және транзакцияны оқшаулау.

Сақтаудағы бұзушылықтарды анықтау

Сақтаудағы бұзушылықтарды анықтау қиынға соғуы мүмкін, өйткені бағдарлама бұзылғаннан кейін оның бұзылуынан бұрын белгілі бір уақыт аралығында жұмыс істей алады. Мысалы, жадтың босатылған аймағына сілтегішті сақтауға болады және кейінірек қате тудыруы мүмкін. Нәтижесінде күш-жігер проблемалар байқалғаннан кейін емес, бұзушылықтар болған кезде анықтауға бағытталады.

CICS сияқты жүйелерде сақтауды бұзу кейде анықталады (CICS арқылы) ядро ) «қолтаңбаларды» қолдану арқылы, олардың үстінен жабылғандығын тексеруге болады.

Қосымша шығындар есебінен сақтаудың бұзылуын жақсы анықтау үшін жұмыс уақытының альтернативті кітапханасын пайдалануға болады.[1] Кейбір бағдарламалау тілдері бағдарламалық жасақтаманы қолданады шекараларды тексеру осы жағдайлардың алдын алу үшін.

Кейбір бағдарлама түзету бағдарламалық қамтамасыздандыру тестілеу кезінде бұзушылықтарды анықтайды.

Жалпы себептері

  • Іске қосу уақытында сілтемені өзгертуді заңсыз пайдалануға әкелетін қашып кететін индекс.
  • Шақырылған және шақырушы элементтер арасындағы байланыс схемасының сәйкес келмеуі.
  • Бұрын босатылған (және кейде қазірдің өзінде қайта бөлінген) жадыны пайдалану.

Сақтаудың бұзылуын анықтайтын бағдарламалық жасақтама мысалдары

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Debloc Malloc Library». Dmalloc - Debloc Malloc кітапханасы. Алынған 2017-04-26.

Сыртқы сілтемелер