DynInst (DynInst)
DynInst — мультиплатформенная библиотека патчинга исполнимого кода, разработанная в Университете Висконсина-Мэдисона и Университете Мэриленда, Колледж-Парк. Она может быть весьма полезной при разработке инструментов измерения производительности, отладчиков и симуляторов.
История
[править | править код]Работа над API началась в первой половине 90-х, а версия 1.0 вышла 23 сентября 1997 года. Затем выходили регулярные обновления, и последним на данный момент релизом является версия 6.0, выпущенная 2 июля 2009 года. На данный момент реализована поддержка двух основных операционных систем — Linux и Microsoft Windows, а также поддержка нескольких наиболее распространенных микроархитектур процессоров: Power/PowerPC (AIX), SPARC (Solaris), x86 (Linux и Windows NT/2K/XP), а также IA-64 (Linux)
Обзор
[править | править код]По своей сути, DynInst — это интерфейс программирования приложений (API), реализованный в виде библиотеки. API был разработан в рамках проекта Paradyn, целью которого являлось создание эффективного метода динамической инструментации без сильной модификации исполнимых файлов. Помимо самого DynInst API, в комплекте поставляются ещё несколько наборов API: SymtabAPI, StackwalkerAPI, InstructionAPI и DepgraphAPI (они также реализованы в виде библиотеки).
Обычный цикл разработки программы состоит из создания (правки) исходного кода, компиляции и запуска получившегося бинарного файла (двоичного кода). Иногда бывает гораздо удобнее влиять на исполнение программы без внесения изменений в исходный код, и тем самым обходясь без его перекомпиляции. Собственно, данный API и решает такую задачу. Он обеспечивает поддержку вставки кода в уже работающую программу. Целью данного API было обеспечение машинно-независимого интерфейса, позволявшего инструментам для разработки кода вносить изменения в код вне зависимости от платформы или архитектуры процессора.
Поддержка и дальнейшее развитие
[править | править код]В рамках поддержки и развития данного проекта в Университете Мэриленда регулярно проходят различные форумы, собрания, объявляются недели, посвященные проекту (например, в апреле 2009 года проходила Dyninst/Paradyn Week 2009). Кроме того, постоянно ведется тестирование API на предмет нахождения ошибок, а результаты публикуются на официальном сайте проекта.
Примечания
[править | править код]Ссылки
[править | править код]Это заготовка статьи о программном обеспечении. Помогите Википедии, дополнив её. |