Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UMKD_Interfeysy.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
3 Мб
Скачать
☆

Вопросы

  1. Возможности перехода исходных кодов языка C++ на платформу .Net.

  2. Способ взаимодействия .NET c COM сервисом.

  3. Способ взаимодействие COM клиента c сервисом .NET.

  4. Использование библиотек неуправляемого кода в .NET.

Лекция №13-14. Инструменты отладки приложений в .Net Framework 2.0 и выше.

Утилиты: WinDbg + SOS, adplus.vbs Debug Diagnostic Tool v1.1; Reflector;  CLR Profiler for the .NET Framework 2.0, или более удобный JetBrains dotTrace.WinDbg.

Microsoft Windows Debugger (далее по тексту просто WinDeb) входит в состав множества продуктов: Platform SDK, DDK, WDF, а также поставляется вместе с самостоятельным пакетом «Debugging Tools for Windows», занимающим чуть больше 15 Мб. Причем версия WinDeb из комплекта «Debugging Tools for Windows» обычно самая свежая и содержит наибольшее количество всяких полезных расширений. Скачать ее можно с официального сайта Microsoft. WinDbg.exe - представляет собой типичное GUI-приложение, довольствующееся одним компьютером и позволяющее отлаживать прикладные программы, анализировать дампы памяти, следить за (шпионить) событиями, происходящими в системе. Для отладки драйверов требуется второй компьютер, соединенный сетью или шнурком, но мы обойдемся и без шнурка. SOS Расширение отладки SOS (SOS.dll) помогает отлаживать управляемые программы в отладчике WinDbg.exe и в Visual Studio, предоставляя информацию о внутренней общеязыковой среде выполнения (CLR).Для работы с расширением отладки SOS его следует загрузить в отладчик WinDbg.exe или в Visual Studio 2005. Команды можно выполнять в среде WinDgb.exe или в окне интерпретации Visual Studio.Расширение отладки SOS позволяет просматривать информацию о коде, выполняемом в общеязыковой среде выполнения. Например, с помощью расширения отладки SOS можно получать сведения об управляемой куче, искать повреждения кучи,отображать внутренние типы данных, используемые средой выполнения, и просматривать информацию о любом управляемом коде, запущенном в среде выполнения.

Загрузка расширения отладки SOS

Чтобы загрузить расширение отладки SOS в отладчик WinDbg.exe, выполните в отладчике показанную ниже команду; чтобы загрузить расширение отладки SOS в Visual Studio, выполните эту команду в окне интерпретации во время отладки:  .loadby sos mscorwks.Перед загрузкой расширения отладки SOS необходимо включить отладку неуправляемого кода в настройках проекта решения. В некоторых языковых версиях отладка неуправляемого кода по умолчанию отключается.

Примечание. Чтобы открыть окно интерпретации в Visual Studio 2005, откройте меню Отладка, откройте меню Окна и выберите пункт Интерпретация. Окно интерпретации Visual Studio можно также открыть, нажав клавиши CTRL-ALT-I.

Примеры: Следующая команда отображает содержимое массива по адресу 00ad28d0. Выводятся данные для пяти элементов массива, начиная со второго. dumparray -start 2 -length 5 -detail 00ad28d0 Следующая команда отображает содержимое сборки по адресу 1ca248.dumpassembly 1ca248.Следующая команда отображает информацию о куче сборщика мусора. Dumphea.Следующая команда записывает содержимое журнала нагрузок в памяти в файл Stresslog.txt, расположенный в текущем каталоге.DumpLog.Следующая команда отображает информацию об объекте по адресу a79d40.DumpObj a79d40ADPlus.

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 из сборки, загруженной в рефлектор, думаю переоценить насколько это полезно очень сложно. Другой полезный плагин генерирует граф зависимостей между сборками Рис. 16 Применение средства дизассемблирования .Net Reflector

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

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

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

  • функции Win32 API;

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

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

.NET появилась не первой средой разработки. Вновь разрабатываемый управляемый код вынужден взаимодействовать с существующим неуправляемым программным кодом. Поэтому на платформе .NET предусмотрены различные сценарии установления взаимодействия между управляемым и неуправляемым кодами. Microsoft .NET Framework обеспечивает взаимодействие с компонентами COM, службами COM+, внешними библиотеками типов и многими службами операционной системы.CLR скрывает имеющиеся в управляемой и неуправляемой моделях различия. Проблемы, связанные с типами данных, механизмами обработки ошибок и т. д. в управляемой и неуправляемой моделях, решаются CLR "незаметно" как для вызывающей стороны (клиента), так и для вызываемой стороны (серверA. Таким образом, организация взаимодействия между управляемым и неуправляемым кодом выглядит проще, чем могло быть.Реализованные в .NET языки программирования позволяют создавать управляемый код, который может взаимодействовать с неуправляемыми библиотеками Win32 и компонентами на основе модели компонентных объектов Microsoft (COM). Язык программирования C++ .NET является единственным, который позволяет создавать как управляемый, так и неуправляемый код. Это дает возможность не только использовать неуправляемый библиотечный код, но и смешивать управляемый и неуправляемый коды в одном приложении.

Базовые различия

При работе с управляемым кодом программист размещает объекты в управляемой динамически распределяемой области памяти, используя оператор new (создать), причем освобождать их с помощью соответствующих операторов delete (удалить) не нужно. Это освобождает программиста от заботы об утечках памяти, и позволяет сосредоточить основное внимание на важных и полезных задачах, таких как более точная реализация проекта программы, что повышает производительность программирования и качество программного обеспечения. Неуправляемый код C++ .NET должен самостоятельно управлять динамически распределяемой областью в памяти традиционными способами C++, используя операторы new (создать) и delete (удалить). Так как одним из наиболее общих недостатков в программах на C++ является ужасающая утечка памяти, поэтому использование управляемого кода C++ .NET может оказать очень положительное воздействие на многие разработки программного обеспечения.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]