Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КонспЛекций_ГСиИО_Козак.doc
Скачиваний:
102
Добавлен:
06.12.2018
Размер:
8.64 Mб
Скачать

Примеры:

Следующая команда отображает содержимое массива по адресу 00ad28d0. Выводятся данные для пяти элементов массива, начиная со второго.

!dumparray -start 2 -length 5 -detail 00ad28d0

Следующая команда отображает содержимое сборки по адресу 1ca248.

!dumpassembly 1ca248

Следующая команда отображает информацию о куче сборщика мусора.

!dumpheap

Следующая команда записывает содержимое журнала нагрузок в памяти в файл Stresslog.txt, расположенный в текущем каталоге.

!DumpLog

Следующая команда отображает информацию об объекте по адресу a79d40.

!DumpObj a79d40

ADPlus

ADPlus - это средство службы технической поддержки Майкрософт (Product Support Services - PSS), предназначенное для устранения неполадок в любом процессе или приложении, в которых произошел сбой (аварийное завершение работы) или которые перестали отвечать («зависли»). Средство ADPlus (ADPlus.vbs) в большинстве случаев можно использовать вместо монитора исключений Microsoft Internet Information (IIS) Server Exception Monitor (6.1/7.1) и дампа процесса пользовательского режима (User Mode Process Dump). Эти два средства часто используются службой технической поддержки для определения причины отсутствия ответа (зависание) или неожиданного (аварийного) завершения работы в среде Microsoft Windows DNA.

Средство ADPlus следует использовать для сбора данных в случае перечисленных ниже проблем.

  • Процессы, которые перестали отвечать на запросы.

  • Процессы, которые загружают процессор на 100% для однопроцессорного компьютера, на 50% - для компьютера с двумя процессорами, на 25% - для компьютера с четырьмя процессорами и т.д.

  • Процессы, которые неожиданно завершают работу.

Debug Diagnostic Tool 1.1

Программа для диагностики системы с целью выяснения причин нестабильной работы приложений и компонентов ОС. Debug Diagnostic Tool может помочь в выяснении причин зависания программ, падения производительности системы, утечки и фрагментации оперативной памяти, остановки из-за ошибки пользовательских приложений. Для определения проблем в программе используются два метода: снятие образа оперативной памяти с последующим анализом и подключение к запущенной программе специальной библиотеки, которая ведет наблюдение за распределением памяти. Кроме того, здесь присутствуют отладочные скрипты для диагностики работы Internet Information Services (IIS) приложений и тестирования работы COM+ компонента и других, связанных с ним технологий Microsoft.

.Net Reflector

Единственный существующий браузер классов .NET компонентов. Эта уникальная утилита позволяет просматривать мета данные, IL-инструкции, ресурсы и XML документацию, сохраненные в .NET сборках. Более того .NET Reflector является отличным IL-декомпилятором, который значительно проще и удобнее в использовании, нежели Microsoft'овский IL Disassembler. Приложение отлично позволяет декомпилировать код сборок .NET (exe, dll) в код IL, C#, VB .NET, и в другие языки (существует так же поддержка множества plugin'ов). Например, полезный плагин для рефлектора – он генерирует проекты для Visual Studio из сборки, загруженной в рефлектор, думаю переоценить насколько это полезно очень сложно.

Рис. 22 Применение средства дизассемблирования .Net Reflector

Другой полезный плагин генерирует граф зависимостей между сборками

Рис. 23 Плагин Graph для .Net Reflector

P2. Лекция № 7. С# и С++ в приложениях систем управления

С# и С++ в приложениях систем управления. Управляемый и не управляемый код. Преимущества и недостатки неуправляемого кода. Управление памятью, сборщик мусора в C#. Обработка исключений.

Программный код, выполняющийся под управлением CLR, называется управляемым кодом.

Программный код, выполняющийся вне среды выполнения CLR, называется неуправляемым кодом.

Представителями неуправляемого программного кода являются:

  • функции Win32 API;

  • компоненты COM;

  • интерфейсы ActiveX.

.NET появилась не первой средой разработки. Вновь разрабатываемый управляемый код вынужден взаимодействовать с существующим неуправляемым программным кодом. Поэтому на платформе .NET предусмотрены различные сценарии установления взаимодействия между управляемым и неуправляемым кодами. Microsoft .NET Framework обеспечивает взаимодействие с компонентами COM, службами COM+, внешними библиотеками типов и многими службами операционной системы.

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

Реализованные в .NET языки программирования позволяют создавать управляемый код, который может взаимодействовать с неуправляемыми библиотеками Win32 и компонентами на основе модели компонентных объектов Microsoft (COM).

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