Djvu reader ошибка access violation at address 00000000

Обновлено: 06.07.2024

27.06.2017 admin Comments 0 Comment

Если у Вас не получается самостоятельно решить данную проблему, то Вы можете перейти в раздел ПОМОЩЬ и Вам помогут наши специалисты.

Про эту ошибку мне поведала одна из читательниц. Во время выгрузки отчета в формате . xml у нее появлялась данная ошибка. Мы с ней вместе пытались решить ее. До конца так и не понятно, откуда эта ошибка появилась и что нужно сделать, чтобы она точно пропала. Но я Вам расскажу, что делали мы, чтобы обойти ошибку.

Первый этапом перезагрузите программу. Сохраните все свои данные и выйдите полностью из АРМ ФСС. Для достижения наилучшего результата, перезагрузите полностью компьютер. Затем попробуйте снова поработать в программе, если ошибка не пропала перейдем к следующему пункту.

Вторым шагом будет обновления АРМ ФСС. Проверьте, возможно есть новая версия АРМ ФСС. Обновления можно проверить вот тут. Если Вы не знаете, как обновить АРМ ФСС, то прочитайте мою статью вот тут.

Снова проверяем ошибку. Если она снова появляется перейдем к радикальным мерам.

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

Теперь можем все ломать и не боятся, что наши данные пропадут. Скачаем снова установочный файл АРМ ФСС. И установим его, если не знаете как установить АРМ ФСС прочитайте мою статью вот тут. Но установку будем проводить с небольшими правками. Установим программу не в папку по умолчанию, а куда-нибудь в другое место, например, на диск D . Давайте просто создадим на диске D новую папку и назовём ее АРМ ФСС. И вот в эту папку установим нашу новую программу.

Путь установки

Кстати, многих ошибок в АРМ ФСС можно избежать, если программу установить в папку НЕ по умолчанию. Это решение подсказала мне моя читательница Ольга, за что ей ОГРОМНОЕ СПАСИБО! Она подсказала, что если установить АРМ ФСС в любую другую папку, то можно избавиться от ошибки DM BASE, про эту ошибку и как от нее избавиться я писал вот тут.

После того, как Вы установите в новую папку АРМ ФСС, нам нужно снова вернуть нашу базу данных на место. Запускаем АРМ ФСС с диска D. И восстанавливаем базу.

Как восстановить базу данных в АРМ ФСС

Открываем программу и переходим в пункт меню «Сервис», далее выбираем «База Данных», затем «Восстановление базы данных».

Восстановление базы данных

Откроется окно, в котором нам нужно указать файл нашей резервной копии базы данных.

Окно восстановления базы данных

После того, как Вы выбрали файл, ставим галочку «Восстановить и заменить существующую базу». И только после этого нажимаем «Восстановить DB ».

Выбираем файл резервной копии

Далее выскочит окно с вопросом про замену базы, нажимаем «Да».

Заменить базу данных

Теперь наблюдаем процесс восстановления. После того, как база восстановится, программа закроется автоматически. Снова запускаем ее и видим вопрос о замене базы данных, нажимаем «ДА».

Access violation at address 005F2A9C in module

Все! На этом процесс восстановления завершен.

На этом все дорогие друзья! Надеюсь, Вам помогла моя статья и ошибок у Вас больше нет.

Еще раз хочу поблагодарить всех моих читателей, которые помогли мне подготовить эту статью!

Если Вам нужна помощь профессионального системного администратора, для решения данного или какого-либо другого вопроса, перейдите в раздел ПОМОЩЬ, и Вам помогут наши сотрудники.

Если у Вас появятся вопросы задавайте их в комментариях! Всем удачи и добра!

ошибка Access violation at address in module read of address

Иногда при запуске игры или программы возникает ошибка Access violation at address, которая сообщает о проблеме на стороне прав доступа. Но это вовсе не означает, что действуют какие-то ограничения. Причем неважно в каком виде она появилась:

  • read of address 00000000
  • in module
  • write of address
  • the bat
  • Или каком-то другом. Это все одно и то же.

