Відлагоджувач (зневаджувач, англ. debugger, також зустр. англіцизм: деба́гер, українською означає відлагоджувати (програма що допомагає виявити помилки в програмному коді, в даному випадку) — комп'ютерна програма, яка використовується для тестування і виправлення вад інших програм. Як варіант, код для розгляду може бути запущено на емуляторі інструкцій, що дозволяє більший контроль зупинки процесу при заданих умовах, але, як правило, тоді виконання коду відбувається набагато повільніше, ніж якщо це робиться напряму на процесорі.
Опис
Якщо програма завершується аварійно, буде показано позицію у вихідному коді, якщо це відлагоджувач рівня вихідних кодів або відлагоджувач символьний, що як правило присутні в інтегрованих середовищах розробки. Відлагоджувачі таких типів показують рядок у дизасемблері. («Аварійне завершення» відбувається, коли програма не може продовжуватися через помилку. Наприклад, програма намагається використати інструкцію, відсутню на поточній версії центрального процесора або при спробі доступу до відсутньої або захищеної пам'яті.
Як правило, відлагоджувач також пропонує складніші функції, як, наприклад, просування програми крок за кроком, зупинки (можна призупинити програму для вивчення поточного стану) при деякій події за допомогою точки зупину, а також відстеження значення змінних. Деякі відлагоджувачі мають можливість змінити стан програми, поки вона працює, а не лише просто спостерігати її.
Важливість гарного відлагоджувача важко переоцінити. Більш того, наявність та якість такого інструменту для конкретної мови та платформи можуть бути вирішальним фактором у їх використанні, навіть якщо інша мова або платформа краще підходять для виконання завдання. Разом з тим, важливо також зазначити, що програмне забезпечення може поводитися (і часто поводиться) інакше під керуванням відлагоджувача, ніж при прямому виконанні, через неминучі зміни в оточенні, що вносяться відлагоджувачем. В результаті, навіть при потужному інструменті зневадження, часто дуже важко відслідковувати виконання завдань у складних багатопотокових або розподілених системах.
Та ж функціональність, що робить відлагоджувач корисною для усунення помилок, дозволяє його використання з хакерською метою, наприклад, при спробі уникнути , керування цифровими правами та інших програмних функцій захисту.
Більшість основних рушіїв зневадження, таких як GDB і надають інтерфейс командного рядка. Графічні оболонки відлагоджувачів є популярними розширеннями для рушіїв зневадження, які забезпечують інтегрування в інтегроване середовище розробки, анімацію та візуалізацію функцій.
Апаратна підтримка для відлагодження
Більшість сучасних мікропроцесорів мають принаймні одну з цих функцій полегшення зневадження у своїй архітектурі:
- апаратна підтримка покрокового виконання програми, наприклад, [en]
- набір інструкцій, що відповідає , що дозволяє простіше побудувати відлагоджувач програмного забезпечення, яке працює на тому ж процесорі, що й програма зневадження; такі процесори можуть виконувати внутрішні цикли програми на повній швидкості, але залишаються під контролем відлагоджувача
- внутрішньосхемне програмування дозволяє відлагоджувачу виконати програму заново на зовнішніх апаратних засобах задля її тестування (наприклад, для додавання або вилучення точок зупину на інструкціях)
- апаратне забезпечення точок зупину при зміні даних, наприклад, виключна ситуація при відсутності сторінки
- контакти JTAG або новіші інтерфейси зневадження [en] та (Embedded Trace Macrocell від ARM)
Список відлагоджувачів
Відлагоджувач є невід'ємною складовою частиною вбудованого середовища розробки, а відтак всі такі середовища мають у своєму складі відлагоджувачі, або повністю вбудовані, або ж надають користувацький інтерфейс до зовнішніх програм чи розширень.
- (для зневадження Rich Internet Applications)
- (Cics Interactive test/debug)
- DBG — відлагоджувач і профайлер PHP
- DDD (Data Display Debugger)
- — вбудований відлагоджувач для DOS та Microsoft Windows
- (Allinea DDT)
- Allinea DDTLite для Visual Studio 2008
- (DDT), та його вісімковий аналог
- Eclipse
- GNU Debugger (GDB)
- (IDA Pro)
- — відлагоджувач для Java з відкритими вихідними кодами
- — графічний відлагоджувач C/C++ для Графічного середовища GNOME
- OllyDbg
- (Simulation Monitor)
- SoftICE
- — відлагоджувач рівня вихідних кодів для C та Fortran
- Valgrind
- — відлагоджувач для Visual Basic 6.0
- Microsoft Visual Studio Debugger
- Xdebug — зневадження і профілювання PHP
Див. також
Джерела
- Jonathan B. Rosenberg, How Debuggers Work: Algorithms, Data Structures, and Architecture, John Wiley & Sons,
Посилання
- Learn the essentials of debugging How to improve your debugging skills, a good article at IBM developerWorks.
- OpenRCE: Various Debugger Resources and Plug-ins
Примітки
- Є. Мейнарович, М. Кратко, «Англійсько-український словник з математики та інформатики», 2010р
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Vidlagodzhuvach znevadzhuvach angl debugger takozh zustr anglicizm deba ger ukrayinskoyu oznachaye vidlagodzhuvati programa sho dopomagaye viyaviti pomilki v programnomu kodi v danomu vipadku komp yuterna programa yaka vikoristovuyetsya dlya testuvannya i vipravlennya vad inshih program Yak variant kod dlya rozglyadu mozhe buti zapusheno na emulyatori instrukcij sho dozvolyaye bilshij kontrol zupinki procesu pri zadanih umovah ale yak pravilo todi vikonannya kodu vidbuvayetsya nabagato povilnishe nizh yaksho ce robitsya napryamu na procesori OpisYaksho programa zavershuyetsya avarijno bude pokazano poziciyu u vihidnomu kodi yaksho ce vidlagodzhuvach rivnya vihidnih kodiv abo vidlagodzhuvach simvolnij sho yak pravilo prisutni v integrovanih seredovishah rozrobki Vidlagodzhuvachi takih tipiv pokazuyut ryadok u dizasembleri Avarijne zavershennya vidbuvayetsya koli programa ne mozhe prodovzhuvatisya cherez pomilku Napriklad programa namagayetsya vikoristati instrukciyu vidsutnyu na potochnij versiyi centralnogo procesora abo pri sprobi dostupu do vidsutnoyi abo zahishenoyi pam yati Yak pravilo vidlagodzhuvach takozh proponuye skladnishi funkciyi yak napriklad prosuvannya programi krok za krokom zupinki mozhna prizupiniti programu dlya vivchennya potochnogo stanu pri deyakij podiyi za dopomogoyu tochki zupinu a takozh vidstezhennya znachennya zminnih Deyaki vidlagodzhuvachi mayut mozhlivist zminiti stan programi poki vona pracyuye a ne lishe prosto sposterigati yiyi Vazhlivist garnogo vidlagodzhuvacha vazhko pereociniti Bilsh togo nayavnist ta yakist takogo instrumentu dlya konkretnoyi movi ta platformi mozhut buti virishalnim faktorom u yih vikoristanni navit yaksho insha mova abo platforma krashe pidhodyat dlya vikonannya zavdannya Razom z tim vazhlivo takozh zaznachiti sho programne zabezpechennya mozhe povoditisya i chasto povoditsya inakshe pid keruvannyam vidlagodzhuvacha nizh pri pryamomu vikonanni cherez neminuchi zmini v otochenni sho vnosyatsya vidlagodzhuvachem V rezultati navit pri potuzhnomu instrumenti znevadzhennya chasto duzhe vazhko vidslidkovuvati vikonannya zavdan u skladnih bagatopotokovih abo rozpodilenih sistemah Ta zh funkcionalnist sho robit vidlagodzhuvach korisnoyu dlya usunennya pomilok dozvolyaye jogo vikoristannya z hakerskoyu metoyu napriklad pri sprobi uniknuti keruvannya cifrovimi pravami ta inshih programnih funkcij zahistu Bilshist osnovnih rushiyiv znevadzhennya takih yak GDB i nadayut interfejs komandnogo ryadka Grafichni obolonki vidlagodzhuvachiv ye populyarnimi rozshirennyami dlya rushiyiv znevadzhennya yaki zabezpechuyut integruvannya v integrovane seredovishe rozrobki animaciyu ta vizualizaciyu funkcij Aparatna pidtrimka dlya vidlagodzhennyaBilshist suchasnih mikroprocesoriv mayut prinajmni odnu z cih funkcij polegshennya znevadzhennya u svoyij arhitekturi aparatna pidtrimka pokrokovogo vikonannya programi napriklad en nabir instrukcij sho vidpovidaye sho dozvolyaye prostishe pobuduvati vidlagodzhuvach programnogo zabezpechennya yake pracyuye na tomu zh procesori sho j programa znevadzhennya taki procesori mozhut vikonuvati vnutrishni cikli programi na povnij shvidkosti ale zalishayutsya pid kontrolem vidlagodzhuvacha vnutrishnoshemne programuvannya dozvolyaye vidlagodzhuvachu vikonati programu zanovo na zovnishnih aparatnih zasobah zadlya yiyi testuvannya napriklad dlya dodavannya abo viluchennya tochok zupinu na instrukciyah aparatne zabezpechennya tochok zupinu pri zmini danih napriklad viklyuchna situaciya pri vidsutnosti storinki kontakti JTAG abo novishi interfejsi znevadzhennya en ta Embedded Trace Macrocell vid ARM Spisok vidlagodzhuvachivsho provodit vidlagodzhennya sebe Vidlagodzhuvach ye nevid yemnoyu skladovoyu chastinoyu vbudovanogo seredovisha rozrobki a vidtak vsi taki seredovisha mayut u svoyemu skladi vidlagodzhuvachi abo povnistyu vbudovani abo zh nadayut koristuvackij interfejs do zovnishnih program chi rozshiren dlya znevadzhennya Rich Internet Applications Cics Interactive test debug DBG vidlagodzhuvach i profajler PHP DDD Data Display Debugger vbudovanij vidlagodzhuvach dlya DOS ta Microsoft Windows Allinea DDT Allinea DDTLite dlya Visual Studio 2008 DDT ta jogo visimkovij analog Eclipse GNU Debugger GDB IDA Pro vidlagodzhuvach dlya Java z vidkritimi vihidnimi kodami grafichnij vidlagodzhuvach C C dlya Grafichnogo seredovisha GNOME OllyDbg Simulation Monitor SoftICE vidlagodzhuvach rivnya vihidnih kodiv dlya C ta Fortran Valgrind vidlagodzhuvach dlya Visual Basic 6 0 Microsoft Visual Studio Debugger Xdebug znevadzhennya i profilyuvannya PHPDiv takozhProfilyuvannya komp yuterni nauki Testuvannya programnogo zabezpechennyaDzherelaJonathan B Rosenberg How Debuggers Work Algorithms Data Structures and Architecture John Wiley amp Sons ISBN 0 471 14966 7PosilannyaLearn the essentials of debugging How to improve your debugging skills a good article at IBM developerWorks OpenRCE Various Debugger Resources and Plug insPrimitkiYe Mejnarovich M Kratko Anglijsko ukrayinskij slovnik z matematiki ta informatiki 2010r