Отладчики необходимы для поиска ошибок в программах. Они пытаются найти проблемы в коде еще до того, как он будет скомпилирован, и обычно предоставляют больше информации, чем сам компилятор. Linux, будучи в основном экосистемой с открытым исходным кодом, имеет множество приложений такого типа, работающих на нескольких различных языках и архитектурах обработки. В этом руководстве мы погрузимся в мир отладчиков для Linux.
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:
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:
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 для macOS и Android Studio. Среди основных возможностей 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:
sudo pacman -S lldb
4. 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:
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:
sudo pacman -S xdebug
6. KDbg
KDbg – это графический отладчик для среды рабочего стола KDE Поскольку он работает как внешний модуль GDB, как и DDD, вы получаете все возможности GDB наряду с интуитивно понятным пользовательским интерфейсом. Более опытные программисты, несомненно, оценят четкое представление всех переменных при прохождении кода, а также полностью выделенную панель, показывающую, что содержит каждый регистр процессора. Это не так просто представить в любом из других отладчиков, рассмотренных здесь.
Поэтому KDbg – фантастический выбор для программистов традиционных нативных приложений, от головастиков, которые только начинают учиться, до самых закаленных ветеранов.
Для установки KDbg:
В дистрибутивах на базе Ubuntu/Debian:
sudo apt install kdbg
В дистрибутивах на базе Fedora/RHEL:
sudo dnf install kdbg
В дистрибутивах на базе Arch:
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:
На Ubuntu/Debian-based distros:
sudo apt install valgrind
На Fedora/RHEL distros:
sudo dnf install valgrind
На Arch-based distros:
sudo pacman -S valgrind
8. strace
strace – это утилита пользовательского пространства для Unix, которая позволяет пользователям отслеживать системные вызовы и сигналы прямо из терминала.
Программисты могут использовать ее для дампа трассировки стека, фильтрации системных вызовов, изменения кодов возврата, извлечения дескрипторов файлов и многого другого.
Что еще более важно, strace позволяет присоединяться к выполняющимся программам. Это позволит вам проникнуть под капот любого программного обеспечения, запущенного на вашей машине, чтобы узнать больше о том, что может быть причиной сбоя.
Чтобы установить strace:
В дистрибутивах на базе Ubuntu/Debian:
sudo apt install strace
В дистрибутивах Fedora/RHEL:
sudo dnf install strace
В дистрибутивах на базе Arch:
sudo pacman -S strace
Заключение
С помощью этих инструментов вы можете тыкать, тыкать и анализировать свой код способами, которые раньше казались вам недоступными. Возможно, придется немного поучиться, но оно того стоит. Если вы серьезно относитесь к программированию в Linux, то научившись использовать отладчики, вы сэкономите гораздо больше времени в долгосрочной перспективе.
Комментарии (0)