c000007b - ошибка при запуске приложения

Метки:  , , , , , , , ,

Не так давно я столкнулся с одной, достаточно редко встречающейся в моей практике, ошибкой. Она носит название "Ошибка при запуске приложения (0xc000007b)" и влечет за собой отказ в запуске приложения в операционной системе Windows. Проще говоря, некоторые приложения перестают запускаться, либо всё же запускаются, но с вероятностью ниже 100%. Щелкаешь в проводнике по имени запускного exe-модуля, либо пытаешься запустить исполняемый файл из командной строки, и наблюдаешь следующую картину:

ошибка при запуске приложения

Забавно, но что то в этой ошибке c000007b показалось мне знакомым, моя дырявая долговременная память сохранила смутные образы подобных проблем еще с незапамятных времен, при этом не оставив никаких ясных обстоятельств. Изучая информацию по данной ошибке в Сети я начал припоминать, что наблюдал подобные ошибки еще во времена Windows 2000, но на самом то деле характерны они были для исполняемых бинарных модулей еще со времен Windows 98, просто формулировались иначе. Начиная с Windows 2000 и по сей день ошибка c000007b выглядит в точности так, как представлено выше, и, скорее всего, на протяжении нескольких поколений ОС имеет родственные причины возникновения. Специфика найденного мной в Сети материала заключалась в том, что давались многочисленные рекомендации по исправлению, однако не было никакой конкретики, в связи с чем появилось желание попытаться изучить проблему самостоятельно.

Что там еще про ошибку c000007b

Process Monitor - мониторинг активности процессов

Метки:  , , , , ,

По программе Process Monitor дано уже довольно-таки много материала, да и изучение основ функционирования утилиты всегда было доступно даже для неподготовленного пользователя. Но все же, я лично не совсем понимал некоторые аспекты работы (а некоторые не понимаю до сих пор :), поэтому и решил набросать очередную заметку по поводу данной, весьма полезной утилиты, дабы впоследствии можно было использовать статью как своего рода подсказку. Если рассматривать любую операционную систему с точки зрения обобщения, то можно условно дифференцировать её на блоки кода/данных, которые взаимодействуют между собой на основе определенных закономерностей. Чтобы приблизиться к привычным нам терминам, будем считать упомянутый блок процессом, объединяющим в себе и код и данные, предназначающимся для решения определенной задачи. Таким образом, взаимодействие между подобными процессами и составляет, по сути, понятие функционирования операционной системы. Во время работы операционной системы, в ней выполняется большое количество процессов и назначение любого из этих процессов может варьироваться в достаточно широком диапазоне.

Продолжить диагностику с использованием Process Monitor

Зависает процесс

Метки:  , , , ,

Сегодня мы поговорим о проблеме достаточно широко распространенной. Темой нашего разговора будут ситуации, когда в штатно функционирующей системе внезапно зависает процесс. Данная проблема, как мне кажется, является знакомой для каждого технического специалиста и, в то же время, крайне неудобной, поскольку вероятных проблем зависания может быть множество. Зависания процесса случаются с завидной регулярностью на широком круге клиентских систем Microsoft, работающих на базе разнообразного аппаратного обеспечения. Никто не застрахован от ошибок, где-то их меньше, где то больше, но присутствуют они абсолютно везде. В серверных конфигурациях, где набор рабочего ПО жестко ограничен и, как правило, достаточно хорошо оттестирован, ошибки встречаются значительно реже. Противоположностью этого являются клиентские операционные системы, где политики требования к программному обеспечению более мягкие, да и спектр ПО, работающего в системе шире. Зачастую возникновение ошибки в коде программы ведет к сбою, который выражается в "падении" (внезапном закрытии) программы, либо зависании. Ну и самый, пожалуй, неприятный вид проблем, это когда процесс зависает либо падает внезапно и с довольно высокой регулярностью.
Давайте немного отклонимся от основной линии повествования и потеоретизируем на тему зависания процесса. Какова её природа? Почему каким причинам программа может зависнуть:

  • Внутренняя причина: Ошибка разработчика/модификатора, допустившего ошибку в коде исполняемого модуля.
  • Внешняя причина: Бесконечное ожидание внешнего события, являющееся причиной аппаратного сбоя либо исчерпания ресурсов системы; ошибка стороннего исполняемого модуля, влияющего на
    процесс исполнения кода основной программы (вирус/антивирус/другое ПО, имеющее подобный функционал).

Узнать больше о решении проблемы зависшего процесса

Что грузит процессор

Метки:  , , , , , ,

