Универсальная среда разработки. Универсальные интегрированные среды разработки. Средства отладки и вспомогательные средства

[Дополнительная информация]

Ifs Kit help или DDK help: Driver Writers Guide\Driver Development Environment

[Л. 1] Chapter 18. Buildind and debugging drivers

[Л. 2] Chapter 8. Device Driver Structure; Chapter 9. Debugging a Device Driver

В этом разделе мы рассмотрим следующие вопросы:

    Необходимое ПО

    Установка и настройка

Необходимое ПО:

    Операционная система, Service Pack и отладочная информация

    Компилятор

    Средства отладки и вспомогательные средства

Операционная система имеет 2 варианта поставки:

    Checked build (Debug build)

    Free build (Retail build)

Free build – обычная поставка. Включена полная оптимизация и отсутствует специализированные отладочные возможности.

Checked build – специально разработана для использования разработчиками драйверов. Оптимизации почти нет, что способствует лучшему пониманию кода при работе под отладчиком. Специализированный отладочный код встроен во многие функции для проверки правильности параметров и перехвата ошибочных ситуаций. Поставляется только в составе подписки MSDN.

В комплекте с ОС нам понадобится отладочная информация (файлы с расширением.dbgи.pdb). Она содержит сопоставление адресов внутри конкретного исполняемого файла с символическими именами функций и переменных и может быть использована отладчиками.

Необходимо подчеркнуть, что символьная информация различна для checkedи freeверсий системы.

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

Для checkedи freeверсий системы необходимы отдельные версии SP. Кроме того, ОС и SP могут различаться по поддержке криптоалгоритмов (40-128 бит), что может влиять на возможность установки SP.

Компилятор . Хотя принципиально могут использоваться компиляторы различных производителей, структура заголовочных файлов и переменных окружения, поставляемых Microsoft для создания драйверов оптимизирована для использования компилятораMicrosoft Visual C. Версия компилятора должна быть не ниже 4.1, однако реально необходимая версия будет зависеть от двух других компонентов – SDKи DDK.

MSDN Library . При установке Developer Studio запрашивается установка MSDN Library –продукт, предоставляющий информацию о разработке ПО на всех поддерживаемых платформах Microsoft.

SDK . В ранних версиях комплект назывался Win32 SDK , сейчас – Platform SDK . Это необязятельный, но желательный для разработки драйверов компонент. Содержит заголовочные файлы, lib-файлы, документацию и примеры программирования на пользовательском уровне с использованием подсистемы Win32.

DDK . Существуют DDKдля Windows 95, Windows 98, Windows NT 4.0и Windows 2000. DDKдолжен соответствовать платформе, для которой предполагается создание драйвера, но не обязательно – на которой производится создание. Мы будем пользоваться DDKдля Windows NT 4.0. DDKсодержит заголовочные файлы, документацию и примеры написания драйверов, за исключением драйверов файловой системы.

IFS Kit . Пакет для создания драйверов файловой системы. Поставляется как отдельный от подписки MSDNпродукт. Существуют версии для Windows 98, Windows NT 4.0и Windows 2000. Последние версии включают в себя DDK, но с другим набором примеров. Более ранние версии требовали предварительной установки DDK.

Между перечисленным набором компонентов существует взаимосвязь:

Первым ставится компилятор. Как уже говорилось, хотя существует возможность использования компиляторов других фирм, SDKи DDK предполагают наличие именно Visual C, причем в зависимости от времени выхода SDKи DDK предполагаются различные версии компилятора (при линковке будут указаны библиотеки от различных версий – этим грешит SDK, либо будут некорректно запускаться командные файлы инициализации переменных окружения – этим грешит DDK). Кроме того, ранние версии DDK требовали обязательного наличия установленного SDK. Из возможных проблем еще стоит указать то, что при использовании ОС Windows NT Workstation могут не устанавливаться системные переменные окружения.

Расположение командных файлов для установки переменных окружения:

    VC98\bin\vcvars32.bat

    Mstools\setenv.bat

    Ddk\bin\setenv.bat

При наличии версии DDK, требующей наличия SDK, из файла Ddk\bin\setenv.bat должны быть исключены строки проверки наличия SDK и запуска его файла setenv.bat, и прописан вызов vcvars32.bat, как это сделано на рабочих местах, где будут проходить л/р.

Средства отладки и вспомогательные средства.

Выбор средства отладки – важный момент, который может влиять на набор необходимых аппаратных средств.

Вместе с продуктами Microsoft поставляются 4 отладчика:

KD ,консольная программа для отладки драйверов режима ядра, находится в директории bin пакета DDK для NT4и Win2000. (i386kd.exe, ia64kd.exe, alphakd.exe, mipskd.exe)

NTSD ,консольная программа для отладки программ и драйверов пользовательского режима,находится в директории system32 ОСWindows 2000.

CDB ,вариант NTSD,содержится в директории bin пакетаDDK для Windows 2000.

WinDbg ,графический отладчик для отладки кода как пользовательского режима, так и режима ядра, содержится в директории bin пакетаDDK для Win2000 и Platform SDK.

Из всех перечисленных вариантов упоминания достоин только отладчик WinDbg. Он предоставляет удобный пользовательский интерфейс, однако очень неустойчив в работе, плохо документирован и не имеет поддержки от Microsoft. Для использования этого продукта для отладки драйверов необходимы 2 компьютера – Development Рlatformи Test Platform. Отладчик доступен для всех поддерживаемых платформ, при этом возможна кроссплатформенная отладка. Поддерживается работа на мультипроцессорных системах.

Лучшим отладчиком для отладки ОС и драйверов многие разработчики с полным основанием считают SoftICEфирмы NuMega. Стабильный в работе, хорошо документированный, поддержка от фирмы. Отладка осуществляется на том же компьютере, на котором проводилась разработка, однако возможна и удаленная отладка посредством dos-программы serial.exe. Недостатком можно считать пользовательский интерфейс, однако это дело привычки. Более серьезными недостатками является ограничение поддержки процессоров только платформой intel, а также отсутствие поддержки мультипроцессорных систем (однако система все еще активно развивается).

На рабочих местах для выполнения л/р установлен SoftIce в составе пакета NuMega Driver Studio v 2.0. Имеется полная документация в формате pdf.

На рабочих местах имеется также ряд вспомогательных средств для удобства в исследовании ОС и поведения драйверов. Часть этих средств снабжена исходными текстами, и все они могут являться хорошим наглядным пособием для написания драйверов. Перечислим эти средства:

    Monitor – просмотр трассировочной информации, выводимой драйверами и прикладными программами.

    Winobj – просмотр пространства имен диспетчера объектов

    Handleex – информация о запущенных процессах, всех открытых ими описателях и подгруженных модулях dll.

    Filemon – просмотр активности файловых систем, в том числе mailslotи npfs

    Regmon – отслеживание обращений к реестру, в том числе на этапе загрузки системы

    Portmon – отслеживание обращений к последовательным и параллельным портам

    Tdimon – отслеживание запросов TDI.

    Tokenmon – отслеживание работы системы, касающихся srm.

    Интегрированная среда разработки - программный комплекс, предназначенный для продуктивной разработки прикладных систем и состоящий: из редакторов исходных текстов и ресурсов; из компилятора; из отладчика; из средств управления проектом и оперативной помощи; + включающий… … Финансовый словарь

    Интегрированная среда разработки приложений

    Среда разработки программного обеспечения - (Интегрированная) среда разработки программного обеспечения (англ. IDE, Integrated development environment) система программных средств, используемая программистами для разработки программного обеспечения. Обычно среда разработки включает в себя… … Википедия

    среда разработки ПО - 3.62 среда разработки ПО: Интегрированная система, включающая в себя аппаратные средства, ПО, программно аппаратные средства, процедуры и документы, необходимые для разработки ПО. Источник: ГОСТ Р 51904 2002: Программное обеспечение встроенных… …

    Eclipse (среда разработки) - У этого термина существуют и другие значения, см. Eclipse. Eclipse … Википедия

    Delphi (среда разработки) - У этого термина существуют и другие значения, см. Delphi. Embarcadero Delphi … Википедия

    среда - 3.3.3 среда (environment): Связь между синтаксисом и семантикой. Примечание В контексте настоящего стандарта объект environment привязывает к объекту generic variable (синтаксису) соответствующее ему значение (семантику), представленное объектом… … Словарь-справочник терминов нормативно-технической документации

    среда верификации/тестирования ПО - 3.63 среда верификации/тестирования ПО: Интегрированная система, включающая в себя аппаратные средства, ПО, программно аппаратные средства, процедуры и документы, необходимые для выполнения верификации/тестирования ПО. Элементами данной среды… … Словарь-справочник терминов нормативно-технической документации

    Turbo Pascal - У этого термина существуют и другие значения, см. Turbo. Turbo Pascal Среда разработки Turbo Pascal 7.1 Тип … Википедия

    ДРАКОН - Эта статья предлагается к удалению. Пояснение причин и соответствующее обсуждение вы можете найти на странице Википедия:К удалению/28 сентября 2012. Пока процесс обсуждения не завершён, статью мож … Википедия

