8のベストLinuxデバッガーソフトウェアエンジニア向け

デバッガーは、プログラム内のバグを見つけるために欠かせない存在です。これらは、コンパイルする前にコードの問題を見つけるために調査を行い、通常はコンパイラー自身よりも多くの情報を提供してくれます。Linuxは主にオープンソースのエコシステムであり、さまざまなプログラミング言語や処理アーキテクチャに対応する多くのこうしたアプリケーションがあります。このガイドでは、Linuxデバッガーの世界に飛び込みます。
目次
- GNUデバッガー(GDB)
- データ表示デバッガー (DDD)
- LLDB
- Delve
- Xdebug
- KDbg
- Valgrind
- strace
1. GNUデバッガー(GDB)
GNUデバッガー、別名GDBは、現代のプログラマー向けに利用可能な最も強力なLinuxデバッガーの1つです。それは、広範な機能セットを持つ堅牢なツールです。GDBは、C、C++、Go、Rustなどの多くの人気プログラミング言語をサポートしています。また、x86、x86-64、ARM、PowerPC、SPARC、MIPSなどの多くの異なるCPUアーキテクチャで動作します。

GDBをインストールするには、以下のコマンドを使用します:
Ubuntu/Debianベースのディストリビューションで:
sudo apt install gdbFedora/RHELディストリビューションで:
sudo dnf install gdbArchベースのディストリビューションで:
sudo pacman -S gdbGCCを使ってデバッグシンボルでコンパイルする限り、プログラムが実行される際にインストラクションをステップ実行することができます。rとタイプすることでデバッガーを介してプログラムを実行します。プログラムをロードした状態でGDBを開始するには、ターミナルにgdbと入力し、プログラムのパスを続けて入力します。
入ったら、helpと入力すると、この強力なデバッガーでできることを説明する整然としたカタログが表示されます!
2. データ表示デバッガー (DDD)
コマンドの操作が得意でない方でも、GDBが提供する機能が好きな場合、DDDは全ての機能をポイントアンドクリックのインターフェースで提供するシンプルなグラフィカルフロントエンドを提供します。これは典型的なLinuxデバッガーのGUIです。

UIは少し簡素に見えるかもしれませんが、他のデバッガーと同じくらい強力です。ここでの違いは、GNUのシグネチャデバッガーにグラフィカルインターフェースが付いていることです!
インストールするには:
Ubuntu/Debianベースのディストリビューションで:
sudo apt install dddFedora/RHELディストリビューションで:
sudo dnf install dddArchベースのディストリビューションで:
yay -S dddArchベースのものはAURヘルパーを使用する必要があります。DDDは公式のリポジトリには存在しません。あるいは、AURヘルパーなしでArchベースのシステムにDDDをインストールすることも可能です:
sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/ddd.git
cd ddd
makepkg -si3. LLDB
LLDBはLLVMプロジェクトの一部です。LLVMスイートは効率的なワークフローのおかげで人気を博しています。また、macOSのXcodeやAndroid Studioのデフォルトデバッガーにもなっています。LLDBの主な機能のいくつかには、さまざまなコンパイラ統合のサポートやリモートデバッグが含まれます。C言語(C、C++、Objective-C)をサポートしています。

基本的なGDBコマンドに既に慣れている人には、LLDBは馴染みやすいでしょう。runまたはrと入力するとプログラムが実行され、stepまたはsと入力するとそのサブルーチンをステップ実行します。
インストールするには:
Ubuntu/Debianベースのディストリビューションで:
sudo apt install lldbFedora/RHELディストリビューションで:
sudo dnf install lldbArchベースのディストリビューションで:
sudo pacman -S lldb4. Delve
Delveは、GoogleのGoプログラミング言語用のシンプルでかつ機能豊富なLinuxデバッガーです。実行時にプログラムと対話し、goroutineやスタックなどを操作することができます。デバッガー自体はGoで書かれているため、テストしているプログラムと同じ環境で動作します。
Delveは、GDBやLLDBと同様の原則で動作しますが、他の2つとは大きく異なる独自のコマンドセットを持っています。入ったらhelpと入力すると、提供されるすべてのデバッグオプションの全リストが表示されます。
複数の言語に対応する一般的なデバッガーとは異なり、DelveはGo固有のコマンドを提供し、実行中のアプリケーションに対してより詳細なレベルでの触れ合いを可能にします。

