Динамічний аналіз коду (англ. Dynamic program analysis) — аналіз програмного забезпечення, що виконується за допомогою виконання програм на реальному або віртуальному процесорі (на відміну від статичного аналізу). Утиліти динамічного аналізу можуть вимагати завантаження спеціальних бібліотек, перекомпіляцію програмного коду. Деякі утиліти можуть інструментувати код, що виконується, у процесі виконання або перед ним. Для більшої ефективності динамічного аналізу вимагається подача досліджуваної програмі достатньої кількості вхідних даних, щоб отримати повніше покриття коду. Також потрібно подбати про мінімізації впливу інструментування на виконання програми, що досліджується (включаючи часові характеристики).
Приклади утиліт
- Valgrind, виконує програму на віртуальному процесорі, може виявляти помилки пам'яті (наприклад, пов'язані з неправильним використанням функцій malloc і free), ситуації гонки потоків (race conditions) в багатопоточних програмах.
- Pin
- DynamoRIO
- Dmalloc, бібліотека для перевірки виділення і звільнення пам'яті, а також витоків пам'яті, повторного звільнення тощо. Програму треба перекомпілювати, крім того, у всі файли необхідно підключити заголовковий файл мови Сі dmalloc.h для отримання точніших звітів.
- jTracert[недоступне посилання з квітня 2019], Java агент (що завантажується за допомогою аргументу -javaagent:), який інструментує код існуючих додатків, що працюють у віртуальній машині JVM, і автоматично будує діаграми послідовності (sequence diagrams).
- Daikon [ 24 грудня 2013 у Wayback Machine.] — реалізація динамічного детектора інваріантів. Проводиться пошук значень, обчислених програмою і пошук властивостей, які були вірні при запуску, і, найбільш імовірно, будуть вірні при всіх запусках.
- DynInst — бібліотека, що модифікує код під час виконання. Корисна при розробці програм динамічного аналізу, допомагає додавати в ПЗ, що досліджується, налагоджувальні точки (probes). В основному Dyninst, не вимагає перекомпіляції програм, однак, non-stripped executables і файли, що виконуються, з налагоджувальною інформацією простіше піддаються інструментуванню.
- від компанії Security innovation це програма, яка симулює помилки для динамічного аналізу і надійності програм для Windows.
- IBM Rational Purify: в основному виявляє помилки при роботі з пам'яттю (вихід за межі масивів, витоки пам'яті).
- BoundsChecker: можливості, схожі з IBM Purify.
- VB Watch додає код динамічного аналізу в програми на мові Visual Basic для моніторингу їх продуктивності, стеку викликів, траси виконання, змінних і покриття коду.
- Insure++ — аналізатор пам'яті і детектор помилок. Компонент Inuse дозволяє побачити графічно історію виділення пам'яті, аналізувати використання купи, шукати витоку пам'яті тощо
- — аналізатор помилок у багатопотокових застосунках. Виявляє помилки конкурентного доступу до даних і ситуації взаємоблокувань. Працює з додатками для Windows і Linux.
- CHESS — інструмент для тестування багатопотокових .Net (керованих) і Win32, 64 програм
Більша частина [en] використовує методи динамічного аналізу програм.
Історичні приклади
- IBM OLIVER: інтерактивна система тестування і налагодження CICS, що використовує симулятор набору команд
- SIMON аналізатор пакетних програм, система тестування і налагодження, використовує симулятор
- SIMMON: внутрішній симулятор IBM, що застосовувався при розробці компонент ОС, утиліт і процесорів вводу-виводу
Див. також
- Аналіз продуктивності
- Аналіз програм
- Статичний аналіз коду
Примітки
- . Архів оригіналу за 7 вересня 2018. Процитовано 21 червня 2016.
Посилання
- The Concept of Dynamic Analysis [ 10 березня 2016 у Wayback Machine.] / Th. Ball, Bell Labs. 1999 (англ.)(англ.)
- Learning from executions: Dynamic analysis for software engineering and program understanding [ 4 листопада 2016 у Wayback Machine.], 2005 (англ.)(англ.)
- Dynamic code analysis [ 28 червня 2016 у Wayback Machine.] / Viva64 (англ.)(англ.)
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Dinamichnij analiz kodu angl Dynamic program analysis analiz programnogo zabezpechennya sho vikonuyetsya za dopomogoyu vikonannya program na realnomu abo virtualnomu procesori na vidminu vid statichnogo analizu Utiliti dinamichnogo analizu mozhut vimagati zavantazhennya specialnih bibliotek perekompilyaciyu programnogo kodu Deyaki utiliti mozhut instrumentuvati kod sho vikonuyetsya u procesi vikonannya abo pered nim Dlya bilshoyi efektivnosti dinamichnogo analizu vimagayetsya podacha doslidzhuvanoyi programi dostatnoyi kilkosti vhidnih danih shob otrimati povnishe pokrittya kodu Takozh potribno podbati pro minimizaciyi vplivu instrumentuvannya na vikonannya programi sho doslidzhuyetsya vklyuchayuchi chasovi harakteristiki Prikladi utilitValgrind vikonuye programu na virtualnomu procesori mozhe viyavlyati pomilki pam yati napriklad pov yazani z nepravilnim vikoristannyam funkcij malloc i free situaciyi gonki potokiv race conditions v bagatopotochnih programah Pin DynamoRIO Dmalloc biblioteka dlya perevirki vidilennya i zvilnennya pam yati a takozh vitokiv pam yati povtornogo zvilnennya tosho Programu treba perekompilyuvati krim togo u vsi fajli neobhidno pidklyuchiti zagolovkovij fajl movi Si dmalloc h dlya otrimannya tochnishih zvitiv jTracert nedostupne posilannya z kvitnya 2019 Java agent sho zavantazhuyetsya za dopomogoyu argumentu javaagent yakij instrumentuye kod isnuyuchih dodatkiv sho pracyuyut u virtualnij mashini JVM i avtomatichno buduye diagrami poslidovnosti sequence diagrams Daikon 24 grudnya 2013 u Wayback Machine realizaciya dinamichnogo detektora invariantiv Provoditsya poshuk znachen obchislenih programoyu i poshuk vlastivostej yaki buli virni pri zapusku i najbilsh imovirno budut virni pri vsih zapuskah DynInst biblioteka sho modifikuye kod pid chas vikonannya Korisna pri rozrobci program dinamichnogo analizu dopomagaye dodavati v PZ sho doslidzhuyetsya nalagodzhuvalni tochki probes V osnovnomu Dyninst ne vimagaye perekompilyaciyi program odnak non stripped executables i fajli sho vikonuyutsya z nalagodzhuvalnoyu informaciyeyu prostishe piddayutsya instrumentuvannyu vid kompaniyi Security innovation ce programa yaka simulyuye pomilki dlya dinamichnogo analizu i nadijnosti program dlya Windows IBM Rational Purify v osnovnomu viyavlyaye pomilki pri roboti z pam yattyu vihid za mezhi masiviv vitoki pam yati BoundsChecker mozhlivosti shozhi z IBM Purify VB Watch dodaye kod dinamichnogo analizu v programi na movi Visual Basic dlya monitoringu yih produktivnosti steku viklikiv trasi vikonannya zminnih i pokrittya kodu Insure analizator pam yati i detektor pomilok Komponent Inuse dozvolyaye pobachiti grafichno istoriyu vidilennya pam yati analizuvati vikoristannya kupi shukati vitoku pam yati tosho analizator pomilok u bagatopotokovih zastosunkah Viyavlyaye pomilki konkurentnogo dostupu do danih i situaciyi vzayemoblokuvan Pracyuye z dodatkami dlya Windows i Linux CHESS instrument dlya testuvannya bagatopotokovih Net kerovanih i Win32 64 program Bilsha chastina en vikoristovuye metodi dinamichnogo analizu program Istorichni prikladiIBM OLIVER interaktivna sistema testuvannya i nalagodzhennya CICS sho vikoristovuye simulyator naboru komand SIMON analizator paketnih program sistema testuvannya i nalagodzhennya vikoristovuye simulyator SIMMON vnutrishnij simulyator IBM sho zastosovuvavsya pri rozrobci komponent OS utilit i procesoriv vvodu vivoduDiv takozhAnaliz produktivnosti Analiz program Statichnij analiz koduPrimitki Arhiv originalu za 7 veresnya 2018 Procitovano 21 chervnya 2016 PosilannyaThe Concept of Dynamic Analysis 10 bereznya 2016 u Wayback Machine Th Ball Bell Labs 1999 angl angl Learning from executions Dynamic analysis for software engineering and program understanding 4 listopada 2016 u Wayback Machine 2005 angl angl Dynamic code analysis 28 chervnya 2016 u Wayback Machine Viva64 angl angl