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

ソフトウェア エンジニア向けのベスト Linux デバッガー 8 つ
文字セット=無効な文字セットID 48

デバッガはプログラムのバグを見つけるために不可欠です。これらは、コードをコンパイルする前にコード内の問題を見つけるという作業を実行し、通常はコンパイラー自体よりも多くの情報を提供します。 Linux は主にオープンソースのエコシステムであり、複数の異なる言語と処理アーキテクチャで動作するこの種のアプリケーションが多数あります。このガイドでは、Linux デバッガーの世界に直接飛び込んでいきます。

1.GNUデバッガ(GDB)

GNU デバッガ (別名 GDB) は、現代のプログラマが利用できる最も強力な Linux デバッガの 1 つです。これは、広範な機能セットを備えた堅牢なツールです。 GDB は、C、C++、Go、Rust など、多くの一般的なプログラミング言語をサポートしています。また、x86、x86-64、ARM、PowerPC、SPARC、MIPS などのさまざまな CPU アーキテクチャでも動作します。

テスト プログラムを実行する GDB のデモンストレーション

次のコマンドを使用して GDB をインストールします。

Ubuntu/Debian ベースのディストリビューションの場合:

Fedora/RHEL ディストリビューションの場合:

Arch ベースのディストリビューションの場合:

デバッグ シンボルを使用して GCC を使用してコンパイルしている限り、s と入力することでプログラムの実行中にプログラムの命令をステップ実行できます。 r と入力すると、デバッガを通じてプログラムが実行されます。プログラムがロードされた状態で GDB を起動するには、ターミナルに gdb と入力し、その後にプログラム パスを入力します。

開始したら、「help」と入力すると、この強力なデバッガーでできることをすべて説明した、よく整理されたカタログが表示されます。

2. データ表示デバッガ(DDD)

コマンドをいじるのは好きではないが、GDB が提供する機能は気に入っている場合は、DDD を使用すると、シンプルなグラフィカルなコマンドを使用できます。ポイントアンドクリック インターフェイスですべての機能を提供するフロントエンド。これは典型的な Linux デバッガー GUI です。

DDD は基本的なプログラムを実行して終了します。

UI は少し必要最低限​​に見えるかもしれませんが、あらゆる点で他のデバッガーと同じくらい強力です。ここでの違いは、グラフィカル インターフェイスを備えた GNU の特徴的なデバッガーを入手できることです。

インストールするには:

Ubuntu/Debian ベースのディストリビューションの場合:

Fedora/RHEL ディストリビューションの場合:

Arch ベースのディストリビューションの場合:

DDD は公式リポジトリに存在しないため、Arch ベースのものはすべて AUR ヘルパーを使用する必要があります。あるいは、AUR ヘルパーを使用せずに DDD を Arch ベースのシステムにインストールすることもできます。

3.LLDB

LLDB は LLVM プロジェクトの一部です。 LLVM スイートは、その効率的なワークフローのおかげで人気が高まっています。また、macOS の Xcode および Android Studio のデフォルトのデバッガーにもなっています。 LLDB の主な機能には、さまざまなコンパイラ統合とリモート デバッグのサポートが含まれます。 C 言語 (C、C++、および Objective-C) をサポートします。

LinuxデバッガLldb

基本的な GDB コマンドにすでに慣れている人にとっては、LLDB は親しみやすいものと感じられるでしょう。 run または r と入力するとプログラムが実行され、 step または s と入力するとサブルーチンが実行されます。

インストールするには:

Ubuntu/Debian ベースのディストリビューションの場合:

Fedora/RHEL ディストリビューションの場合:

Arch ベースのディストリビューションの場合:

4. 探る

Delve は、Google の Go プログラミング言語用のシンプルでありながら機能が豊富な Linux デバッガです。これを使用すると、実行時にプログラムと対話し、ゴルーチンやスタックなどを操作できます。デバッガー自体は Go で記述されているため、テストしているプログラムと同じ環境でランタイムを提供します。

初歩的なコードを含むプログラムを実行する Delve デバッガー。

Delve は、他の 2 つとは大きく異なる独自のコマンド セットを備えていることを除けば、GDB や LLDB と同じ原理で動作します。開始したら help と入力するだけで、表示されるすべてのデバッグ オプションの完全なリストが表示されます。