インストールするには:
Ubuntu/Debianベースのディストリビューションで:
sudo apt install delveFedora/RHELディストリビューションで:
sudo dnf install delveArchベースのディストリビューションで:
sudo pacman -S delve5. Xdebug
ほとんどの人は、特定のコードの問題を見つけるために変数をダンプする(PHPコミュニティでは「ダンプ&ダイ」として知られています)ことを学びますが、時にはすべてのルーチンを通り抜けてくれる何かもっと重厚なものが必要です。Xdebugは、野心的なPHPプログラマーやベテランプログラマーに、この機能を豊富に提供します。
Xdebugは、PHPコードを行単位でステップ実行し、ウェブページが処理される際に何が起こっているのかを正確に示すLinuxデバッガーです。Xdebugは、VSCodeなどのいくつかのIDEでも動作します。他の機能には、強力なプロファイラー、スタックトレーサー、完全な実行セグメントのダンプ機能が含まれています。
Xdebugをインストールするには:
Ubuntu/Debianベースのディストリビューションで:
sudo apt install php-xdebugFedora/RHELディストリビューションで:
sudo dnf install php-xdebugArchベースのディストリビューションで:
sudo pacman -S xdebug6. KDbg
KDbgは、KDEデスクトップ環境用のGUIデバッガーです。それは、DDDのようにGDBのフロントエンドとして動作するため、直感的なユーザーインターフェースと共にGDBのすべての機能を得られます。経験豊富なプログラマーは、コードをステップ実行しながらすべての変数のクリアビューを評価し、各CPUレジスタが保持している内容を示す完全に専用のパネルを持っていることを高く評価するでしょう。これは、ここで取り上げた他のデバッガーでは視覚化するのがはるかに難しいです。
このため、KDbgは、初めて学ぶたんぽぽから最もハードコアなベテランまで、伝統的なネイティブアプリケーションプログラマーにとって素晴らしい選択肢です。

KDbgをインストールするには:
Ubuntu/Debianベースのディストリビューションで:
sudo apt install kdbgFedora/RHELディストリビューションで:
sudo dnf install kdbgArchベースのディストリビューションで:
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 valgrindFedora/RHELディストリビューションで:
sudo dnf install valgrindArchベースのディストリビューションで:
sudo pacman -S valgrind8. strace
straceは、ユーザー空間ユーティリティで、ユーザーがターミナルから直接システムコールとシグナルをトレースすることを可能にします。

プログラマーは、スタックトレースをダンプしたり、システムコールをフィルタリングしたり、戻りコードを変更したり、ファイルディスクリプターを抽出したりするために使用できます。
さらに重要なのは、straceが実行中のプログラムにアタッチできることです。これにより、実行中のソフトウェアがクラッシュの原因となっている可能性があるものを理解するために、より詳細に探ることができます。
straceをインストールするには:
Ubuntu/Debianベースのディストリビューションで:
sudo apt install straceFedora/RHELディストリビューションで:
sudo dnf install straceArchベースのディストリビューションで:
sudo pacman -S strace武器庫が待っています
これらのツールを使って、以前はアクセスできなかった方法でコードを操作、分析、調査することができます。学ぶべきことが多少ありますが、その価値は十分にあります。Linuxでのプログラミングに真剣であれば、デバッガーの使い方を学ぶことで長期的に大幅な時間を節約できます。
これでベストなLinuxデバッガーを手に入れたので、次は開発者やプログラマー向けのベストなLinuxディストリビューションを見つける時です。
画像提供: すべての画像は著者によるものです。