Диагностика памяти

  1. Универсальный, используя утилиту Memtest.
  2. Для пользователей Windows 10 и 8. Разберем его подробнее.

В строку поиска вводим слово «памяти» и запускаем средство.

сканирование памяти

Выбираем первый пункт с пометкой «рекомендуется». Система перезагрузится и начнется сканирование.

Дождитесь завершения процедуры и посмотрите на графу «Состояние». Ошибок быть не должно. При их наличии выньте ОЗУ и протрите контакты ластиком, затем установите обратно. Если это не поможет, то замените старые планки новыми.

Чистый запуск

Предлагаю запустить компьютер в чистом режиме, чтобы узнать, не вызывает ли проблему одна из установленных программ.

Если это устранило неполадку, то снова активируйте программы и отключайте их по одной, чтобы выявить неисправную. Часто сбой вызывают антивирусы, блокируя в целях безопасности некоторые приложения.

Удаление программ

Как говорил ранее, ошибку Access violation at address могут вызывать некоторые приложения. Чаще всего это fl studio, Artmoney, txdworkshop. Поэтому удалите лишние через деинсталлятор «Your Uninstaller» или любой другой. Желательно это делать из безопасного режима.

Если в безопасный режим войти не удается, то откройте диспетчер задач «CTRL + SHIFT + ESC», во вкладке «Процессы» найдите нужную утилиту и правым щелчком мыши откройте ее расположение. После этого удалите процесс.

skype в диспетчере задач

Теперь, находясь в этой папке удалите содержимое.

Если приложение нужно, то попробуйте переустановить его. Предварительно очистив Windows утилитой «Ccleaner».

Сканирование на предмет ошибок

DISM /Online /Cleanup-Image /RestoreHealth – нужен доступ в интернет.

sfc /scannow

dism online

Напишите их и нажмите после каждой «Enter». По завершении перезапустите ПК.

Проверка системных компонентов

Стоит убедиться, что в реестре указаны компоненты Windows, отвечающие за правильную ее работу.

Будьте осторожны при редактировании реестра, неправильные действия могут нарушить работу ОС. Действуйте четко по инструкции.

По окончании перезапустите компьютер.

Редактирование DEP

Возможно, ошибку Access violation at address (in module, read of address) вызывает компонент «DEP», блокирующий в целях безопасности некоторые программы. В качестве решения предлагаю внести приложение в список исключений.

Как это сделать:

Выключение UAC

Большинство приложений разработанных на базе Java не работают из-за включенного контроля учетных записей, сокращенно «UAC». Давайте выключим его.

Другие способы решения

Если ничего не помогло, то предпримите следующие действия.

Помните, что Вы можете рассчитывать на мою помощь. Для этого напишите мне в комментариях.

Как можно узнать место, где возникает эта ошибка?

P.S. Среда - C++ Builder 2009



обычно когда потёрта память, нужно искать где трёт.
если с выделением и освобождением памяти всё ок, тогда каментить код блоками пока не исчезнет, потом в найденом блоке каментить меньшие блоки и так пока дыра не будет обнаружена.
конкретнее без просмотра самого кода нескажеш.



Дело в том, что программа уже довольно большая (исходники с библиотеками и пр. - 500 Мб).
программе уже 4 года и она постоянно модифицируется. Ошибка выскакивает не сразу, а через 5-6 часов работы. Явно растущих массивов в программе нет.

Существует ли какая-нибудь возможность воспользоваться богатыми возможностями Борланда, откомпилировать с каким-нибудь ключом, пусть она по ошибке вылетает и дальше не работает, но как-нибудь укажет место возникновения?

Вылетает у Заказчика. Установить там Builder не могу, так же, как ждать 5-6 часов. Но могу периодически ходить смотреть, как работает.
В офисе стоит Builder, но нет того оборудования, что у Заказчика - полноценно не проверишь.

veb

Дождаться крэша, подцепиться отладчиком и начать отладку.

PS. Это чудо (builder) дружит с Dr.Watson и [мини]дампами?




