Форум
Написать нам
  • Страница 1 из 1
  • 1
ПАМЯТЬ НЕ МОЖЕТ БЫТЬ READ
SergДата: Воскресенье, 07 Июня 2009, 00:12 | Сообщение # 1
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Интересная статейка.

КАК ВЫЛЕЧИТЬ СООБЩЕНИЕ ПАМЯТЬ НЕ МОЖЕТ БЫТЬ READ.

Наверное многие уже сталкивались в последнее время с таким известным сообщением
винды:
Инструкция по адресу "***" обратилась к памяти по адресу "***". Память не может
быть "read".

Лично меня эта надпись просто замучала и я наконец решил всерьез пройтись с этим
вопросом по интернету.

Его исследования показали, что, как обычно, 99% инфы пишут дилетанты, совершенно
не соображая что и о чем пишут.

Наиболее частые ответы - полетала память и рекомендуют скачать проверялку...
(Чушь!)
Другие варианты бреда приводить не буду.

Правильный скомпилированный ответ о проблеме - нестыковка некоторых устаревших
(или кривых программ) с Виндами.
(Последние тоже не отличаются особой "прямизной"! )

Особенно часто данная ошибка начинает доставать при установке SP2!

Одним из вариантов лечения этой беды предлагают переустановку Винды на более
старую версию... что, имхо, нам совершенно не подходит, т.к. на дворе все ж
21-й век.

Другим вариантом лечения предлагается установка ВСЕХ! программ самых последних
версий, что тоже не проходит, т.к. даже самые совеременные версии программ
запросто могут выдавать эту ошибку!

Покончим со вступлением и наконец-то перейдем к правильному ответу по данной
ситуации и предпримем правильные варианты решений доставшей нас проблемы.

Во всем, как выяснилось, виновата функция "Предотвращение выполнения данных"
(DEP)!!!
Т.к. данная ошибка возникает при обращении какой-либо программы или модуля
программы напрямую к закрытому участку памяти.

Краткая компиляция, из Хепа:
"...в отличие от брандмауэра или антивирусного программного обеспечения функция
DEP не препятствует установке потенциально опасных программ на компьютер, а
только следит за тем, как программы используют память, и после установки SP2,
DEP по умолчанию включена для основных программ и служб Windows."

И немножко комментариев.
Если какая-то программа вызывает срабатывание этой функции, Microsoft
рекомендует выбрать режим OptOut и добавить эту программу в список исключений.
Однако зачастую программа состоит не из одного исполняемого модуля, а из многих
динамических библиотек, и не всегда имеется возможность точно определить, какая
именно вызывает срабатывание DEP.
Если программа вам очень нужна, а добиться ее работоспособности вышеописанным
методом не получается, проще отключить DEP целиком, путем редактирования
boot.ini.
Хотя, если вероятность возникновения этой ошибки невелика, и если вы не
сталкиваетесь с нею, лучше оставить DEP включенной - так система будет больше
защищена от возможности выполнения вируса.

Cуществует четыре варианта настройки функции DEP

OptIn - (установлено по умолчанию). В этой конфигурации под действие функции DEP
подпадают только основные системные программы и службы.
OptOut - DEP включена для всех процессов и приложений, кроме тех, которые
вручную добавлены пользователем в список исключений.
AlwaysOn - В этом режиме DEP включена всегда для системы в целом, всех процессов
и приложений, не взирая на установки пользователя или производителя ПО.
AlwaysOff - DEP полностью отключена.

Первые два варианта настройки можно переключать с помощью панели управления:
"Система" -> "Дополнительно" -> "Быстродействие" -> кнопка "Параметры" ->
закладка "Предотвращение выполнения данных". (Доп.описание см.по ссылке от
туда.)

Для полного включения или выключения DEP необходимо вручную отредактировать
находящийся в корне загрузочного раздела диска скрытый файл boot.ini, добавив в
разделе [operating systems] в конец строки ?\WINDOWS="Microsoft Windows XP
Professional" /fastdetect ключ /NoExecute с одной из опций:

NoExecute = OptIn
NoExecute = OptOut
NoExecute = AlwaysOn
NoExecute = AlwaysOff

Для редактирования boot.ini нужно в панели управления "Система", на вкладке
"Дополнительно" в разделе "Загрузка и восстановление" нажать кнопку "Параметры"
и в открывшемся окне - кнопку "Правка". Файл boot.ini будет открыт в "Блокноте".

Или: Пуск -> Выполнить -> %systemdrive%\Boot.ini

После редактирования boot.ini не забудьте сохранить этот файл и перезагрузить
компьютер, чтобы изменения вступли в силу.

PS По умолчанию у меня стояла строка
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Micro soft Windows XP Professional
SP2" /noexecute=optin /fastdetect
Козе понятно я установил у себя /NoExecute=AlwaysOff

УРРЯ-А-а-а!!!!
Как всегда, "Все гениальное - просто!", когда "его(ее)" знаешь.


 
toizyДата: Воскресенье, 07 Июня 2009, 00:40 | Сообщение # 2
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Почти все ошибки с памятью есть результат ошибок программера, так что не надо :) Если очень нужно всё ж таки запустить программу - пожалуйста, но только не стоит это превращать в "оптимизацию" системы. ИМХО.

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Воскресенье, 07 Июня 2009, 00:44 | Сообщение # 3
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Вот у меня сейчас ошибка эта возникла при просмотре одного мульта,смотриш смотриш,и всегда в одном месте возникает эта ошибка,причём в любом проигрывателе.

 
toizyДата: Воскресенье, 07 Июня 2009, 10:32 | Сообщение # 4
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Ну да, тут уж ничего не поделаешь, если смотреть нельзя а хочется :) И реально помогает этот способ?

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Воскресенье, 07 Июня 2009, 12:45 | Сообщение # 5
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline

Вот это вроде помогло.


 
toizyДата: Воскресенье, 07 Июня 2009, 12:51 | Сообщение # 6
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Хорошо. Но сдаёца мне, дело тут в кодеках. Что за формат?

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Воскресенье, 07 Июня 2009, 12:59 | Сообщение # 7
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
.mov

Добавлено (07 Июнь 2009, 12:59)
---------------------------------------------
Ммм,сейчас попробовал воспроизвести через Media Player Classic,так с этого момента просто звук пропал.


 
toizyДата: Воскресенье, 07 Июня 2009, 13:02 | Сообщение # 8
Студийная субстанция
Группа: Администраторы
Сообщений: 2309
Репутация: 29
Награды: 12
Статус: Offline
Шеф, ну кто же такие вещи топором ремонтирует? Чем портить систему, поставь лучше свежий QuickTime Alternative :) С ним mov играется даже через любой плеер

Жизнь оказалась не такой уж и забавной, как поначалу...
 
SergДата: Воскресенье, 07 Июня 2009, 13:16 | Сообщение # 9
Ветеран форума
Группа: Проверенные
Сообщений: 959
Репутация: 6
Награды: 8
Статус: Offline
Я сейчас его качаю :) Ещё хочу попробовать перекодировать,конвертер качаю.

Добавлено (07 Июнь 2009, 13:16)
---------------------------------------------
QuickTime не нравится,реклама в нём


 
Alex3AДата: Воскресенье, 07 Июня 2009, 15:50 | Сообщение # 10
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (toizy)
КАК ВЫЛЕЧИТЬ СООБЩЕНИЕ ПАМЯТЬ НЕ МОЖЕТ БЫТЬ READ

Сделать лоботомию програмеру :D и билу то же :D
При запуске проги система выделяет для нее область памяти, и контролирует
что бы она не лезла в чужую. Аналогично может быть при работе и с собственной
памятью проги, при обращении к несуществующему объекту.
Вообще то можно это(системный отладчик) отключить, в реестре, в сетке есть
описаие.
В тупых вариантах это бывает если какая прога при инсталяции засунет свою
библу корявую, особено этим грешат игрушки. В общем вариантов мож быть
многа.
 
  • Страница 1 из 1
  • 1
Поиск: