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 на предмет нахождения ошибок, а результаты публикуются на официальном сайте проекта.

Примечания

Ссылки



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "DynInst" в других словарях:

  • DynInst — is a multi platform runtime code patching library developed at the University of Wisconsin–Madison and University of Maryland, College Park. It may be useful in the development of performance measurement tools, debuggers, and simulators. The most …   Wikipedia

  • Dynamic program analysis — is the analysis of computer software that is performed by executing programs built from that software system on a real or virtual processor. For dynamic program analysis to be effective, the target program must be executed with sufficient test… …   Wikipedia

  • Динамический анализ кода — (англ. Dynamic program analysis)  анализ программного обеспечения, выполняемый при помощи выполнения программ на реальном или виртуальном процессоре (анализ, выполняемый без запуска программ называется статический анализ кода). Утилиты… …   Википедия

  • Just-in-time compilation — In computing, just in time compilation (JIT), also known as dynamic translation, is a method to improve the runtime performance of computer programs. Historically, computer programs had two modes of runtime operation, either interpreted or static …   Wikipedia

  • Performance analysis — In software engineering, performance analysis, more commonly today known as profiling, is the investigation of a program s behavior using information gathered as the program executes (i.e. it is a form of dynamic program analysis, as opposed to… …   Wikipedia

  • List of performance analysis tools — This is a list of performance analysis tools for use in software development.Multiple languagesThe following tools work for multiple languages or binaries. * Valgrind is a GPL d system for debugging and profiling x86 Linux programs. You can… …   Wikipedia

  • Profiling (computer programming) — In software engineering, profiling ( program profiling , software profiling ) is a form of dynamic program analysis that measures, for example, the usage of memory, the usage of particular instructions, or frequency and duration of function calls …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»