The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Представлен LLDB - новый отладчик, развиваемый под эгидой проекта LLVM

09.06.2010 21:31

Анонсировано появление нового отладчика LLDB, основанного на технологиях проекта LLVM. LLDB представляет собой инфраструктуру для организации отладки приложений и состоит из набора модулей и библиотек, использующих такие подсистемы LLVM как API для дизассемблирования, Clang AST (Abstract Syntax Tree), парсер выражений, генератор кода и JIT-компилятор. Исходные тексты проекта распространяются под BSD-подобной лицензией. В настоящий момент поддерживается отладка программ на языках C, Objective-C и C++ на платформе Mac OS X.

Так как LLDB еще находится на начальной стадии разработки, отладчик поддерживает только простейший набор сценариев отладки в режиме командной строки, но уже позволяет отлаживать многопоточные программы, дизассемблировать машинный код для архитектур i386, x86-64 и ARM, осуществлять трекинг разделяемых библиотек, использовать несколько видов точек останова (по заданному символу, по строке в исходных текстах, по С++ именам, по границам вхождения в модули) и автоматизировать работу при помощи скриптов.

По сравнению с GDB новый отладчик отличается значительно более высоким быстродействием при отладке программ большого размера. Также в будущем разработчики намерены обеспечить в LLDB более удобный интерфейс для отладки и улучшенную поддержку языка C++. В качестве мотивов, побудивших создать новый отладчик, называется желание воплотить в жизнь новую эффективную архитектуру, поддерживающую работу с современными многопоточными программами, поддерживающую плагины и учитывающую в работе информацию о коде "из рук" компилятора. Дополнительно учитывалась возможность интеграции средств отладки в сторонние аналитические инструменты, без жестких лицензионных ограничений (для сравнения, при интеграции кода GDB в другие проекты, код этих проектов должен распространяться только под лицензией GDB).

Цели проекта:

  • Возможность обработки "трудных случаев", таких как разбор выражений на языке C++, обработка перегрузки операторов, работа с шаблонами, отладка многопоточных программ и другие нетривиальные сценарии отладки.
  • Создание набора библиотек для интегрированных сред разработки, набора утилит для работы в командной строке и аналитических инструментов;
  • Высокая эффективность использования памяти при отладке;
  • Расширяемость, возможность подключения расширяющих функциональность плагинов и скриптов на языке Python для автоматизации выполнения рутинных операций;
  • Повторное использование существующих технологий компиляторов, там где это имеет смысл;
  • Первичная поддержка отладки многопоточных программ и языков C, Objective-C и C++;
  • Легкая адаптация для поддержки различных платформ;
  • Подготовка базы для дальнейших исследований и инноваций в области отладки программ.

Базовые возможности:

  • Реализация в виде плагинов:
    • Парсеры объектных файлов, в настоящий момент поддерживаются форматы Mach-O (32/64-bit) и ELF (32-bit);
    • Парсеры контейнеров объектов для выделения объектных файлов, объединенных в единый архив. Поддерживаются универсальные Mach-O-файлы и BSD-архивы;
    • Парсеры отладочной информации, поддерживаются таблицы символов DWARF и Mach-O;
    • Плагины для сбора отладочных символов из различных внешних источников;
    • Плагины для дизассемблирования кода для различных архитектур. В настоящее время поддерживаются архитектуры i386, x86-64 и ARM/Thumb;
  • Сгенерированные при помощи SWIG скрипты, позволяющие получить коду на языке Python доступ к управляющему отладочному API;
  • Серверный процесс debugserver, позволяющий организовать отладку кода на удаленном сервере;
  • Отладчик, работающий в режиме командной строки;
  • API для использования возможностей системы в сторонних проектах.


  1. Главная ссылка к новости (http://blog.llvm.org/2010/06/n...)
  2. OpenNews: Релиз отладчика GDB 7.1 и выход спецификации DWARF 4
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/26907-debug
Ключевые слова: debug, llvm, vvdb
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (17) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 21:46, 09/06/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Можно ли сравнивать быстродействие отладчика, если он поддерживает меньшее количество сценариев? Уверен, что быстродействие сравнивалось на аналогичных gdb сценариях - но, не повлияет ли на скорость отладчика потенциальние, т.е. неиспользуемые сценарии. Ведь если gdb поддерживает большее количество - то, и на тех что поддерживает lldb он будет проигрывать, что нечестно.
    А в целом хорошая новость - выбора в дальнейшем будет больше
     
  • 1.2, Voviandr (ok), 00:33, 10/06/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    респект разрабам, если ещё к этому отладчику годную морду прикрутят - буду рад неимоверно.
     
     
  • 2.3, Юрий (??), 01:07, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Яблочники прикрутят
     
     
  • 3.4, kshetragia (ok), 05:31, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сильно не уверен, что захотят ей поделиться.
     
     
  • 4.5, Аноним (-), 09:30, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А что ж комьюнити ? может жить только на подачках?
     
     
  • 5.10, kshetragia (ok), 11:34, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Речь об Apple вообще-то
     
  • 5.13, int21h (ok), 15:12, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >А что ж комьюнити ? может жить только на подачках?

    оно поддерживает только макос - удачи в расчете на комьюнити ее пользователей...

     
  • 3.15, User294 (ok), 15:37, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >Яблочники прикрутят

    А остальные как обычно получат волшебный кукиш или пойдут стройными рядами покупать макось.

     
     
  • 4.16, Юрий (??), 15:41, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Все верно: покупать макось, а не XCode
     
  • 4.18, iZEN (ok), 20:29, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А остальные, если им захочется, переделают LLDB под себя, включат код в свой проект и не будут открывать изменения и свой код — продавать продукт можно легально.
     
  • 4.20, Аноним (-), 23:56, 12/06/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Если хочется готовую морду - покупаем макось. Нету денег - пишем сами морду или юзаем CLI. Яблоко тебе ничего не должны. Забываешь что сам по себе проект открытый, и в этом то преимушество что можно его доработать как тебе хочется
     

  • 1.6, sluge (ok), 10:03, 10/06/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    страныне ребята-сначала почему то на мак полезли..
     
     
  • 2.7, Aleksey (??), 10:29, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Может потому, что они работают в Apple?
     
  • 2.14, int21h (ok), 15:18, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >страныне ребята-сначала почему то на мак полезли..

    ну так это эппл для себя делает :) кто хочет поработать? корпорация Эппл - только сегодня бесплатно! спешите!

     
     
  • 3.17, Юрий (??), 15:46, 10/06/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >ну так это эппл для себя делает :) кто хочет поработать? корпорация
    >Эппл - только сегодня бесплатно! спешите!

    Может и "для себя" но не "только для себя":
    All of the code in the LLDB project is available under the standard LLVM License, an open source "BSD-style" license.


     
     
  • 4.19, kshetragia (ok), 04:55, 11/06/2010 [^] [^^] [^^^] [ответить]  
  • +/
    а как это относится к морде?

     
     
  • 5.21, fr0ster (ok), 08:46, 15/06/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Напишите свою.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру