=== Улучшение LLDB во FreeBSD

Ссылки: +
link:https://github.com/llvm/llvm-project/issues/180061[Мета-задача LLVM] URL: link:https://github.com/llvm/llvm-project/issues/180061[] +

Контакт: Minsoo Choo <minsoochoo0122@proton.me>

Из-за проблем с лицензированием GDB (GPLv3), FreeBSD использует LLVM, включая LLDB, в своей базовой системе начиная с FreeBSD 10.0.
Однако большинство разработчиков ядра по-прежнему полагаются на KGDB (патченную версию последнего GDB) для отладки ядра.
Это отчасти связано с личными предпочтениями (некоторые считают синтаксис команд GDB более удобным), но есть и практические причины: LLDB не хватает нескольких функций, которые предоставляет KGDB (подробности ниже), и даже в базовой системе поддержка LLDB недостаточна.
Моя работа направлена на достижение паритета функций с KGDB к концу апреля.

Улучшения, которые я сделал на данный момент, перечислены по ссылке выше.
Обратите внимание, что мелкие исправления ошибок не включены в этот список.

Следующее не поддерживается: i386, arm, powerpc32, powerpc64be и mips*.
FreeBSD 13 и более ранние версии также не поддерживаются.
Целевая версия LLVM — 23, хотя эта работа может быть перенесена обратно в LLVM в дереве FreeBSD и main в stable/14 и stable/15 после того, как mailto:dim@FreeBSD.org[Димитрий Андрик (Dimitry Andric)] завершит свой MFV (перенос от вендора) LLVM 21.

Я начал эту работу в конце января, и она, по прогнозам, будет завершена к апрелю.
Помимо паритета функций, возможны дальнейшие улучшения, такие как поддержка minidump2elf и добавление UUID в заголовки ELF ядра и дампа памяти (core dump).

Самым большим препятствием для этого проекта является нехватка рецензентов, хорошо знакомых как с внутренним устройством FreeBSD, так и с внутренним устройством KGDB.
Если у вас есть время, пожалуйста, оставляйте отзывы на мои pull request.
Тестировщики на машинах, отличных от x86 и arm64, также очень приветствуются.
Если вы обнаружите какие-либо проблемы, пожалуйста, сообщите об ошибке и свяжитесь со мной в llvm/llvm-project.

Спонсор: Фонд FreeBSD

//
// The FreeBSD Russian Documentation Project
//
// Original EN revision (18.04.2026): 9ba32265d1b3e50074d12355e780b49fa3693975
//
