8 лучших отладчиков Linux для программистов

Отладчики необходимы для нахождения ошибок в программах. Они выполняют работу по поиску проблем в вашем коде до того, как наступит время компиляции, обычно предоставляя больше информации, чем сам компилятор. Linux, будучи в основном открытой экосистемой, имеет множество таких приложений, которые работают на нескольких языках программирования и архитектурах обработки. В этом руководстве мы погрузимся прямо в мир отладчиков Linux.
Содержание
- GNU Debugger (GDB)
- Data Display Debugger (DDD)
- LLDB
- Delve
- Xdebug
- KDbg
- Valgrind
- strace
1. GNU Debugger (GDB)
GNU Debugger, также известный как GDB, является одним из самых мощных отладчиков Linux, доступных современным программистам. Это надежный инструмент с обширным набором функций. GDB поддерживает множество популярных языков программирования, включая C, C++, Go и Rust. Он также работает на многих различных архитектурах ЦП, таких как x86, x86-64, ARM, PowerPC, SPARC и MIPS.

Установите GDB с помощью этих команд:
На дистрибутивах Ubuntu/Debian:
sudo apt install gdbНа дистрибутивах Fedora/RHEL:
sudo dnf install gdbНа дистрибутивах Arch-based:
sudo pacman -S gdbПока вы компилируете с использованием GCC с отладочными символами, вы можете шагать по инструкциям программы во время ее выполнения, введя s. Вводя r, вы запустите свою программу через отладчик. Чтобы запустить GDB с загруженной программой, просто введите gdb в терминале, за которым следует путь к программе.
Как только вы попали внутрь, ввод help даст вам хорошо организованный каталог, объясняющий все, что вы можете сделать с этим мощнейшим отладчиком!
2. Data Display Debugger (DDD)
Если вам не нравится возиться с командами, но вам все равно нравятся функции, которые предлагает GDB, DDD предоставляет простую графическую оболочку, которая предлагает все его функции в интерфейсе “нажми и выбери”. Это квинтэссенция графического интерфейса отладчика Linux.

Пользовательский интерфейс может выглядеть немного примитивным, но он столь же мощен, как и любой другой отладчик. Разница здесь в том, что вы получаете отладчик GNU с графическим интерфейсом!
Чтобы установить его:
На дистрибутивах Ubuntu/Debian:
sudo apt install dddНа дистрибутивах Fedora/RHEL:
sudo dnf install dddНа дистрибутивах Arch-based:
yay -S dddЛюбой дистрибутив на основе Arch должен использовать AUR-помощник, так как DDD не существует в его официальных репозиториях. В качестве альтернативы вы можете установить DDD на системе на базе Arch без помошника AUR:
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/ddd.git
cd ddd
makepkg -si3. LLDB
LLDB является частью проекта LLVM. Набор инструментов LLVM приобрел популярность благодаря своему эффективному рабочему процессу. Он также стал стандартным отладчиком для Xcode и Android Studio на macOS. Некоторые из основных функций LLDB включают поддержку различных интеграций компилятора и удаленный отладчик. Он поддерживает языки C (C, C++ и Objective-C).

Для тех, кто уже знаком с основными командами GDB, LLDB будет ощущаться знакомо. Ввод run или r запускает программу, а ввод step или s проходит через ее подпрограммы.
Чтобы установить его:
На дистрибутивах Ubuntu/Debian:
sudo apt install lldbНа дистрибутивах Fedora/RHEL:
sudo dnf install lldbНа дистрибутивах Arch-based:
sudo pacman -S lldb4. Delve
Delve - это простой, но богатый функциями отладчик Linux для языка программирования Go компании Google. Вы можете использовать его для взаимодействия с вашей программой во время выполнения и изменения таких вещей, как горутины и стеки. Сам отладчик написан на Go, что предоставляет рабочую среду в том же окружении, что и программа, которую вы тестируете.
Delve работает по тому же принципу, что и GDB и LLDB, за исключением того, что у него есть уникальный набор команд, которые значительно отличаются от других двух. Просто введите help, как только вы войдете, и вы получите полный список всех параметров отладки, которые он предоставляет.
В отличие от более общих отладчиков для нескольких языков, Delve предлагает больше команд, специфичных для Go, которые позволяют вам заглянуть на более детальном уровне в ваше приложение, пока оно работает.

