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

Charset=invalidcharsetid 48

Отладчики необходимы для нахождения ошибок в программах. Они выполняют работу по поиску проблем в вашем коде до того, как наступит время компиляции, обычно предоставляя больше информации, чем сам компилятор. Linux, будучи в основном открытой экосистемой, имеет множество таких приложений, которые работают на нескольких языках программирования и архитектурах обработки. В этом руководстве мы погрузимся прямо в мир отладчиков Linux.

Содержание

    1. GNU Debugger (GDB)
    1. Data Display Debugger (DDD)
    1. LLDB
    1. Delve
    1. Xdebug
    1. KDbg
    1. Valgrind
    1. strace

1. GNU Debugger (GDB)

GNU Debugger, также известный как GDB, является одним из самых мощных отладчиков Linux, доступных современным программистам. Это надежный инструмент с обширным набором функций. GDB поддерживает множество популярных языков программирования, включая C, C++, Go и Rust. Он также работает на многих различных архитектурах ЦП, таких как x86, x86-64, ARM, PowerPC, SPARC и MIPS.

Демонстрация выполнения GDB с тестовой программой

Установите 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.

DDD выполняет примитивную программу и завершает работу.

Пользовательский интерфейс может выглядеть немного примитивным, но он столь же мощен, как и любой другой отладчик. Разница здесь в том, что вы получаете отладчик 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 -si

3. LLDB

LLDB является частью проекта LLVM. Набор инструментов LLVM приобрел популярность благодаря своему эффективному рабочему процессу. Он также стал стандартным отладчиком для Xcode и Android Studio на macOS. Некоторые из основных функций LLDB включают поддержку различных интеграций компилятора и удаленный отладчик. Он поддерживает языки C (C, C++ и Objective-C).

Отладчик Linux LLDB

Для тех, кто уже знаком с основными командами GDB, LLDB будет ощущаться знакомо. Ввод run или r запускает программу, а ввод step или s проходит через ее подпрограммы.

Чтобы установить его:

На дистрибутивах Ubuntu/Debian:

sudo apt install lldb

На дистрибутивах Fedora/RHEL:

sudo dnf install lldb

На дистрибутивах Arch-based:

sudo pacman -S lldb

4. Delve

Delve - это простой, но богатый функциями отладчик Linux для языка программирования Go компании Google. Вы можете использовать его для взаимодействия с вашей программой во время выполнения и изменения таких вещей, как горутины и стеки. Сам отладчик написан на Go, что предоставляет рабочую среду в том же окружении, что и программа, которую вы тестируете.

Delve работает по тому же принципу, что и GDB и LLDB, за исключением того, что у него есть уникальный набор команд, которые значительно отличаются от других двух. Просто введите help, как только вы войдете, и вы получите полный список всех параметров отладки, которые он предоставляет.

В отличие от более общих отладчиков для нескольких языков, Delve предлагает больше команд, специфичных для Go, которые позволяют вам заглянуть на более детальном уровне в ваше приложение, пока оно работает.

Использование Delve для изучения конкретных Go горутин и потоков.

Чтобы установить его:

На дистрибутивах Ubuntu/Debian:

sudo apt install delve

На дистрибутивах Fedora/RHEL:

sudo dnf install delve

На дистрибутивах Arch-based:

sudo pacman -S delve

5. 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 xdebug

6. KDbg

KDbg - это графический отладчик для среды рабочего стола KDE. Так как он работает как фронтенд GDB, как и DDD, вы получаете все функции GDB вместе с интуитивным пользовательским интерфейсом. Более опытные программисты несомненно оценят ясный обзор всех переменных во время шагания по своему коду, а также полностью выделенную панель, показывающую, что хранит каждый регистр ЦП. Это не так просто визуализировать в любом из других отладчиков, рассмотренных здесь.

Из-за этого KDbg является отличным выбором для традиционных программистов нативных приложений, от начинающих до самых опытных ветеранов.

KDbg отлаживает запущенную программу, написанную на C.

Чтобы установить 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 install

7. Valgrind

Valgrind - это надежный отладчик памяти, который предлагает множество дополнительных инструментов для анализа программного обеспечения. Он работает как на Linux, так и на Mac. Более того, вы можете использовать его в качестве фреймворка и создавать динамические инструменты анализа, такие как профайлеры. В целом, Valgrind является отличным выбором для профессионалов благодаря своему богатому набору функций и множеству инструментов, которые отслеживают память программы во время ее выполнения.

Valgrind обнаруживает утечку памяти в программе.

Чтобы установить Valgrind:

На дистрибутивах Ubuntu/Debian:

sudo apt install valgrind

На дистрибутивах Fedora/RHEL:

sudo dnf install valgrind

На дистрибутивах Arch-based:

sudo pacman -S valgrind

8. strace

strace - это утилита пользовательского пространства для Unix, которая позволяет пользователям отслеживать системные вызовы и сигналы непосредственно из терминала.

Отладчик Linux Strace

Программисты могут использовать его для вывода трассировок стека, фильтрации системных вызовов, изменения кодов возврата, извлечения дескрипторов файлов и многого другого.

Более того, strace позволяет вам присоединяться к запущенным программам. Это позволяет вам заглянуть под ногти любого программного обеспечения, которое вы запускаете на своем компьютере, чтобы узнать больше о том, что может вызывать сбой.

Чтобы установить strace:

На дистрибутивах Ubuntu/Debian:

sudo apt install strace

На дистрибутивах Fedora/RHEL:

sudo dnf install strace

На дистрибутивах Arch-based:

sudo pacman -S strace

Арсенал ждет

С этими инструментами вы можете пробовать, щупать и анализировать свой код так, как это раньше казалось недоступным. Возможно, вам придется немного поучиться, но это того стоит. Если вы серьезно относитесь к программированию на Linux, изучение того, как использовать его отладчики, сэкономит вам много времени в долгосрочной перспективе.

Теперь, когда у вас есть лучшие отладчики Linux, пришло время найти лучшие дистрибутивы Linux для разработчиков и программистов.