Книги

  • , И. И. Попов , О. Л. Голицына , Рассмотрены основные принципы программирования на языках высокого уровня: основные управляющие структуры программирования; стандартные типы данных; структуры данных; процедуры и функции;… Категория: Пособия и справочники Серия: Лазерная техника и технология Издатель: Форум , Производитель: Форум , Купить за 2039 грн (только Украина)
  • Программирование на языках высокого уровня: Учебное пособие , Голицына О.Л. , Рассмотрены основные принципы программирования на языках высокого уровня: основные управляющие структуры программирования; стандартные типы данных; структуры данных; процедуры и функции;… Категория:

NetBeans IDE - интегрированная среда разработки приложений, бесплатная IDE с открытым исходным кодом.
Предназначена для профессиональной разработки десктоп приложений, web-приложений, корпоративных систем, программ для мобильных устройств. NetBeans - единственная IDE, которая устроит и начинающего разработчика и профессионала.

Особенности программы:

  • Поддерживаемые языки программирования: Java, JavaFX, PHP, JavaScript, Ruby, Groovy, Python и C/C++, а также все языки разметки: HTML, XML и стили CSS.
  • Поддерживает технологии: J2SE, J2EE, J2ME, JavaFX SDK, PHP Zend framework, UML, SOA, Ajax, Ruby on Rails, Groovy and Grails.
  • NetBeans IDE является платформой для построения десктоп приложений с функциональным пользовательским интерфейсом, т.к. представляет из себя фреймворк к Java библиотеке Swing. Это сэкономит массу времени тому, кто не поленится ознакомиться с особенностями программирования на платформе NetBeans.
  • NetBeans IDE является платформой для создания плагинов и расширения своей функциональности.
  • Основные функции: рефакторинг, профилирование, работа с CVS и SVN, работа с удалённым сервером через FTP, визуальный редактор пользовательских интерфейсов, подсветка синтаксических конструкций, автодополнение, показ справки на лету, возможность использования готовых шаблонов кода, интеграция с серверами - автоматическое развёртывание приложений, управление сервером и т.д.
  • Расширенные возможности по работе с базами данных - встроенный клиент к базам данных - MySQL, Postgres, Oracle и др., редактор запросов SQL.

Подробное описание возможностей NetBeans - NetBeans - универсальная IDE .
NetBeans для WEB разработки - NetBeans и PHP - настройка NetBeans IDE для WEB программирования .
Программирование на PHP Smarty в NetBeans .
Работа с Apache Tomcat в NetBeans - Настройка и начало работы с сервером Apache Tomcat в NetBeans IDE .

