LLDB — зневаджувач, заснований на технологіях проекту LLVM. LLDB являє собою інфраструктуру для організації зневадження застосунків і складається з набору модулів і бібліотек, які використовують такі підсистеми LLVM як API для дизасемблювання, Clang AST (Abstract Syntax Tree), парсер виразів, генератор коду і JIT-компілятор. Підтримується зневадження програм на мовах C, Objective-C і .
Тип | зневаджувач |
---|---|
Розробник | LLVM Developer Group |
Операційна система | Mac OS X i386 та x86-64, Linux, FreeBSD |
Мова програмування | |
Ліцензія | |
Репозиторій | github.com/llvm/llvm-project |
Вебсайт | lldb.llvm.org |
|
Початковий код поширюються під BSD-подібною ліцензією.
LLDB дозволяє зневаджувати багатонитеві програми, дизасемблювати машинний код для архітектур i386, x86-64 і ARM, здійснювати трекінг поділюваних бібліотек, використовувати декілька видів точок зупину (за заданим символом, за рядком у початкових текстах, за С++ іменами, за межами входження в модулі) та автоматизувати роботу за допомогою скриптів.
У порівнянні з GDB зневаджувач LLDB відрізняється значно більшою швидкодією при зневадженні програм великого розміру.
Цілі проекту
- Можливість обробки "важких випадків", таких як розбір виразів на мові C++, обробка перевантаження операторів, робота з шаблонами, зневадження багатонитевих програм та інші нетривіальні сценарії зневадження
- Створення набору бібліотек для інтегрованих середовищ розробки, набору утиліт для роботи в командному рядку та аналітичних інструментів
- Висока ефективність використання пам'яті при зневадженні
- Розширюваність, можливість підключення плаґінів і скриптів на мові Python для автоматизації виконання рутинних операцій
- Повторне використання існуючих технологій компіляторів, там де це має сенс
- Первинна підтримка зневадження багатонитевих програм та мов C, Objective-C і C++
- Легка адаптація для підтримки різних платформ
- Підготовка бази для подальших досліджень та інновацій в галузі зневадження програм.
Базові можливості
- Реалізація у вигляді плагінів:
- Парсери об'єктних файлів, зараз підтримуються формати Mach-O (32/64-bit) і ELF (32-bit);
- Парсери контейнерів об'єктів для виділення об'єктних файлів, об'єднаних в єдиний архів. Підтримуються універсальні Mach-O-файли і BSD-архіви;
- Парсери зневаджувальної інформації, підтримуються таблиці символів DWARF і Mach-O;
- Плагіни для збору зневаджувальних символів з різних зовнішніх джерел;
- Плагіни для дизасемблювання коду для різних архітектур.
- Згенеровані за допомогою SWIG скрипти, що дозволяють отримати коду мовою Python доступ до керуючого зневаджувального API;
- Серверний процес debugserver, що дозволяє організувати зневадження коду на віддаленому сервері
- Зневаджувач, що працює в режимі командного рядка
- API для використання можливостей системи в сторонніх проектах.
Виноски
- "LLVM Release License"
Посилання
- Офіційний сайт
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
LLDB znevadzhuvach zasnovanij na tehnologiyah proektu LLVM LLDB yavlyaye soboyu infrastrukturu dlya organizaciyi znevadzhennya zastosunkiv i skladayetsya z naboru moduliv i bibliotek yaki vikoristovuyut taki pidsistemi LLVM yak API dlya dizasemblyuvannya Clang AST Abstract Syntax Tree parser viraziv generator kodu i JIT kompilyator Pidtrimuyetsya znevadzhennya program na movah C Objective C i C LLDBTipznevadzhuvachRozrobnikLLVM Developer GroupOperacijna sistemaMac OS X i386 ta x86 64 Linux FreeBSDMova programuvannyaC LicenziyaRepozitorijgithub com llvm llvm projectVebsajtlldb llvm org Mediafajli u Vikishovishi Pochatkovij kod poshiryuyutsya pid BSD podibnoyu licenziyeyu LLDB dozvolyaye znevadzhuvati bagatonitevi programi dizasemblyuvati mashinnij kod dlya arhitektur i386 x86 64 i ARM zdijsnyuvati treking podilyuvanih bibliotek vikoristovuvati dekilka vidiv tochok zupinu za zadanim simvolom za ryadkom u pochatkovih tekstah za S imenami za mezhami vhodzhennya v moduli ta avtomatizuvati robotu za dopomogoyu skriptiv U porivnyanni z GDB znevadzhuvach LLDB vidriznyayetsya znachno bilshoyu shvidkodiyeyu pri znevadzhenni program velikogo rozmiru Cili proektuMozhlivist obrobki vazhkih vipadkiv takih yak rozbir viraziv na movi C obrobka perevantazhennya operatoriv robota z shablonami znevadzhennya bagatonitevih program ta inshi netrivialni scenariyi znevadzhennya Stvorennya naboru bibliotek dlya integrovanih seredovish rozrobki naboru utilit dlya roboti v komandnomu ryadku ta analitichnih instrumentiv Visoka efektivnist vikoristannya pam yati pri znevadzhenni Rozshiryuvanist mozhlivist pidklyuchennya plaginiv i skriptiv na movi Python dlya avtomatizaciyi vikonannya rutinnih operacij Povtorne vikoristannya isnuyuchih tehnologij kompilyatoriv tam de ce maye sens Pervinna pidtrimka znevadzhennya bagatonitevih program ta mov C Objective C i C Legka adaptaciya dlya pidtrimki riznih platform Pidgotovka bazi dlya podalshih doslidzhen ta innovacij v galuzi znevadzhennya program Bazovi mozhlivostiRealizaciya u viglyadi plaginiv Parseri ob yektnih fajliv zaraz pidtrimuyutsya formati Mach O 32 64 bit i ELF 32 bit Parseri kontejneriv ob yektiv dlya vidilennya ob yektnih fajliv ob yednanih v yedinij arhiv Pidtrimuyutsya universalni Mach O fajli i BSD arhivi Parseri znevadzhuvalnoyi informaciyi pidtrimuyutsya tablici simvoliv DWARF i Mach O Plagini dlya zboru znevadzhuvalnih simvoliv z riznih zovnishnih dzherel Plagini dlya dizasemblyuvannya kodu dlya riznih arhitektur Zgenerovani za dopomogoyu SWIG skripti sho dozvolyayut otrimati kodu movoyu Python dostup do keruyuchogo znevadzhuvalnogo API Servernij proces debugserver sho dozvolyaye organizuvati znevadzhennya kodu na viddalenomu serveri Znevadzhuvach sho pracyuye v rezhimi komandnogo ryadka API dlya vikoristannya mozhlivostej sistemi v storonnih proektah Vinoski LLVM Release License PosilannyaOficijnij sajt