Многие начинающие пользователи сталкиваются с такой проблемой:
И эта проблема многих раздражает.
Для начала попробуем разобраться в возможных вариантах, из-за чего возникают эти проблемы :
2. Программе не хватает оперативной памяти.
5. Проблема в самой программе.
6. При запуске программа обращается к некоторым системным файлам, которые могут быть повреждены.
Теперь давайте рассмотрим каждый из этих вариантов:
Перейдите в Конфигурация системы -> Службы, включите половину служб и перезапустите. Если проблема не появляется, проблема связана с оставшимися отключенными службами. Если проблема воспроизводима, причина кроется во включенных службах: отключите половину из них и перезапустите снова. То же самое и с программным обеспечением Startup.
2. Убедитесь, что вы включили файл подкачки, для этого:
а) Нажмите Пуск -> Панель управления -> Система -> Все элементы панели управления -> Дополнительные параметры системы -> Дополнительно:
Прекращена работа программы Windows 10
б) В разделе «Производительность» нажмите «Параметры», откройте вкладку «Дополнительно» и нажмите «Изменить;
3. Убедитесь, что вы установили следующее программное обеспечение:
Для 32 (x86) битных систем :
Для 64-битных систем :
Так что после их установки устанавливайте все обновления, которые будут в Центре обновления Windows !
4. Проверьте свою систему на наличие «вредоносных программ» с помощью Dr.Web CureIt.
5. Проблема могла быть в самой программе:
а) Если вы установили пиратскую версию программы (взломанная, RePack), обратитесь к тому, у кого вы ее скачали;
б) Если у вас установлена бета-версия программы, удалите ее и найдите полную версию программы у разработчика :
c) Если у вас есть лицензионная версия программы, обратитесь в службу поддержки производителя.
6. Определите, кто виноват в сбое программы, для этого:
а) Скачайте программу ProcDump и распакуйте ее в папку C: ProcDump;
б) Откройте командную строку от имени администратора и запустите:
- C: ProcDump procdump.exe -accepteula -e -w [имя отказавшего приложения] C: ProcDump
в) Как определить имя отказавшего приложения:
1) перейдите в Панель управления -> Все элементы панели управления -> Справочный центр -> Монитор стабильности системы -> Отчеты о проблемах.
2) Найдите событие, когда улетело проблемное приложение, щелкните по нему 2 раза левой кнопкой мыши и там вы увидите надпись «Название приложения:
в) Запустите это приложение и дождитесь запуска.
г) Далее у вас будет файл с расширением .dmp в C: ProcDump
д) Теперь давайте посмотрим на эту даму (вы можете смотреть на нее так же, как синий экран выводит анализ первопричин BSOD с помощью инструментов отладки для Windows (только команда выглядит иначе: Kdfe -v [путь к дампу]).
Если файл является системным, запустите командную строку от имени администратора и выполните команду:
Дождитесь окончания проверки и:
Если в конце проверки написано, что все файлы восстановлены, перезагрузитесь, чтобы восстановить их полностью.
Если в конце проверки написано, что не все файлы восстановлены, то:
Если у вас Windows 8 / 8.1, вам просто нужно запустить команду в командной строке от имени администратора с подключенным Интернетом:
Последнее обновление: 07/01/2021 [Время на прочтение:
Первый выпуск файла CasPol.exe на платформе Windows Vista состоялся 11/08/2006 для Windows Vista. Последней версией файла для Bible Pro 14.3 является v1.1.4322.573, выпущенная 05/25/2011. Файл CasPol.exe включен в пакет ПО в Windows 10, Windows 8.1 и Windows 8.
В этой короткой статье приводятся подробные сведения о файле, шаги по устранению проблем EXE с CasPol.exe и список бесплатных загрузок для каждой версии, содержащейся в нашем полном каталоге файлов.
Совместимость с Windows 10, 8, 7, Vista, XP и 2000
Средняя оценка пользователей
Набор символов: | Windows, Latin1 |
Код языка: | English (U.S.) |
Флаги файлов: | Special build |
Маска флагов файлов: | 0x003f |
Точка входа: | 0x15a8e |
Размер кода: | 81920 |
✻ Фрагменты данных файлов предоставлены участником Exiftool (Phil Harvey) и распространяются под лицензией Perl Artistic.
CasPol.exe — ошибки выполнения
Ошибки выполнения — это ошибки Bible Pro, возникающие во время «выполнения». Термин «выполнение» говорит сам за себя; имеется в виду, что данные ошибки EXE возникают в момент, когда происходит попытка загрузки файла CasPol.exe — либо при запуске приложения Bible Pro, либо, в некоторых случаях, во время его работы. Ошибки выполнения являются наиболее распространенной разновидностью ошибки EXE, которая встречается при использовании приложения Bible Pro.
К числу наиболее распространенных ошибок CasPol.exe относятся:
Не удается запустить программу из-за отсутствия CasPol.exe на компьютере. Попробуйте переустановить программу, чтобы устранить эту проблему.
Таким образом, крайне важно, чтобы антивирус постоянно поддерживался в актуальном состоянии и регулярно проводил сканирование системы.
Шаг 1. Восстановите компьютер до последней точки восстановления, «моментального снимка» или образа резервной копии, которые предшествуют появлению ошибки.
Чтобы начать восстановление системы (Windows XP, Vista, 7, 8 и 10):
Если на этапе 1 не удается устранить ошибку CasPol.exe, перейдите к шагу 2 ниже.
Шаг 2. Если вы недавно установили приложение Bible Pro (или схожее программное обеспечение), удалите его, затем попробуйте переустановить Bible Pro.
Чтобы удалить программное обеспечение Bible Pro, выполните следующие инструкции (Windows XP, Vista, 7, 8 и 10):
После полного удаления приложения следует перезагрузить ПК и заново установить Bible Pro.
Если на этапе 2 также не удается устранить ошибку CasPol.exe, перейдите к шагу 3 ниже.
Шаг 3. Выполните обновление Windows.
Если ни один из предыдущих трех шагов по устранению неполадок не разрешил проблему, можно попробовать более агрессивный подход (примечание: не рекомендуется пользователям ПК начального уровня), загрузив и заменив соответствующую версию файла CasPol.exe. Мы храним полную базу данных файлов CasPol.exe со 100%-ной гарантией отсутствия вредоносного программного обеспечения для любой применимой версии Bible Pro . Чтобы загрузить и правильно заменить файл, выполните следующие действия:
Если этот последний шаг оказался безрезультативным и ошибка по-прежнему не устранена, единственно возможным вариантом остается выполнение чистой установки Windows 10.
Многие начинающие пользователи сталкиваются с такой проблемой:
«Прекращена работа программы . «
И многих эта проблема раздражает.
Сейчас я вам расскажу,как справится с этой проблемой.
Для начала разберёмся с возможными вариантами,из-за чего эта трабла возникает :
1. Установлено много стороннего ПО,которое «ест» ресурсы системы.
2. Программе не хватает оперативной памяти.
3. В системе не установлено необходимое ПО для «правильной» работы программы.
5. Проблема в самой программе.
6. При запуске программа обращается к какому-нибудь системному файлу,который может быть повреждён.
Теперь пройдёмся по каждому этому варианту:
1. Посмотрите будет ли программа вылетать в режиме «чистой» загрузки ,если в этом режиме всё нормально работает,то попробуем выявит виновника,среди всего установленного ПО, с помощью метода «половинного деления».
Зайдите в Конфигурацию системы -> Службы и включите половину служб и перезагрузитесь. Если проблема не появляется, причина в оставшихся отключенных службах. Если проблема воспроизводится, причина во включенных службах — отключите половину из них и снова перезагрузитесь. Тоже самое и для ПО в Автозагрузке.
2. Убедитесь,что у вас включён файл подкачки,для этого:
а) Нажмите Пуск –> Панель управления –> Система –> Все элементы панели управления –> Дополнительные параметры системы -> Дополнительно:
б) В разделе Быстродействие нажмите Параметр,откройте вкладку Дополнительно и нажмите Изменить;
в) И посмотрите,чтобы стояла галочка напротив надписи «Автоматически выбирать объём файла подкачки».
3. Убедитесь,что у вас установлено следующее ПО:
Для 32 (x86) bit’ных систем :
Для 64 bit’ных систем :
Потом после их установки установите все обновления,которые будут в Центре обновления Windows !
4. Проверьте систему на наличие «зловредов» с помощью Dr.Web CureIt.
5. Проблема может быть в самой программе:
а) Если у вас установлена пиратская версия программы (взломанная , RePack),то обращайтесь к тому,у кого вы ею скачали;
б) Если у вас установлена Beta-версия программы,удалите её и найдите законченную версию программы у разработчика :
в) Если у вас лицензионная версия программы,то обращайтесь в тех. поддержку производителя.
6. Определим,кто виноват в вылете программы,для этого:
а) Скачайте программу ProcDump и распакуйте её в папку C:ProcDump;
б) Откройте командную строку от имени администратора и выполните:
- C:ProcDumpprocdump.exe -accepteula -e -w [имя сбойного приложения] C:ProcDump
в) Как определить имя сбойного приложения:
1) зайдите в Панель управления -> Все элементы панели управления -> Центр поддержки ->Монитор стабильности системы -> Отчеты о проблемах.
2) Найдите событие,когда вылетело проблемное приложение,щёлкните по нему 2 раза левой кнопкой мыши и там вы увидите надпись «Имя приложения:
в) Запустите это приложение и дождитесь вылета.
г) После этого у вас появится файл с расширением .dmp в C:ProcDump
д) Теперь заглянем в это дам (заглядывать в него можно также,как и и в дампы синих экранов Анализ причин возникновения BSOD при помощи Debugging Tools for Windows (только команда выгладит по другому: Kdfe -v [путь к дампу]).
е) Как определите,что за файл виноват — определите системный ли он или принадлежит сторонней программе (для этого достаточно его «погуглить «) ,если к сторонней программе,то определите к какой и удалит её.
Если файл системный,то запустите командную строку от имени администратора и выполните команду:
Дождитесь конца проверки и:
Если в конце проверки будет написано,что все файлы были восстановлены,то перезагрузитесь для их полного восстановления.
Если в конце проверки будет написано,что не все файлы были восстановлены,то:
Если у вас Windows 8/8.1,то вам достаточно в командной строке,запущенной от имени администратора, при подключённом интернете , выполнить команду:
Если у вас Windows 7,то обратимся к другой статье ( пишется ) за помощью.
Платформа Net Framework была разработана специально для запуска многих программ и приложений, которые предназначены для использования на компьютерах с операционной системой Виндовс. Поэтому при установке новых программ и приложений нередко требуется загрузка специальных файлов и библиотек для платформы Нет Фреймворк. В некоторых случаях происходят сбои и установленное обеспечение работает некорректно.
Что такое Net Framework
Специалисты компании Майкрософт первоначально разрабатывали платформу для использования с приложениями специальной связи, но постепенно она превратилась в универсальное средство. Именно оно позволяет обеспечить правильную работу всех компонентов. Это своеобразный проводник, который выступает между операционной системой и программами, разработанными для других систем. Именно Framework может помочь запустить их в ОС Windows.
Платформа Framework имеет свои особенности:
С назначением и особенностями все понятно, остается только разобраться, как работает приложение и что делать, если возникают ошибки. Также стоит понимать, какой из пакетов выбрать для своего компьютера, чтобы не засорять память.
Установка приложения
На большинстве современных компьютеров Framework установлен вместе с операционной системой. Но иногда она оказывается неактуальной и устаревшей. В таком случае потребуется дополнительная установка нового пакета программы.
Еще одной особенностью программного обеспечения является то, что в принципе самого обновления не происходит. Новый установленный пакет просто дополняет предыдущие версии. Постоянно требуется регулярная установка microsoft framework, последняя версия которой требуется для новых недавно выпущенных продуктов, так как старые версии продукта могут поддерживать не все программы.
Установить можно программы самостоятельно, а можно воспользоваться услугами Центра обновления Windows, но если работа того сервиса отключена, то на такой метод не следует наделяться. Каждый обновленный пакет требует соблюдения определенных требований:
- свободного места на жестком диске должно быть не менее 2,7 Мб, особенно если это касается net framework 4 5 для windows 7 x64;
- частота процессора должна быть не менее 1 ГГц;
- ОЗУ не менее 512 Мб.
Стоит быть готовым к тому, что долго устанавливается net framework 4 windows 7 из-за аппаратных требований и большого объема библиотек. После установки обязательна перезагрузка для внесения изменений в реестр.
Возможные проблемы при работе
Ошибки и проблемы Framework могут возникнуть не только во время установки, но и при работе операционной системы. При запуске некоторые приложения могут работать некорректно и выдавать ошибки. По номеру ошибки можно определить причину и способ ее устранения. Вариантов ошибок очень много, но с самыми распространенными следует познакомиться.
Ошибка 0х800С0005
После появления ошибки программа, с которой работает пользователь, просто вылетает. Иногда даже сам компьютер просто прекращает работу. Причиной появления может стать неправильная работа платформы или повреждение ее файлов. Иногда это просто системные сбои, а иногда компоненты повреждены вредоносным ПО или удалены другой программой.
Ошибка 0х800С0005 устранима собственными силами. Для этого потребуется выполнить следующую последовательность действий:
Выполнять исправление следует в такой последовательности, чтобы избежать лишних действий. На каждом из этапов ошибка может исчезнуть.
Код 0х800f081f
Не всегда последняя версия net framework обеспечит работу всех установленных программ, каждому приложению нужна своя платформа от Microsoft.
Чтобы решить эту проблему, можно действовать по следующему алгоритму.
- Проверить наличие версии Framework 3.5. Если она установлена, то потребуется ее просто активировать. В меню Пуск потребуется найти «Программы и компоненты» — «Включение или отключение компонентов». Напротив соответствующей платформы следует поставить галочку, запустится активация. После ее окончания потребуется перезагрузить компьютер и проверить работу нужного софта.
- Запустить автоматическую службу обновления Windows, не стоит пугаться задержек: они возникают из-за активации. Компьютер может немного зависать.
- Если автоматическое обновление не установило нужную версию платформы, то можно воспользоваться инсталляционным автономным пакетом. Установщик потребуется предварительно скачать через торрент или другим способом и запустить на установку.
Этой же проблеме только для Windows 8/8.1 соответствует код ошибки 0x800F0906.
Более простое решение
Принцип работы приложения заключается в следующем: сначала инструменты утилиты проводят диагностику и находят проблему. С разрешения пользователя вносятся изменения. Далее инструмент пытается восстановить работу платформы Net Framework. С разрешения пользователя Microsoft отправляются собранные данные.
- Программа которая борется с вирусами 12 букв
- Listview vba excel как добавить
- Ps3 cechk08 можно ли прошить
- 1с как перенести план счетов
- Как сделать мувик в adobe after effects
Источник: kompyutery-programmy.ru
Ошибки Net Framework
Данная статья создавалась как попытка продолжить изучение не достаточно хорошо знакомой для меня темы восстановления работоспособности [приложений] .Net Framework в системах Windows, а так же поиска проблем ошибок в Net Framework приложениях. Очевидно, что все тут перечисленное представляет собой достаточно упрощенный подход к изучению структур .Net-приложений, тем не менее, в некоторых случаях достаточный для выявления причин неисправностей.
.NET Framework — программная платформа, основой которой является общеязыковая среда исполнения (Common Language Runtime, CLR) байт-кода «промежуточного языка высокоуровневого ассемблера». Из определения «общеязыковая» следует, что она предназначается для выполнения кода модулей, написанных на множестве языков программирования. Получила дальнейшее развитие в виде .NET Core .
Основная концепция создания .Net Framework заключалась в обеспечении свободы разработки, обусловленной возможностью создавать приложения с использованием множества языков программирования, способных исполняться на широком спектре устройств, работающих под разнообразными операционных системах [мультиязычность и кроссплатформенность]. Программа для платформы .NET Framework, в начале исполнения переводится компилятором в единый для .NET промежуточный байт-код «высокоуровневого ассемблера» виртуальной машины .NET ( Common Intermediate Language , CIL — ранее известного как Microsoft Intermediate Language , MSIL), называемый в контексте .NET сборкой (assembly). Далее получившийся код либо исполняется виртуальной машиной Common Language Runtime (общеязыковая среда выполнения, CLR), либо транслируется утилитой NGen.exe в исполняемый код для определенного целевого процессора. И на финальном этапе, встроенный в виртуальную машину CLR компилятор «на лету» (в режиме реального времени) преобразует промежуточный байт-код в машинные коды целевого процессора [для непосредственного исполнения кода ядром].
В некотором смысле .Net Framework это система в системе. Она обеспечивает множество собственных механизмов: управление виртуальной памятью, система безопасности, загрузчик модулей, механизм исключений (обработки ошибок),модель многопоточности, изолированная среда выполнения приложений и многое другое. Тем самым .Net Framework как бы создает еще один уровень абстракции.
Поскольку мы упомянули некий «высокоуровневый ассемблер» виртуальной машины .NET, становится очевидным что в .Net Framework мы имеем дело с так называемым «управляемым» кодом.
Управляемый код (managed code) — код на языке «высокоуровневого ассемблера», исполняемый под управлением (внутри) виртуальной машины .NET CLR.
В приложениях с управляемым кодом, бинарный код, получающийся на выходе компилятора, получается в формате промежуточного языка (Microsoft Intermediate Language, MSIL), который является платформонезависимым. Когда управляемый код исполняется, среда выполнения преобразует его в обычный машинный код конкретной процессорной архитектуры (х86, х64 или IA64).
CLR компилирует MSIL в команды процессора [целевой архитектуры].
Процесс генерации машинного кода из кода MSIL называется компиляцией на лету (just-in-time (JIT) compiling). После того, как JIT-компилятор (jitter) скомпилировал MSIL для определенного метода, машинный код этого метода остается в памяти. Если когда-либо еще данный метод будет вызван, машинный код просто выполняется (поскольку он уже размещен в памяти) и JIT-компилятор может вообще в этом случае не вовлекаться в процесс.
Исключения в .NET
Поскольку популярность .Net платформы с каждым годом набирает обороты, в валовом отношении растет и количество ошибок .Net Framework, возникающих в коде. С другой стороны, неоспоримым плюсом является то, что по сравнению с неуправляемыми (классическими) приложениями, управляемые приложения меньше подвержены появлению в них [определенных видов] ошибок. Тем не менее, как и любой другой тип приложений, .NET-приложения в процессе своего функционирования сталкиваются с ошибками времени выполнения кода, иными словами — с некоторыми видами исключений.
Модель исключений в .NET работает поверх системного механизма обработки структурных исключений Windows (SEH), что обеспечивает объектно-ориентированную модель исключений, позволяющую предоставлять довольно детальную информацию об исключениях.
В момент возникновения исключения, CLR начинает поиск блока Catch (тип которого соответствует типу исключения) в стеке вызовов. В случае, когда ни один из блоков Catch не отвечает типу исключения (обработчик не найден), исключение считается необработанным (unhandled exception). Необработанное исключение указывает на ситуацию, не предусмотренную разработчиком приложения, и обычно считается признаком серьезной ошибки. Системный механизм WER производит запись в Журнале событий (раздел Приложение ) и на экран выдается информационное окно (внешний вид может варьироваться в зависимости от версии):
Фактически на этом [моменте] работа сбойного приложения прекращается. Самая информативная для технического инженера часть — это сигнатуры проблемы, которая в Журнале событий (раздел Приложение ) и в поле Подробности проблемы информационного окна дает нам некоторое представления о деталях сбоя:
Сигнатура проблемы :
Имя события проблемы : CLR 20 r 3
Сигнатура проблемы 01 : mmc . exe
Сигнатура проблемы 02 : 6.1.7601.23892
Сигнатура проблемы 03 : 5990c6ab
Сигнатура проблемы 04 : mscorlib
Сигнатура проблемы 05 : 2.0.0.0
Сигнатура проблемы 06 : 5c9c4d2b
Сигнатура проблемы 07 : 2d59
Сигнатура проблемы 08 : 79
Сигнатура проблемы 09 : System . Security . Security
Версия ОС : 6.1.7601.2.1.0.256.48
Код языка : 1049
В случае, описанном выше, имеет место падение оснастки Просмотр Событий ( eventvwr.exe ), которая работает через консоль управления ( mmc.exe ). Далее приведем описание полей сигнатуры:
сигнатура_01 | Имя процесса программы (исполняемого образа/файла), в контексте выполнения которого возникло исключение ( Сигнатура_02 | Версия сборки [исполняемого образа]. |
Сигнатура_03 | Штамп времени [исполняемого образа]. | |
Сигнатура_04 | Имя библиотеки (из состава приложения), сборки или иной файл из состава .Net Framework, при исполнении функции [из] которой возникла ошибка ( Сигнатура_05 | Версия (аварийной) библиотеки/сборки приложения/платформы .Net Framework, в которой произошло исключение. |
Сигнатура_06 | Штамп времени проблемной (аварийной) сборки. | |
Сигнатура_07 | Определение (маркер) метода (в таблице MethodDef ) и типа, в котором произошло исключение (с «обрезанным» старшим байтом 0x06, типом маркера). Идентифицируют запись в соответствующей таблице метаданных. | |
Сигнатура_08 | Смещение инструкции (команды) в рамках метода в коде на промежуточном языке (IL), при выполнении которой произошло исключение. Взяв величину смещения, при помощи любого .Net-рефлектора можно найти некорректный код. | |
Сигнатура_09 | Тип вброшенного исключения (название класса или пространства имен .Net). |
Для формирования полной картины сбоя, потребуется взять во внимание совокупность всех сигнатур проблемы, в комплексе могущих дать понимание о природе сбоя (особое внимание обратить на имя класса-источника). Ну и для полноты картины можно привести открытые свойства типа System.Exception , которые можно найти в отчете отладчика/аварийном дампе памяти после прекращения работы приложения:
message | String | Содержит осмысленный (иногда) текст, описывающий причину исключения. Сообщение содержит технические подробности, которые могут оказаться полезными для технических специалистов/разработчиков. |
data | IDictionary | Ссылка на список пар в формате параметр-значение. Непосредственно перед вбросом исключения, код добавляет запись в этот набор. |
stacktrace | String | Имена/сигнатуры методов, вызов которых привел к возникновению исключения. Помогает обнаружить объект, являющийся источником исключения. |
source | String | Имя сборки, вбросившей исключение. |
innerexception | Exception | Указатель на «предыдущее» исключение (в случае, если текущее исключение было вброшено в ходе обработки другого). Часто содержит значение null . Тип Exception содержит также открытый метод GetBaseException , анализирующий список внутренних исключений и возвращающий самое первое. |
helpURL | String | URL документации с информацией об исключении. Обычно содержит null , поскольку с точки зрения безопасности сведения о необработанных исключениях не должны быть доступны. |
TargetSite | MethodBase | Имя метода, ставшего источником исключения. |
Возникает резонный вопрос: есть ли возможность, исключительно на основании представленной выше информации, сделать однозначный вывод о причине исключительной ситуации? Я думаю, исключать подобную возможность не стоит, поскольку все зависит от глубины теоретических и практических знаний, и если у Вас уже большая наработка данных об исключениях, то я думаю сможете сделать довольно точное предположение относительно причины сбоя. Для всех остальных разработан специализированный инструментарий.
Метод 1: отладка дампа .Net-приложения
Далеко не всегда у нас имеется возможность «живой отладки» сбойного .Net-приложения в реальном времени, непосредственно на системе пользователя, значительно чаще приходится довольствоваться созданным аварийным дампом. Стоит напомнить, что в случае приложений, написанных для платформы .Net Framework, мы имеем дело с управляемым кодом, в противоположность типовому неуправляемому коду классических приложений. Но так просто до управляемого кода с помощью отладчика не добраться.
Логично предположить, что если .NET представляет собой еще один уровень абстракции, то по сравнению с классическими (native) приложениями, отлаживать .Net-приложения классическими методами становится сложнее!!
Когда .Net-приложение «падает» (завершается аварийно) или «подвисает», специалист тут же получает большую проблему, поскольку очень сложно продраться сквозь нативный ассемблерный код, исследовать стеки вызовов, найти исходные тексты и строки структур .NET-приложения. Чтобы помочь исследователям увидеть при анализе дампа или живой отладке разнообразные структуры .Net-приложения, легче баражировать через комбинации управляемого и неуправляемого кода, специалисты Microsoft разработали расширение отладчика SOS , весь функционал которого сосредоточен в библиотеке sos.dll (являющейся частью .NET Framework).
SOS (Son of STRIKE) — расширение отладчика, которое можно использовать для отладки .NET-приложений с использованием серии отладчиков из комплекта Debugging Tools for Windows. Расширение предоставляет воистину великолепный набор команд, который позволяет разработчикам глубоко внедряться в CLR: просматривать очередь финализаторов, управляемые кучи, управляемые потоки, расставлять точки останова в управляемом коде, разбирать исключения и многое другое. Когда .NET Framework был в версии 1.0, разработчики Microsoft использовали расширение под названием STRIKE для решения определенных проблем в коде .NET, позднее, когда .NET Framework «повзрослел», расширение отладчика стало именоваться как Son of STRIKE (SOS).
Проблемы в .Net-приложениях [с управляемым кодом] могут диагностироваться из без расширения SOS, он этот подход требует превосходного знания разнообразных внутренних структур .Net. С расширением SOS все существенно упрощается, позволяя исследователям/разработчикам сфокусироваться на поиске источника проблемы. Поэтому расширение SOS предоставляет все необходимое для отладки приложений, в которых скомбинированы управляемый и неуправляемый код.
Создание дампа приложения
- В данном сценарии подразумевается, что мы уже имеем на руках дамп сбойного приложения (полученный от пользователя). Если дамп приложения необходимо создать, то можно посоветовать использовать один из следующих способов: с использованием CDB, при помощи ProcDump, с использованием встроенного механизма WER. Способ с ProcDump один из самых простых, поэтому скачиваем ProcDump.
- Запускаем сбойное приложение через ProcDump с использованием команды: procdump.exe -accepteula -e -w c:temp где параметр c:temp — любая временная директория по вашему выбору.
- Дожидаемся когда в приложении возникнет исключение;
- После падения приложения в каталоге C:TEMP получаем дамп приложения (файл с расширением .dmp);
Изучение дампа приложения
Наиболее часто встречающийся сценарий подразумевает, что вы используете отладчик для изучения дампа [приложения с управляемым кодом], созданного на другом компьютере. Общий алгоритм отладки, в этом случае, следующий:
- Устанавливаем пакет Debugging Tools for Windows.
- Запускаем отладчик WinDbg . По предварительной настройке отладчика можете почитать эту статью.
- Открываем дамп приложения через меню File — Open Crash Dump. . Мы работаем с дампом процесса, поэтому отладчик должен автоматически загрузить версию DAC (компонент доступа к данным, используемый SOS для связи с CLR), соответствующую версии CLR, используемую .Net-приложением на другой станции (на которой создавался дамп). Разрядность (32/64-бит) так же имеет значение. DAC в данном случае это библиотека mscordacwks.dll , которая входит в состав пакета .NET Framework.
- Если у Вас на компьютере нет подходящей версии .Net Framework, то можно загрузить требуемый DAC с публичного сервера символов Microsoft. Для этого, на всякий случай, если предварительная настройка на получение символов у вас не проведена, мы может настроиться вручную и выполнить серию команд: .sympath+ srv*
!sym noisy - Важно отметить, что при отладке с использованием расширения SOS необходимо использовать правильную версию SOS. Для загрузки требуемой отлаживаемому приложению версии DAC, присоединяем отладчик к .Net-приложению, после чего расширение SOS (sos.dll) загружается автоматически. Для этого выполним следующую команду: .cordll -ve -u -l если по каким-либо причинам этого не произошло, можно выполнить ручную загрузку SOS:
Источник: datadump.ru