|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.08.2012, 18:42 | #11 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
05.08.2012, 19:05 | #12 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Процесс единолично владеет своим виртуальным пространством памяти, но при этом, какие то области памяти могут являться частной собственностью имен объектов приложения, а какие то области являются "свободными". Автор имел ввиду: "как операционка узнает, о факте порчи памяти?" Я точно не знаю, но подозреваю, что возможные механизмы контроля вшиваются в исполняемый код приложения, средствами компилятора. В 2008 студии код вида: Код:
Однажды, в QtCreator в большом проекте, подобная ошибка привела его к поломке работы с сетью. В результате приложение выдавало что-то вроде "сервер не доступен". Было это в выходной день, и я реально даже подумал: "может они там сервак на выходные отключили?" Я потратил несколько часов, что бы найти такую ошибку. Последний раз редактировалось _Bers; 05.08.2012 в 19:22. |
|
05.08.2012, 19:43 | #13 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Формально "чужой" памяти нет - все 4Г ваши но за пределы отпущеного вы не вылезете - "чужие" участки памяти защищены от доступа на уровне железа - операционке остается только ловить сигналы и убивать ваш процес. Когда вы вылезаете за "пределы" "вашей" памяти, операционке по барабану, т.е. она даже не пытается об этом узнавать.
|
05.08.2012, 19:51 | #14 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
Откуда операционка узнает, что данный процесс больше не работоспособный? |
|
05.08.2012, 21:06 | #15 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Цитата:
а так, тут нет выхода за пределы страницы(минимальное выделение виртуальной памяти идет страницами), потому на самом деле не каждый левый указатель даст AV. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
||
05.08.2012, 21:22 | #16 | |
Старожил
Регистрация: 16.12.2011
Сообщений: 2,329
|
Цитата:
|
|
05.08.2012, 21:32 | #17 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
ОС, орет об AV если та страница недоступна, а вы туда пишете. повреждения кучи ОС отследить не может в общем то. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
05.08.2012, 22:30 | #18 | |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Цитата:
Вообще что такое "крякнул" - пока вы пишете в память, которая никем не исползуется проблем собственно нет, проблемы начинаются, когда вы пишете в чужую память. Мне случалось вызывать проверку кучи после *каждой* операции с указателем и/или вызова фунцкии меняющей память, лиш бы поймать момент. |
|
05.08.2012, 22:51 | #19 | ||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
у нас виртуальная память, деленная на страницы. есть три вида страниц(ну их больше, но интересует лишь три): 1)доступная на запись/чтение, в них пишем и читаем все ок. 2)доступная на чтение, при попытке записи будет AV. 3)не распределенная(или системная), при любом доступе будет AV. Цитата:
попадая на страницу 2/3 процессор генерирует исключение(по точнее могу вычитать в принципе), по нему ОС знает кто/куда. ну и прибивает процесс. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 05.08.2012 в 22:57. |
||
05.08.2012, 23:35 | #20 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
"чужая паметь" - та, которую не мы выделили...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Безопасность | e_e_n | Безопасность, Шифрование | 40 | 03.09.2010 01:11 |
Безопасность | x_AN777 | Помощь студентам | 2 | 08.05.2010 23:30 |
Безопасность | xap4o | PHP | 4 | 15.02.2010 00:02 |