как подцепиться отладчиком, не устанавливая Builder? А установить его у Заказчика не получится.

не знаю. может и дружит. А что это такое? (Dr.Watson и [мини]дамп?) как подцепиться отладчиком, не устанавливая Builder? А установить его у Заказчика не получится.

У Embarcadero в поставке идет Remote Debugger (рис.), думаю это то, что нужно? Он и в старых версиях Builder шел.

Прикреплённая картинка

veb

неважно. подцепиться, найти поток выбросивший окно, раскрутить его.

как подцепиться отладчиком, не устанавливая Builder? А установить его у Заказчика не получится.

Надо выяснить, поддерживает ли буилдер возможность удалённой отладки. В Visual Studio для этого используется Remote Monitor не требующий инсталяции

А что это такое? (Dr.Watson и [мини]дамп?)



Поэтому переформулирую вопрос: что изменить в опциях трансляции или линковки, чтобы при возникновении любой ошибки программа вылетала?

При работе программы периодически вываливается окошко "Access violation at address XXXXXXXX. Read of address YYYYYYYY".

Как можно узнать место, где возникает эта ошибка?

1. Не понял..
А разве "address XXXXXXXX" не есть тот адрес
где возникла проблема ?
Надо узнать, какая процедура какого модуля расположена по этому
адресу.

2. не помню в точности как там у Борланда.
У Микрософта можно окружать участки блоками

__except(FilterFunction(GetExceptionInformation(),__LINE__))

В FilterFunction получаем контекст (содержимое регистров)
и спасаем его в лог.
Дальше возимся в кишках программы, пока не определим какая
процедура располагается по адресу где происходит сбой.
Не факт, что виновата именно она. А дальше творческий
процесс понимания "что происходит".



А разве "address XXXXXXXX" не есть тот адрес где возникла проблема ?
Все "стремные" места программы окружены блоками, там,где от операционной системы или сторонних библиотек надо что-то открыть или создать. Где идет работа с памятью по указателям - проверяется их неравенство нулю. Но или где-то не проверяется, или я чего-то недопонимаю. Потому и пытаюсь найти это место.
Кстати, на такие ошибки блок try/catch наверно не реагирует, поскольку после нескольких произошедших ошибках системный Dr.Watson ничего не отметил в таблице ошибок.



можно зная начальный адрес загрузки, но я не знаю как его узнать Он по умолчанию постоянный - 0x400000. Задается в настройках линкера в проекте.

И судя потому, что "at address 00000000" это, вероятнее всего, указатель на необнаруженную в библиотеке функцию.
Я бы первым делом поискал по проекту "GetProcAddress" и посмотрел, возможно где-то ее результат не проверен.



Он по умолчанию постоянный - 0x400000. Задается в настройках линкера в проекте.
И все программы грузятся и запускаются по одному адресу? Всегда считал, что менеджер памяти ОС выделяет свободный в данный момент сегмент памяти и загрузчик грузит туда программу, меняя в ней нек.адреса.
По крайней мере так работал DOC.

Я догадался. Но вопрос был не в том, что это, а в способе найти место ошибки (модуль или строку программы) используя что-то, чего я не знаю, а сообщество знает.



Всегда считал, что менеджер памяти ОС выделяет свободный в данный момент сегмент памяти и загрузчик грузит туда программу, меняя в ней нек.адреса.

Узнать можно разными способами.
1. WinMain (HINSTANCE hThisInst.
hThisInst - это и есть адрес загрузки модуля.
2. GetModuleHandle(LPCTSTR lpModuleName);
3. GetWindowLong + GWL_HINSTANCE

"подскажете что из этого можно выудить"
Попробовать отладчик уровня ядра - поставить Break Point
на обращение к адресу 0.
Не знаю, можно ли на современном компе запустить SoftIce.
Наверное, можно попробовать OllyDbg. Но я с ним никогда не работал.
Глава 10


Вот что ещё можно попробовать:
1. Заменим ExceptionFilter -
::SetUnhandledExceptionFilter (UEFilter);
// После ее вызова необработанное исключение, возникшее в любом из потоков процесса,
// приведет к вызову Вашего фильтра исключений
// Адрес фильтра следует передать в единственном параметре функции
// SetUnhandledExceptionFilter.

2. Прототип фильтра исключений:
LONG WINAPI UEFilter (PEXCEPTION_POINTERS pExceptionInfo);

3. Из структуры ExceptionInfo, адрес на которую передаст система,
можно получить контекст (содержимое регистров) и некоторую информацию.
В том числе адрес программы, из которого производится попытка чтения адреса 0.

Критическая ошибка, она же более известна как «синий экран смерти», всегда влечёт за собой определённые последствия, так как её возникновение свидетельствует о том, что в работе операционной системы возникли серьёзные неполадки. Каждый пользователь, являющийся оператором компьютера, так или иначе, но сталкивался с проявлением подобной проблемы и знает, что далеко не всегда её решение лежит на «поверхности». Порой для исправления возникшей ситуации приходится прибегать к крайним мерам – это фактическая переустановка операционной системы Windows. Стоит ли применять данный способ в решении рассматриваемой в настоящей статье ошибки, в чём заключаются причины её возникновения. Обо всём об этом вы сможете прочитать ниже.

Исправление ошибки Access violation.

Причины и решения

Ошибка Access violation

Причин возникновения подобной ситуации может быть очень много, что серьёзно усложняет определение причинно-следственной связи, поэтому и применяемые методы носят комплексный характер, а именно:

  1. Проведите полную проверку операционной системы на наличие вирусной активности. Не прибегайте исключительно к услугам штатного антивируса, а обратите своё внимание на сторонние утилиты, к примеру, «DoctorWeb Curelt», «Malwarebytes» и «Adwcleaner». Проверьте всё тесно связанное с работой компьютера, включая внешние устройства хранения информации, которые подключались ранее к компьютеру, так как не исключено, что основная «зараза» засела именно там.
  2. Проверьте операционную систему на целостность компонентов, для этого:
    • Вызовите окно поиска, нажав на клавиши «WIN+S».
    • Введите в строку поиска «cmd.exe».
    • Кликните правой кнопкой мышки по найденному варианту и выберите «Запуск от имени администратора».
    • В открывшуюся консоль командной строки введите команду «sfc/scannow», после чего дождитесь завершения сканирования и следуйте советам утилиты, в случае если будут найдены какие-либо важные проблемы.

Сканирование диска командой

Процесс сканирования и внесение правок может быть продолжительным, но прерывать функционирование утилиты не рекомендуется. Дополнительно после завершения работы «sfc/scannow» можно обратиться к помощи команды «dism.exe /online /cleanup-image / restorehealth», инициировать работу, которой можно с помощью той же командной строки.

Проверка утилитой диска

  1. Также будет не лишним проверить используемые жёсткие диски и/или твердотельные накопители и наличие битых секторов, ошибки. Для этого подойдёт хотя бы штатная утилита «CHKDSK».

Вышеизложенные рекомендации носят обобщённый характер, так как их применение обосновано не только при возникновении каких-либо проблем в работе операционной системы, но и как профилактические меры по поддержанию качества функционирования Windows. Если ошибка не нашла своего решения и продолжается «терзать» пользователя, то следует прибегнуть к более точечным проверкам, которые заключаются в следующем:

  1. «Проверка реестра»:
    • Нажмите «WIN+R» и введите «regedit» для открытия окна редактора реестра.
    • В открывшемся окне найдите «HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon ».
    • Среди имеющихся в выбранном каталоге ключей найдите «Shell».
    • Если операционная система не была подвержена воздействую вирусного программного обеспечения, то значение данного ключа должно быть «Explorer.exe».
    • Здесь же найдите ключ «Userinit» его значение должно быть «C:\Windows\System32\userinit.exe».
    • Если хотя бы в одном из вариантов установлены другие значения, пропищите вручную корректные данные и перезагрузите компьютер.

Также будет не лишним прибегнуть к функционалу программы «CCleaner» для проверки реестра на ошибки. Основную проблему это может не решить, но добиться улучшения общего состояния операционной системы вполне реально.

  1. «Проверка корректности используемого драйверного обеспечения». Откройте «Диспетчер устройств» и удостоверьтесь, что все компоненты полностью работоспособны и среди них нет неизвестного устройства, которое было бы помечено жёлтым треугольником с восклицательным знаком внутри. Дополнительно можно обратиться к специализированному софту и проверить актуальность всех используемых драйверов.
  2. «Проверка качества работы программного обеспечения». Если рассматриваемая проблема проявилась при открытии какой-либо программы или игры, то попробуйте полностью удалить их и установить заново, но удостоверившись в том, что возможности вашего компьютера, а также версия операционной системы соответствует техническим требованиям продукта. Если игра была получена не совсем «честным/законным» путём, то попробуйте скачать другой репак или сменить основной источник. Если вы уверены в том, что вирусного программного обеспечения нет и проблема проявляется в отдельно взятом программном обеспечении при любых манипуляциях с ним, то можно попробовать внести данное ПО в список исключения DEP, для этого:
    • Откройте «Этот компьютер» (Мой компьютер) и кликом правой кнопкой мышки откройте «Свойства».
    • Далее выберите раздел «Дополнительные параметры системы».
    • На вкладке «Дополнительно» обратите внимание на блок «Быстродействие» и нажмите на кнопку «Параметры».
    • В открывшемся окне разверните вкладку «Предотвращение потери данных» и отметьте параметр «Включить DEP для всех программ и служб, кроме выбранных ниже» и нажмите «Добавить»
    • Найдите исполняемый файл проблемного программного обеспечения и укажите путь до него, после чего сохраните внесённые изменения.

Перезагрузите компьютер и проверьте качество работы Windows и работоспособность нужной вам программы/игры.

Заключение

К сожалению, как видно из всего представленного выше, в рассматриваемой ошибке нет каких-то конкретных причин возникновения. «Access violation», как и её собратья, является лишь следствием каких-либо сбойных моментов в работе Windows, поэтому и все приведённые рекомендации направлены на восстановление штатной работы OS. Всё сказанное в начале про переустановку Windows таковым и остаётся и в завершении статьи.

Данная ошибка может возникать, когда процесс обращается не к тому типу памяти или она не предназначена для использования этого приложения. Она может возникать при запуске игр, использовании любых программ или медиа проигрывателей. Этому может способствовать как сбой в самой системе и архитектуре файлов на диске, так и при влиянии вирусного программного обеспечения. Часто еще этот сбой возникает, когда пользователь пытается открыть файл или обратиться к нему, но по адресу его нет.

Ошибку могут спровоцировать программы, которые были разработаны неумелыми программистами. Чтобы не сталкиваться с этой проблемой, нужно скачивать программное обеспечение только с официальных сайтов.

Как избавиться от ошибки обращения к памяти

  1. Чтобы это сделать, найдите значок на панели задач (трее) в виде стрелочки, нажмите её и появятся скрыты значки.
  2. Здесь выберите значок антивируса ПКМ.
  3. В контекстном меню обычно находится пункт «Карантин».

Пункт Карантин

Выберите его и проверьте содержимое. Если найдете там файлы программ, которым вы доверяете — удалите их из карантина. Если ошибка Access violation at address продолжается, необходимо переустановить данную программу и внести в антивирусе в список доверенных.

После этого попробуйте перезапустить компьютер и войти в ОС через последнюю удачную конфигурацию.

  1. Для этого при появления начального экрана нажмите клавишу F8 и не отпускайте до тех пор, пока не появится окно с несколькими способами запуска.
  2. Выберите «Запуск последней удачной конфигурации».
  3. В этом случае будет использована система с конфигурацией драйверов и реестра, которые работали до этого стабильно.

Проверка запуска оболочки Windows

Следующим шагом в исправлении ошибки Access violation at address … in module будет проверка запуска оболочки операционной системы.

  1. Откройте окно ввода команд — WIN+R.
  2. Введите следующую команду «Regedit» и подтвердите, нажав Enter.
  3. Откроются ветки, здесь выберите HKEY_LOCAL_MACHINE.
  4. Далее найдите ниже SOFTWARE.
  5. Здесь отыщите ветку Microsoft, ниже выберите Windows NT и CurrentVersion.
  6. И наконец выберите Winlogon.

Реестр ОС Windows

Когда вы откроете последнюю ветку в правой части появится окно со списком ключей и параметров, найдите здесь Shell. Его необходимо открыть как обычную папку, дважды нажав мышью. В исправной системе здесь должно быть значение Explorer.exe. Если у вас стоит иное — исправьте его и сохраните изменение. Точно так же нужно проверить ключ Userinit. Здесь по умолчанию установлено C:\windows\system32\userinit.exe. Если здесь указано что-то другое — исправьте. Далее выйдите из редактора и закройте все окна. Перезагрузите компьютер и проверьте, появляется ли ошибка.

Чистка системного реестра Windows

В некоторых случаях при ошибке Ошибка Access violation at address in module помогает очистка системного реестра.

Программа CCleaner

Иногда ошибка появляется при работе в интернете с браузера. В этом случае нужно открыть меню, найти здесь расширения и плагины, и удалить все ненужные. Если установлен плагин AddBlock, то он также может способствовать проблемам с работой некоторых приложений. Его нужно удалить. После этого нужно перезагрузить компьютер.

Другие методы решения ошибки «Access violation at address …»

Далее нужно попытаться восстановить файлы, которые возможно были удалены самим пользователем, антивирусами или вирусам. Для этого понадобится дистрибутив с текущей операционной системой Windows. Вставьте его в привод и следуйте дальнейшей инструкции:

Команда sfc

  • выберите внизу рабочего стола «Пуск» и введите в поиске «Командная строка»;
  • в результатах выберите её ПКМ и нажмите «От имени администратора»;
  • в черном окне введите «sfc /scannow» без кавычек.

Окно восстановления системы

  1. Снова откройте меню «Пуск», выберите поисковую строку и введите «Восстановление».
  2. В результатах найдите «Восстановление системы» — выберите его.
  3. Выберите пункт, который запустит восстановление.
  4. В следующем окне нужно будет выбрать точку, которую система создала ранее.
  5. Выберите её и подтвердите свои действия.

В этом случае система также будет перезагружена и возвращена к состоянию сохраненной точки. Проверьте, возникает ли сейчас ошибка. В тексте данной ошибки часто указан модуль и программа, с которой возникают проблемы. Найдите эту программу на своем компьютере и удалите её, а затем заново установите. Это можно сделать в панели управления.

Adobe Creative Cloud в списке программ

  1. Выберите кнопку «Пуск», затем найдите справа раздел «Панель управления».
  2. В следующем окне отыщите «Восстановление или удаление программ».
  3. В списке найдите проблемное ПО и выберите кнопку «Удалить» на панели инструментов или в самом блоке (в зависимости от версии ОС).
  4. Далее вам нужно снова установить ПО из дистрибутива.

Восстановление или переустановка системы

Если ни один из методов вам не помог решить эту ошибку, попробуйте сделать восстановление с участием диска Windows.

  1. Для этого вставьте в привод диск и перезагрузите компьютер.
  2. Войдите в настройки подсистемы BIOS и выберите загрузку с дисковода.
  3. Перезагрузите компьютер и активируйте загрузку с оптического диска.
  4. После того, как будут установлены временные файлы, вы увидите окно, где предлагается переустановить систему с несколькими вариантами. Выберите «Восстановление системы».
  5. Далее найдите необходимое восстановление и нажмите «Готово».

Когда будет выполнено восстановление, проверьте наличие ошибки на компьютере. В том случае, если она снова возникает, придется переустановить Windows. Это можно сделать, не затрагивая файловый раздел жесткого диска. Это значит, что вы можете переустановить только систему на диске C:\, а другие диски, где обычно хранятся файлы пользователя не трогать. После переустановки системы вы точно избавитесь от ошибки Access violation at address … in module.

Читайте также: