8 công cụ debugger Linux tốt nhất dành cho các kỹ sư phần mềm

Debugger là công cụ thiết yếu cho việc tìm lỗi trong các phần mềm. Có rất nhiều debugger Linux xịn giúp cho việc tìm điểm yếu trong phần mềm trở nên dễ dàng hơn với các lập trình viên.

Trong bài viết này, Quantrimang sẽ gửi tới bạn danh sách 8 công cụ debugger Linux tốt nhất. Mời các bạn cùng tham khảo.

1. GNU Debugger (GDB)

GNU Debugger (GDB) là một trong những debugger Linux tốt nhất hiện tại. Nó là một công cụ mạnh mẽ với hàng loạt tính năng. GDB hỗ trợ cho nhiều ngôn ngữ lập trình phổ biến, bao gồm cả C, C++, Fortran và Java. Nó còn có thể chạy trên nhiều kiến trúc CPU như x86, x86-64, ARM, PowerPC, SPARC và MIPS.

Cài đặt GDB bằng các lệnh sau:

Trong các bản phân phối dựa trên Ubuntu/Debian:

sudo apt install gdb

Trong các bản phân phối Fedora/RHEL:

sudo dnf install gdb

Trong các bản phân phối dựa trên Arch:

sudo pacman -S gdb

Miễn là bạn biên dịch bằng GCC với các ký hiệu debug, bạn có thể xem qua hướng dẫn của chương trình khi chạy bằng cách nhập s. Gõ r sẽ chạy chương trình của bạn thông qua debugger. Để khởi động GDB khi chương trình đã được load, chỉ cần nhập gdb vào terminal của bạn, sau đó là đường dẫn chương trình.

Khi bạn đã đăng nhập, nhập help sẽ cung cấp cho bạn một danh mục được sắp xếp hợp lý, giải thích mọi thứ bạn có thể làm với trình gỡ lỗi toàn năng này!

2. Data Display Debugger (DDD)

Nếu bạn không thích sử dụng các lệnh nhưng vẫn yêu thích các tính năng mà GDB cung cấp, thì DDD sẽ cung cấp cho bạn giao diện người dùng đồ họa đơn giản cung cấp tất cả các tính năng của nó trong giao diện điểm và nhấp chuột. Đó là GUI debugger Linux tinh túy.

DDD đang chạy một chương trình thô và thoát ra.

Giao diện người dùng có thể trông hơi đơn giản nhưng nó mạnh mẽ như bất kỳ trình gỡ lỗi nào khác. Sự khác biệt ở đây là bạn có được trình gỡ lỗi đặc trưng của GNU với giao diện đồ họa!

Để cài đặt Data Display Debugger (DDD), hãy làm như sau:

Trong các bản phân phối dựa trên Ubuntu/Debian:

sudo apt install ddd

Trong các bản phân phối Fedora/RHEL:

sudo dnf install ddd

Trong các bản phân phối dựa trên Arch:

yay -S ddd

Mọi thứ dựa trên Arch sẽ phải sử dụng trình trợ giúp AUR, vì DDD không tồn tại trong kho chính thức của nó. Ngoài ra, bạn có thể cài đặt DDD trên hệ thống dựa trên Arch mà không cần trình trợ giúp AUR:

sudo pacman -S --needed base-devel
git clone https://aur.archlinux.org/ddd.git
cd ddd
makepkg -si

3. LLDB

LLDB là một phần của dự án LLVM. Công cụ này đang ngày càng trở nên phổ biến hơn nhờ có tốt độ vượt trội và workflow hiệu quả. Nó cũng trở thành debugger mặc định trong Xcode của macOS và Android Studio. Một vài tính năng đáng chú ý của LLDB bao gồm hỗ trợ cho nhiều trình biên soạn tích hợp, một hệ thống kiểu ngôn ngữ độc lập và debug từ xa.

Đối với những người đã quen với các lệnh GDB cơ bản, LLDB sẽ có cảm giác quen thuộc. Gõ run hoặc r sẽ chạy chương trình và gõ step hoặc s để đi qua các chương trình con của nó.

Để cài đặt LLDB:

Trong các bản phân phối dựa trên Ubuntu/Debian:

sudo apt install lldb

Trong các bản phân phối Fedora/RHEL:

sudo dnf install lldb

Trong các bản phân phối dựa trên Arch:

sudo pacman -S lldb

4. Delve

Delve là một debugger Linux đơn giản nhưng giàu tính năng dành cho ngôn ngữ lập trình Go của Google. Bạn có thể dùng nó để tương tác với các chương trình của mình trong runtime và thao tác những thứ như goroutines và stacks. Bản thân Delve cũng được viết bằng Go nên có thể cung cấp runtime tốc độ cao cho các lập trình viên.

Delve hoạt động theo nguyên tắc giống như GDB và LLDB, ngoại trừ thực tế là nó có một bộ lệnh duy nhất khác biệt rất nhiều so với hai bộ lệnh còn lại. Chỉ cần gõ help sau khi đăng nhập và bạn sẽ có danh sách đầy đủ tất cả các tùy chọn gỡ lỗi mà Delve cung cấp cho bạn.

Không giống như các trình gỡ lỗi chung cho nhiều ngôn ngữ, Delve cung cấp nhiều lệnh dành riêng cho Go hơn, cho phép bạn xem xét ứng dụng của mình ở cấp độ chi tiết hơn khi nó chạy.

Sử dụng Delve để xem xét các quy trình và chuỗi cụ thể của Go.
Sử dụng Delve để xem xét các quy trình và chuỗi cụ thể của Go.

Để cài đặt Delve:

Trong các bản phân phối dựa trên Ubuntu/Debian:

sudo apt install delve

Trong các bản phân phối Fedora/RHEL:

sudo dnf install delve

Trong các bản phân phối dựa trên Arch:

sudo pacman -S delve

5. Xdebug

Xdebug là một debugger PHP mạnh mẽ dành cho Linux. Nó cung cấp một trình debugger dễ dùng có thể được sử dụng với nhiều IDE. Xdebug có thể cài đặt một cách dễ dàng trên máy tính Linux bằng package manager.

Trong khi hầu hết mọi người học cách loại bỏ các biến của họ (được biết đến trong cộng đồng PHP là “dump & die”) để tìm ra vấn đề với một khía cạnh nào đó trong code, thì đôi khi bạn cần một thứ gì đó nặng nề hơn có thể hướng dẫn bạn vượt qua tất cả thói quen của bạn. Xdebug cung cấp tính năng này rất nhiều cho các lập trình viên PHP đầy tham vọng và kỳ cựu.

Đầu ra Xdebug trong phiên gỡ lỗi của một số code PHP "echo spam" đơn giản.
Đầu ra Xdebug trong phiên gỡ lỗi của một số code PHP "echo spam" đơn giản.

Đó là Linux debugger duyệt qua từng dòng code PHP và hiển thị chính xác những gì đang xảy ra khi một trang web được xử lý. Xdebug cũng hoạt động trên một số IDE, bao gồm cả VSCode. Các tính năng khác của nó bao gồm trình lược tả mạnh mẽ, trình theo dõi ngăn xếp và khả năng kết xuất toàn bộ phân đoạn thực thi.

Để cài đặt Xdebug:

Trong các bản phân phối dựa trên Ubuntu/Debian:

sudo apt install php-xdebug

Trong các bản phân phối Fedora/RHEL:

sudo dnf install php-xdebug

Trong các bản phân phối dựa trên Arch:

sudo pacman -S xdebug

6. KDbg

KDbg là trình gỡ lỗi giao diện đồ họa cho cho môi trường desktop KDE. Thực tế thì KDbg chỉ là một giao diện của GNU Debugger. Khi dùng KDbg bạn sẽ nhận được tất cả các tính năng của GDB cùng với giao diện người dùng trực quan. Vì thế, KDbg phù hợp với những người mới bắt đầu học debugger.

Các lập trình viên có kinh nghiệm hơn chắc chắn sẽ đánh giá cao cái nhìn rõ ràng về tất cả những biến trong khi xem qua code của chúng cũng như một bảng điều khiển hoàn toàn chuyên dụng hiển thị những gì mỗi thanh ghi CPU đang lưu giữ. Điều này gần như không dễ hình dung trong bất kỳ trình gỡ lỗi nào khác được đề cập ở đây.

Vì điều này, KDbg là sự lựa chọn tuyệt vời cho các lập trình viên ứng dụng gốc truyền thống, từ những người mới bắt đầu học cho đến những cựu binh dày dặn kinh nghiệm nhất.

Để cài đặt KDbg:

Trong các bản phân phối dựa trên Ubuntu/Debian:

sudo apt install kdbg

Trong các bản phân phối Fedora/RHEL:

sudo dnf install kdbg

Trong các bản phân phối dựa trên Arch:

sudo pacman -S kdbg

Lưu ý: Nếu bạn đang sử dụng bản phân phối dựa trên Ubuntu hoặc Debian và không tìm thấy gói cho kdbg trong kho chính thức thì đây chính xác là những gì bạn phải nhập để tự build gói đó:

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 là một trình gỡ lỗi bộ nhớ đáng tin cậy, cung cấp nhiều công cụ bổ sung để phân tích phần mềm. Nhìn chung, Valgrind là một lựa chọn tuyệt vời cho các chuyên gia nhờ bộ tính năng phong phú và nhiều công cụ giám sát bộ nhớ của chương trình trong khi nó chạy.

Valgrind phát hiện rò rỉ bộ nhớ trong một chương trình.
Valgrind phát hiện rò rỉ bộ nhớ trong một chương trình.

Valgrind là một debugger hiệu quả cao, cung cấp rất nhiều công cụ bổ sung cho việc phân tích phần mềm. Nó chạy trên tất cả các nền tảng lớn bao gồm Linux và Mac. Hơn nữa, bạn có thể sử dụng nó như một framework và tạo ra các công cụ phân tích linh hoạt hơn. Xét tổng thể, Valgrind là một lựa chọn hoàn hảo cho các chuyên gia.

Để cài đặt Valgrind:

Trên các bản phân phối dựa trên Ubuntu/Debian:

sudo apt install valgrind

Trên các bản phân phối Fedora/RHEL:

sudo dnf install valgrind

Trên các bản phân phối dựa trên Arch:

sudo pacman -S valgrind

8. strace

strace là một tiện ích usersapace cho Unix. Nó cho phép người dùng theo dõi các lệnh và tín hiệu hệ thống một cách trực tiếp từ terminal. Lập trình viên có thể sử dụng strace để kết xuất dấu vết ngăn xếp, lọc các lệnh hệ thống, sửa đổi code trả về, trích xuất bộ mô tả file...

Khi có các debugger Linux mạnh mẽ trong tay công việc lập trình viên sẽ dễ dàng hơn rất nhiều. Hầu như bất kỳ kỹ sư phần mềm nào cũng phải cài đặt các công cụ như GDB và LLDB. Mặt khác, các debugger chuyên biệt như Delve và Xdebug sẽ được dành cho các dự án và hệ sinh thái cụ thể.

Công cụ debugger strace
Công cụ debugger strace

Quan trọng hơn, strace cho phép bạn đính kèm vào các chương trình đang chạy. Điều này cho phép bạn tìm hiểu kỹ hơn về bất kỳ phần mềm nào bạn chạy trên máy của mình để tìm hiểu thêm về nguyên nhân có thể gây ra sự cố.

Để cài đặt strace:

Trong các bản phân phối dựa trên Ubuntu/Debian:

sudo apt install strace

Trong các bản phân phối Fedora/RHEL:

sudo dnf install strace

Trong các bản phân phối dựa trên Arch:

sudo pacman -S strace

Với những công cụ này, bạn có thể tìm, thúc đẩy và phân tích code của mình theo những cách mà trước đây bạn có thể cảm thấy không thể tiếp cận được. Có thể mất chút thời gian để nắm bát, nhưng nó rất đáng giá. Nếu bạn nghiêm túc về việc lập trình trên Linux, việc học cách sử dụng trình gỡ lỗi của nó sẽ giúp bạn tiết kiệm nhiều thời gian hơn về lâu dài.

Bây giờ, bạn đã có trình gỡ lỗi Linux tốt nhất, đã đến lúc bạn tìm các bản phân phối Linux tốt nhất dành cho nhà phát triển và lập trình viên.

Thứ Hai, 15/04/2024 11:52
55 👨 1.479
0 Bình luận
Sắp xếp theo
    ❖ Linux