1. По разнице определений
Во-первых, что такое GDB?
«GDB - стандартный отладчик для программной системы GNU»
Отладчик GNU, обычно называемый просто GDB и называемый gdb как исполняемый файл, является стандартным отладчиком для операционной системы GNU. Однако его использование строго не ограничено операционной системой GNU; это портативный отладчик, который работает во многих Unix-подобных системах и работает для многих языков программирования, включая Ada, C, C ++, Objective-C, Free Pascal, Fortran, Java 1 и частично другие. 2
(цитата из Википедии)
Во-вторых, что такое LLDB?
"LLDB - это отладчик, построенный как набор повторно используемых компонентов, которые эффективно используют существующие библиотеки в более крупном проекте LLVM, такие как синтаксический анализатор выражений Clang и дизассемблер LLVM.
LLDB - это замена" с нуля "компании Apple GDB, разработанный в тесной координации с компиляторами LLVM, чтобы предоставить вам современную отладку с широкими возможностями в управлении потоком и проверке данных.Начиная с Xcode 5, все новые и ранее существующие проекты разработки автоматически реконфигурируются для использования LLDB. стандартная установка LLDB предоставляет вам широкий набор команд, разработанных для совместимости со знакомыми командами GDB.В дополнение к стандартной конфигурации вы можете легко настроить LLDB в соответствии со своими потребностями.
(цитата с официального сайта Apple)
/ * Я попытался найти реальные / практические данные, чтобы доказать утверждение: LLDB уже намного быстрее, чем GDB при отладке больших программ.)
Однако я не смог его найти. если кто-то имеет эти связанные данные, пожалуйста, отредактируйте эту статью * /
И GDB, и LLDB, без сомнения, являются отличными отладчиками.
GDB является частью отладчика проекта GNU, созданного для работы вместе с компилятором GNU.
LLDB является частью отладчика проекта LLVM, созданного для работы вместе с компилятором LLVM.
2. По разнице в использовании команды отладчика
Большинство команд одинаковы.
Тем не менее, lldb и gdb, два разных отладчика разрабатываются разными наборами разработчиков и поэтому имеют немного разные команды.
Это хорошая ссылка ниже для сравнения различий этих двух команд отладчика.
позвольте мне связать детали ниже:
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-command-examples.html
http://lldb.llvm.org/lldb-gdb.html
Это четко указывает и организует различие команд.
В случае, если сайт больше не доступен, я кратко излагаю основное отличие приведенных ниже команд от связанного сайта.
3. По личному мнению
LLDB полностью интегрирован из Xcode IDE 5 по умолчанию в качестве основного отладчика.
С того времени поступили жалобы на стабильность LLDB, проблемы с производительностью и ошибки.
Тем не менее, проект LLVM с LLDB невероятно улучшается и модернизируется до тех пор, пока он не станет одним из основных проектов с открытым исходным кодом в мире.
Итак, я думаю, что, по крайней мере, LLDB следует использовать для среды разработки Apple, поскольку LLDB украл позицию GDB и уже является основным отладчиком по умолчанию, по крайней мере, в мире Apple.
(В конце сентября 2016 года Xcode 8 интегрировал LLVM и LLDB был официально выпущен, что означает, что прошло довольно много времени, так как LLVM / LLDB является цепочкой инструментов по умолчанию для Xcode.)
Но мы все уже знаем, что GDB был исторически и строго проверенным и проверенным в боевых действиях отладчиком в течение 30 лет, и это потрясающе.
Итак, я бы сказал ...
Я хотел бы использовать lldb при использовании clang, использовать gdb при использовании компилятора gcc в качестве хорошей комбинации или пары, потому что lldb основан на llvm, тогда как gdb является отладчиком GNU.
Хотелось бы, чтобы это было полезно для вас.
Спасибо.