複数言語用のより一般的なデバッガーとは異なり、Delve は、アプリケーションの実行中により詳細なレベルで侵入できる、より Go 固有のコマンドを提供します。

Delve を使用して特定の Go ルーチンとスレッドを調査します。

インストールするには:

Ubuntu/Debian ベースのディストリビューションの場合:

Fedora/RHEL ディストリビューションの場合:

Arch ベースのディストリビューションの場合:

5.Xデバッグ

ほとんどの人は、コードの特定の部分の問題点を見つけるために変数をダンプする方法 (PHP コミュニティでは「ダンプ & ダイ」として知られています) を学びますが、より強力な方法が必要な場合もあります。すべてのルーチンを順を追って説明できます。 Xdebug は、意欲的な PHP プログラマーとベテランの PHP プログラマーにこれを幅広く提供します。

いくつかの単純なデバッグ セッション中の Xdebug 出力

これは、PHP コードを 1 行ずつステップ実行し、Web ページの処理中に何が起こっているかを正確に表示する Linux デバッガーです。 Xdebug は、VSCode などのいくつかの IDE でも動作します。その他の機能には、堅牢なプロファイラー、スタック トレーサー、完全な実行セグメントをダンプする機能などがあります。

Xdebug をインストールするには:

Ubuntu/Debian ベースのディストリビューションの場合:

Fedora/RHEL ディストリビューションの場合:

Arch ベースのディストリビューションの場合:

6.KDbg

KDbg は、KDE デスクトップ環境用の GUI デバッガです。 DDD と同様に GDB フロントエンドとして実行されるため、直感的なユーザー インターフェイスとともに GDB のすべての機能を利用できます。経験豊富なプログラマは、コードをステップ実行する際にすべての変数を明確に表示できること、および各 CPU レジスタが保持している内容を示す完全に専用のパネルを高く評価するでしょう。これは、ここで説明する他のデバッガではそれほど簡単に視覚化できません。

このため、KDbg は、学び始めたばかりのオタマジャクシから最も熟練したベテランまで、従来のネイティブ アプリケーション プログラマにとって素晴らしい選択肢です。

KDbg は、C で書かれた実行中のプログラムをデバッグします。

KDbg をインストールするには:

Ubuntu/Debian ベースのディストリビューションの場合:

Fedora/RHEL ディストリビューションの場合:

Arch ベースのディストリビューションの場合:

7. 選挙ゲート

Valgrind は、ソフトウェア分析用の追加ツールを多数提供する堅牢なメモリ デバッガです。 Linux と Mac の両方で動作します。さらに、これをフレームワークとして使用し、プロファイラーなどの動的分析ツールを作成することもできます。全体として、Valgrind は、豊富な機能セットと実行中にプログラムのメモリを監視するさまざまなツールを備えているため、専門家にとって優れた選択肢です。

Valgrind がプログラム内のメモリ リークを検出します。

Valgrind をインストールするには:

Ubuntu/Debian ベースのディストリビューションの場合:

Fedora/RHEL ディストリビューションの場合:

Arch ベースのディストリビューションの場合:

8. ステレース

strace は、ユーザーが端末からシステム コールとシグナルを直接トレースできるようにする Unix 用のユーザースペース ユーティリティです。

Linuxデバッガーのストラス

プログラマはこれを使用して、スタック トレースのダンプ、システム コールのフィルタリング、リターン コードの変更、ファイル記述子の抽出などを行うことができます。

さらに重要なのは、strace を使用すると、実行中のプログラムに接続できることです。これにより、マシン上で実行しているソフトウェアを詳しく調べて、クラッシュの原因となる可能性のあるものを詳しく知ることができます。

strace をインストールするには:

Ubuntu/Debian ベースのディストリビューションの場合:

Fedora/RHEL ディストリビューションの場合:

Arch ベースのディストリビューションの場合:

アーセナルが待っている

これらのツールを使用すると、これまでアクセスできなかった方法でコードを探索したり、突いたり、分析したりすることができます。少し学習曲線をたどる必要があるかもしれませんが、それだけの価値は十分にあります。 Linux でのプログラミングに真剣に取り組んでいる場合は、デバッガの使用方法を学ぶことで、長期的にはさらに多くの時間を節約できます。

最高の Linux デバッガーを手に入れたので、次は開発者とプログラマーにとって最適な Linux ディストリビューションを見つけます。あ>

画像クレジット: すべての画像は著者によるものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です