Данная короткая заметка будет посвящена теме обнаружения источника внезапной нагрузки на процессор. Нагрузка на процессор, ну и что? В процессе работы с операционной системой Windows внезапные тормоза являются штатной реакцией на загрузку нами "прожорливых" приложений, например открытие 100 вкладок в браузере Google Chrome. Тут все прогнозируемо, ибо причиной подобных проблем является работа требовательного к ресурсам приложения, которое в зависимости от специфики выполняемой задачи способно сильно нагружать процессор. Совершенно другое дело, когда нагрузка на процессор возникает сама по себе, без видимых на то причин. К примеру, в простаивающей, либо практически ничем не загруженной системе, выполняющей штатную работу, внезапно возникают подтормаживания. Подобную нагрузку можно классифицировать следующим образом:

  • Высокая нагрузка на процессор, внезапно появляющаяся и (не)исчезающая через некоторый промежуток времени;
  • Постоянная нагрузка на процессор, не меняющая своих симптомов на протяжении всего цикла функционирования операционной системы;

В описанных ситуациях не исключены варианты, когда процессор загружен на 100 процентов, либо загрузка может быть не полной. Так же можно выделить постоянную, либо интервальной загрузку. Как в описанных ситуациях определить что грузит процессор? Что бы ответить на этот вопрос, потребуется обнаружить процесс, функционирующий в операционной системе и являющийся источником аномальной нагрузки. И в этом нам поможем специализированное программное обеспечение.

Подробнее о том, кто или что грузит процессор

bootstat.dat

Метки:  , , , ,

Намедни задался вопросом, при каких условиях появляется экран утилиты восстановления загрузки (Startup Repair). Восстановление загрузки это автоматизированное средство, которое обнаруживает большое количество общих проблем загрузки Windows и пытается их устранить в автоматическом режиме. Данная функциональная особенность последних версий Windows зачастую достаточно серьезно достает пользователей, поскольку в ожидании окончания процесса восстановления можно провести не один десяток минут, полностью выпадая из рабочего процесса на достаточно продолжительное время. Сама утилита восстановления конечно же интересна, но это тема отдельной статьи, а на тот момент мне просто хотелось выяснить по каким же условиям она стартует. Было выдвинуто предположение, что экран появляется лишь при внезапном выключении питания. Данная версия сразу была поставлена под сомнение, поскольку в памяти у меня всплыли примеры ситуаций, когда пользователи жаловались на автовосстановление загрузки даже при нормальном (с виду) завершении работы. С целью выяснить причины запуска средства восстановления загрузки решено было провести небольшой эксперимент. Хочу сразу оговориться, что рассматриваться материал следует применительно к операционной системе Windows 7 SP1, поскольку все тесты проводились именно на этой конфигурации, поскольку в других версиях ситуация могла кардинально поменяться.

Что там еще про bootstat.dat

Ошибки Bootmgr

Метки:  , , , , , , , , , , , , ,

Многие технические специалисты в своей работе сталкиваются с ошибками, возникающими на различных стадиях загрузки операционной системы Windows. Случился и в моем практике не так уж давно достаточно нетипичный сбой этапа загрузки, который мне, к моему огромному недовольству, затруднительно было понять. Смысл проблемы заключался в том, что вышедшая из строя по достаточно нетривиальной цепочке причин, система Windows 7 (Профессиональная) отказывалась грузиться во всех, без исключения, режимах загрузки. Процесс загрузки просто "вис" на черном экране на этапе, следующем за графическим экраном заставки (splash screen). Код работы с видеоадаптером устанавливал разрешение в родное для монитора, а далее загрузка просто-напросто останавливалась, при этом отчетливо был виден графический курсор мыши, сам манипулятор функционировал. У профессионалов подобное явление обозначается термином "черный экран смерти" (Black Screen of Death), большая просьба не путать с общеизвестным "синим экраном смерти" (Blue Screen of Death, BSOD). Как я уже упоминал, загрузка в безопасном режиме останавливалась на том же самом месте, то есть я вообще никак, ни в каком из режимов не мог загрузить ОС! С грустью вспомнил обо всех хваленых средствах диагностики загрузки вида xbootmgr и прочих трассировщиках, которые оказывались абсолютно бесполезными в подобной ситуации. Потом пришла мысль, что хорошо было бы подключиться каким-нибудь отладчиком удаленно и просто протрассировать код до ошибки, но подобным опытом я пока не обладаю, а проблему надо было решать в сжатые сроки.

Больше информации про ошибки Bootmgr