Eclipse - бесплатная программная платформа с открытым исходным кодом, контролируется организацией Eclipse Foundation. Написана на языке программирования Java и основной целью её создания является повышение продуктивности процесса разработки программного обеспечения.

IDE разработанные на базе платформы Eclipse применяются для создания программного обеспечения на различных языках программирования. Eclipse является платформой для разработки любых интегрированных сред программирования и практически любого клиентского программного обеспечения.

Как использовать Eclipse и где загрузить - Обзор платформы Eclipse .
Установка и знакомство с интерфейсом и принципами Eclipse IDE .

Aptana Studio - бесплатная IDE, профессиональная среда разработки Web 2.0 приложений.

Используется для создания веб приложений с поддержкой всех современных технологий - HTML5, CSS3, JavaScript, Ruby, Rails, PHP и Python.

Основные возможности Aptana Studio:

  • Имеет мощные функции по работе с кодом HTML, CSS, JavaScript, PHP, Ruby - редактирование, просмотр структуры кода, мгновенный предпросмотр в распространённых моделях браузеров.
  • Работа с использованием последних спецификаций HTML 5 и CSS3. Разработчику предоставляется подробная информация о поддержке каждого элемента в распространённых веб-браузерах.
  • Встроенный отладчик позволяет устанавливать точки останова, просматривать значения переменных и контролировать исполнение программы. Также в наличии интегрированный Ruby and Rails отладчик.
  • Мастер развертывания приложений позволяет работать с удалёнными проектами с использованием FTP, SFTP, FTPS протоколов.
  • Поддержка совместной работы над проектами.
  • Поддержка работы из командной строки.
  • Расширенные возможности по настройке IDE, возможность создания пользовательских скриптов.
  • Подключаемые модули для расширения функциональности IDE.

Скачать Aptana Studio 3 с официального сайта: http://www.aptana.com/products/studio3/download.html

Code::Blocks - это бесплатная C и C++ IDE с открытым исходным кодом, приложение расширяемое, полностью настраивается и может работать на нескольких платформах.

Это программное обеспечение разработано для Windows, Linux, FreeBSD и Mac OS X. Оно создано с использованием плагинов и может быть расширено путём установки или создания дополнительных компонентов.

Особенности CodeBlocks:

  • Программа имеет WYSIWYG-редактор для библиотеки wxWidgets для разработки графического интерфейса пользователя (GUI).
  • Поддержка нескольких компиляторов: MinGW/GCC C/C++, Microsoft Visual C++, Borland C++ и др.
  • Настраиваемый и расширяемый пользовательский интерфейс с поддержкой вкладок, с подсветкой синтаксиса, сворачиванием блоков кода, авто-завершением кода, интеллектуальными отступами и браузером классов.
  • Имеется быстрая система сборки и используются рабочие пространства для объединения нескольких проектов.
  • Code::Blocks имеет расширенную функциональность для отладки и поддерживает GNU GDB и MS CDB.
  • Кроме того, у программы есть полная поддержка точек остановки (breakpoints), отображение стека вызовов, дизассемблер, настраиваемый дамп памяти и отображение информации профайлера (GNU Profiler).
  • IDE совместима с MSVC и Dev-C++, может импортировать проекты и рабочие пространства.

Скачать Code::Blocks для Windows, Linux или Mac OS X: http://www.codeblocks.org/downloads

Dev-C++ - интегрированная среда разработки на C и C++, полнофункциональная C++ IDE.

Возможности DevCpp:

  • Удобный редактор с подсветкой синтаксиса, нумерацией строк, автоотступами и т.д.
  • Возможность автозавершения кода для удобства работы и повышения производительности.
  • Заготовки кода и шаблоны для вставки.
  • Использование закладок в редакторе для быстрого перемещения по коду.
  • Экспорт исходных файлов или целого проекта в HTML или RTF для публикации исходных кодов на своём веб сайте.
  • Встроенный менеджер проектов.
  • Импорт проектов из MS Visual C++.
  • Возможность настройки ассоциации файлов по расширению - c, cpp, h и т.д.
  • В навигаторе классов два варианта обзора - просмотр функций, классов и их членов как для всего проекта, так и для текущего редактируемого файла.
  • Гибкая настройка рабочей среды, редактора и компилятора, большое количество различных опций.
  • Используется Mingw GCC компилятор, может работать с любым компилятором GCC.
  • Воможность отладки проекта - встроенный дебаггер GDB.
  • Возможна работа с CVS (скачивается отдельно).
  • Существует портабельная версия программы, не требующая установки.
  • Мультиязычный пользовательский интерфейс с поддержкой русского и украинского языков.

Чтобы начать использовать программу прямо сейчас,
читайте статью


Удобство и скорость разработки.

Александр Макарчук , qb
Повышение скорости и удобства разработки.

Александр Смирнов , Greensight
Ускорение разработки, уменьшение ошибок, просто удобство.

2. Важно ли обучать разработчиков использованию IDE? Почему?

Алексей Федоров , Одноклассники
Это интересная идея. Наверняка есть компании, которые готовы в это вложиться.

, ADV
Если разработчик не будет знать базовых вещей IDE, то разработка будет занимать больше времени. В современном мире это уже требование к профессии.

Александр Макарчук , qb
Нет, не нужно. Обучать - это навязывать свое. Каждый разработчик работает на том, что ему удобно. При этом всегда можно показывать преимущества своего IDE.

Александр Смирнов , Greensight
Это скорее вопрос к каждому разработчику отдельно - что ему удобнее. Но на ранних этапах умное автодополнение и подсветка ошибок практически незаменимы.

3. Большинство качественных IDE платные. Стоит ли тратиться на лицензии?

Алексей Федоров , Одноклассники
Стоит. Текущая ситуация на рынке такова, что платные IDE, как правило, сильно лучше бесплатных.

Алексей Персианов, Михаил Парфенюк , ADV
Если хотите качественную IDE, то стоит потратиться. Если не поддерживать разработчиков качественных IDE «рублем», то они не будут делать качественные IDE

Александр Макарчук , qb
Если целесообразно, то, конечно, нужно. Время - деньги.

Александр Смирнов , Greensight
В зависимости от потребностей и средств. Кому-то хватает Sublime, кто-то хочет использовать продукты Jetbrains, кому-то неизбежно приходится покупать Xcode.

4. Чего не хватает современным IDE? Может ли на этом рынке появиться гигант, подобный JetBrains?

Алексей Федоров , Одноклассники
Может. Но конкурировать с ними будет трудно: разработка IDE - это сотни человеко-лет работы и десятки миллионов долларов.

Алексей Персианов, Михаил Парфенюк , ADV
В данный момент JetBrains захватила данный рынок, и в ближайшее время вряд ли появится что-то лучше.

Александр Макарчук , qb
Всегда будет появляться что-то новое, и IDE не исключение. Преимущество новых проектов всегда в том, что они учитывают недостатки старых.

Александр Смирнов , Greensight
Если появится что-то лучше, то почему бы и нет.

5. Какие еще существуют или могут появиться инструменты, ускоряющие разработку и облегчающие жизнь разработчикам?

Алексей Федоров , Одноклассники
Сборщики проектов, баг-трекеры, системы контроля версий, системы непрерывной сборки и интеграции и многие-многие другие.

Алексей Персианов, Михаил Парфенюк , ADV
Например, CI системы.

Александр Смирнов , Greensight
Сложно сказать. Все больше сторонних инструментов интегрируется в IDE, нежели существуют отдельно.

6. Какие тренды в развитии функционала IDE вы бы могли отметить в последние годы?

Алексей Федоров , Одноклассники
Интеграция с другими системами, такими как баг-трекеры, сервера VCS или CI. И конечно, скорость - тормозят современные IDE сильно меньше, чем 10 лет назад.

Алексей Персианов, Михаил Парфенюк , ADV
Переход всех платных IDE к распространению по подписке.

Александр Макарчук , qb
Подписки. Всегда проще заплатить меньшую сумму, особенно если есть сомнения в выборе или еще не привык к инструменту.

Александр Смирнов , Greensight
Развитие плагинов, интеграций со сторонними утилитами и софтом, улучшение автодополнения.

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

Начнём с официальных представителей лидеров мобильного рынка: Windows, Google и Apple.

Visual Studio 2015

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

Недостатки: новичку будет просто невозможно самостоятельно разобраться с Visual Studio без прохождения специальных курсов и чтения литературы. Это продукт скорее для опытных разработчиков, обращающих внимание на качество редактора и функции тестирования.

Android Studio

Описание: относительно молодая и стремительно развивающаяся IDE, ориентированная на разработчиков приложений для Android.

Недостатки: скупые возможности персонализации проявляются в редакторе кода и общих настройках. Мелочь, а неприятно.

XCode

Описание: IDE, ориентированная на создание приложений для OS X и iOS. Для использования языков Objective C и Swift на сегодня это лучшее, а для некоторых задач и вовсе единственное решение.

Недостатки: многие разработчики жалуются на стабильность среды, вынуждающую вносить дополнительные изменения в свои проекты после выхода очередной версии. Кроме того, XCode относительно сложная IDE для самопознания новичком. Именно поэтому рекомендуем вам пройти наш . На нем мы рассмотрим тонкости работы с этой IDE.

От официальных представителей перейдём к универсальным кроссплатформенным средам разработки:

Xamarin Studio

Описание: популярный инструмент разработки приложений под Windows, Phone, Android и iOS, использующий по сути только один язык - C#. Помимо непосредственно Xamarin Studio вы также можете пользоваться плагином для Visual Studio.

Недостатки: незначительные, но тем не менее регулярные ошибки, как непосредственно в самой IDE, так и в выходном коде. Также, несмотря на репутацию кроссплатформенной среды, портировать уже готовые приложения на Xamarin достаточно затруднительно.

IntelliJ IDEA

Описание: IDE, разработанная компанией JetBrains, позволяющая создавать программы на множестве популярных языков, среди которых Java, JavaScript, Python, Ruby, Groovy, Scala, PHP, C, C++.

Недостатки: производительность. Томительное ожидание выполнения компиляции, перекомпиляции, тестирования порой действительно раздражает.

Appcelerator Titanium

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

Недостатки: возможности, предоставляемые Appcelerator Titanium имеют и обратную сторону: генерируемые ошибки в коде, искусственные ограничения, недостаточно качественная документация.

Eclipse

Описание: среда разработки, изначально ориентированная на работу с Java, прославилась большим количеством внешних модулей, существенно расширяющих её функциональность (в том числе, это касается количества поддерживаемых языков).

Недостатки: существенная нехватка документации, нет единого сообщества разработчиков.

Netbeans

Описание: мощная IDE для разработки приложений на Java, JavaScript, Python, PHP, C, C++ и даже Ада.

Недостатки: невысокое быстродействие из-за концепции «всё в одном». Некоторые плагины (в том числе для разработки приложений для Android) имеют существенные ограничения функциональности.

PhoneGap

Описание: необычная среда разработки кроссплатформенных приложений, не требующая знания «родных» языков. То есть для того, чтобы создать приложение для Android, знание Java вам не потребуется. Используются JavaScript в связке с HTML5 и CSS3.

Недостатки: ограниченная функциональность вызванная непосредственно основной идеей нецелевой среды разработки.

А какими IDE пользуетесь вы? И какие у них недостатки?