Чтобы установить его:
На дистрибутивах Ubuntu/Debian:
sudo apt install delveНа дистрибутивах Fedora/RHEL:
sudo dnf install delveНа дистрибутивах Arch-based:
sudo pacman -S delve5. Xdebug
Хотя большинство людей учатся выводить переменные (в PHP-сообществах это называется “dump & die”), чтобы выяснить, что не так с определенным аспектом их кода, есть моменты, когда вам нужно что-то более мощное, что может провести вас через все ваши рутины. Xdebug предлагает это в большом объеме как для начинающих, так и для опытных программистов PHP.
Это отладчик Linux, который проходит через код PHP построчно и показывает, что именно происходит по мере обработки веб-страницы. Xdebug также работает на нескольких IDE, включая VSCode. Его другие функции включают мощный профайлер, трассировщик стека и возможность выводить полный сегмент выполнения.
Чтобы установить Xdebug:
На дистрибутивах Ubuntu/Debian:
sudo apt install php-xdebugНа дистрибутивах Fedora/RHEL:
sudo dnf install php-xdebugНа дистрибутивах Arch-based:
sudo pacman -S xdebug6. KDbg
KDbg - это графический отладчик для среды рабочего стола KDE. Так как он работает как фронтенд GDB, как и DDD, вы получаете все функции GDB вместе с интуитивным пользовательским интерфейсом. Более опытные программисты несомненно оценят ясный обзор всех переменных во время шагания по своему коду, а также полностью выделенную панель, показывающую, что хранит каждый регистр ЦП. Это не так просто визуализировать в любом из других отладчиков, рассмотренных здесь.
Из-за этого KDbg является отличным выбором для традиционных программистов нативных приложений, от начинающих до самых опытных ветеранов.

Чтобы установить KDbg:
На дистрибутивах Ubuntu/Debian:
sudo apt install kdbgНа дистрибутивах Fedora/RHEL:
sudo dnf install kdbgНа дистрибутивах Arch-based:
sudo pacman -S kdbgПримечание: Если вы используете дистрибутив на базе Ubuntu или Debian и не находите пакет kdbg в официальных репозиториях, вот что нужно ввести, чтобы собрать его самостоятельно:
sudo apt install build-essential cmake extra-cmake-modules qtbase5-dev libkf5i18n-dev libkf5iconthemes-dev libkf5xmlgui-dev
git clone -b maint https://github.com/j6t/kdbg.git
cd kdbg
cmake .
make
sudo make install7. Valgrind
Valgrind - это надежный отладчик памяти, который предлагает множество дополнительных инструментов для анализа программного обеспечения. Он работает как на Linux, так и на Mac. Более того, вы можете использовать его в качестве фреймворка и создавать динамические инструменты анализа, такие как профайлеры. В целом, Valgrind является отличным выбором для профессионалов благодаря своему богатому набору функций и множеству инструментов, которые отслеживают память программы во время ее выполнения.

Чтобы установить Valgrind:
На дистрибутивах Ubuntu/Debian:
sudo apt install valgrindНа дистрибутивах Fedora/RHEL:
sudo dnf install valgrindНа дистрибутивах Arch-based:
sudo pacman -S valgrind8. strace
strace - это утилита пользовательского пространства для Unix, которая позволяет пользователям отслеживать системные вызовы и сигналы непосредственно из терминала.

Программисты могут использовать его для вывода трассировок стека, фильтрации системных вызовов, изменения кодов возврата, извлечения дескрипторов файлов и многого другого.
Более того, strace позволяет вам присоединяться к запущенным программам. Это позволяет вам заглянуть под ногти любого программного обеспечения, которое вы запускаете на своем компьютере, чтобы узнать больше о том, что может вызывать сбой.
Чтобы установить strace:
На дистрибутивах Ubuntu/Debian:
sudo apt install straceНа дистрибутивах Fedora/RHEL:
sudo dnf install straceНа дистрибутивах Arch-based:
sudo pacman -S straceАрсенал ждет
С этими инструментами вы можете пробовать, щупать и анализировать свой код так, как это раньше казалось недоступным. Возможно, вам придется немного поучиться, но это того стоит. Если вы серьезно относитесь к программированию на Linux, изучение того, как использовать его отладчики, сэкономит вам много времени в долгосрочной перспективе.
Теперь, когда у вас есть лучшие отладчики Linux, пришло время найти лучшие дистрибутивы Linux для разработчиков и программистов.