Обнаружение вируса

Метки:  , , , , , , , , ,

Идея написания сводного руководства по самостоятельному обнаружению вирусов на станциях под управлением Windows вынашивалась на протяжении достаточно длительного времени и обуславливалась, прежде всего необходимостью составить и время от времени дополнять справочник возможных расположений запуска вирусного кода в системе Windows. Лейтмотивом этой идеи является необходимость непосредственного, самостоятельного (ручного) анализа системы в случаях, когда имеется подозрение, что автоматические методы (утилиты/антивирусы), не в состоянии обнаружить работающий в системе вредоносный код. Обнаружение вируса собственными силами - вот тот уровень, который не будет лишним для любого технического специалиста по операционным систем Windows. Хотелось бы сделать небольшое отступление и пару слов сказать на счет антивирусов. Надо заметить, что эти, самые надежные по мнению большинства, помощники в борьбе с вредоносным кодом, вообще-то не всегда являются панацеей от заражения операционной системы. Повидавшая виды практика помнит случаи, когда грамотно написанный вредоносный код, учитывающий аналитические особенности определенных региональных антивирусов, долгое время оставался незамеченным на критически важных корпоративных системах. В этом то и заключается парадокс с зараженной системой, в которой установлен авторитетный антивирус с актуальными антивирусными базами. Подобный курьез говорит о том, что если вирус использует хотя бы мало-мальски оригинальный код, методы маскировки, различные виды упаковок, алгоритмы противодействия, то антивирусу бывает сложно обнаружить его, либо он не может деактивировать и удалить уже работающий вредоносный код, и это не смотря на продвинутые методы эвристического анализа, контроль системы с перехватом различных системных вызовов и прочие глубокие системные методы. Подобных доводов можно привести множество, но все они сводятся к одному единственному выводу.

Невозможно обеспечить 100% антивирусную защиту автоматизированными средствами.

Читать далее про самостоятельное обнаружение вируса

STOP 0x0000007A

Метки:  ,

Статья продолжает серию публикаций, посвященных описанию и устранению проблем, вызванных возникновением критической системной ошибки, которая влечет за собой появление синего экрана смерти (BSOD). В большинстве случаев в подобном материале будут освещаться проблемы, с которыми я сталкивался лично в своей практике и которые мне удалось решить. STOP-ошибка (STOP error), контроль дефекта (BugCheck) или в простонародье BSOD - фатальный системный сбой операционной системы Windows, являющийся причиной полного прекращения функционирования основных компонентов ядра операционной системы, влекущий за собой потерю динамических несохраненных пользовательских данных и приводящий к появлению на экране монитора синего экрана смерти (BSOD). Числовое обозначение STOP-ошибки - внутренний классификатор Microsoft, характеризующий причину возникновения фатальной системной ошибки, который используется при диагностике причины возникшей неполадки. В данной статье речь пойдет о сбое с идентификатором STOP 0000007A.

Подробнее о сбое STOP 0x0000007A

STOP 0x00000051

Метки:  ,

Публикация продолжает цикл заметок, посвященных описанию и устранению проблем, вызванных возникновением критической системной ошибки, которая влечет за собой появление синего экрана смерти (BSOD). В большинстве случаев в данном типе материала будут освещаться проблемы, с которыми я сталкивался лично в своей практике и которые мне удалось решить. STOP-ошибка (STOP error), контроль дефекта (BugCheck) или в простонародье BSOD - фатальный системный сбой операционной системы Windows, являющийся причиной полного прекращения функционирования основных компонентов ядра операционной системы, влекущий за собой потерю динамических несохраненных пользовательских данных и приводящий к появлению на экране монитора синего экрана смерти (BSOD). Числовое обозначение STOP-ошибки - внутренний классификатор Microsoft, характеризующий причину возникновения фатальной системной ошибки, который используется при диагностике причины возникшей неполадки. В данной статье речь пойдет о сбое с идентификатором STOP 00000051.

Подробнее о сбое STOP 0x00000051

Анализ цепочки ожидания зависшего приложения

Метки:  , , , , , ,

При работе с операционной системой Windows случается ситуация, когда программа (процесс) зависает, другими словами просто перестает отвечать на запросы системы и/или пользователя. Если программа имеет графический интерфейс, то в заголовке основного окна к выводимому имени программы добавляется статус "не отвечает", и сам интерфейс при этом зачастую перестает отвечать на какие-либо запросы оператора и визуально как бы вуалируется.

Outlook не отвечает

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

Читать о цепочке ожидания зависшего приложения