Python:
Sử dụng bộ gỡ lỗi

Làm thế nào:

Hãy cùng phân tích cách sử dụng pdb, debugger có sẵn của Python. Hãy tưởng tượng một file có tên là buggy.py, chứa một lỗi khó tìm:

def add_one(so):
    ket_qua = so ++ 1
    return ket_qua

print(add_one(7))

Khi bạn thực thi script này, bạn mong chờ 8, nhưng nó chỉ báo lỗi cú pháp. Giờ là lúc để debugger ra tay!

Trên terminal, chạy:

python -m pdb buggy.py

Bạn sẽ bước vào debugger, và nó trông như thế này:

> /duong_dan_toi_file/buggy.py(1)<module>()
-> def add_one(so):

Sử dụng l(ist) để xem nhiều code hơn, n(ext) để đi tới dòng tiếp theo, hoặc c(ontinue) để tiếp tục chạy script. Khi bạn gặp lỗi, pdb sẽ dừng lại và cho bạn kiểm tra.

Sau khi bạn sửa so ++ 1 thành so + 1, khởi động lại debugger để kiểm tra sửa chữa. Nhớ là, bạn bè không để bạn bè code mà không có lưới. Đủ nói.

Đào sâu

Trở lại Thời kì Tối tăm của lập trình (còn được biết đến là trước khi môi trường phát triển tích hợp, hay IDE, trở nên phổ biến), debugger thường là những công cụ độc lập mà bạn sử dụng bên ngoài trình soạn thảo văn bản. Chúng đến để cứu rỗi bằng cách cho phép lập trình viên kiểm tra trạng thái của phần mềm tại các điểm thực thi khác nhau.

Tính đến năm 2023, pdb của Python không phải là lựa chọn duy nhất. Mọi người có thể sử dụng IDE như PyCharm hay Visual Studio Code, mà có debugger riêng được tích hợp sẵn. Những công cụ này thêm vào các tính năng tiện lợi như breakpoints mà bạn có thể đặt bằng một cú nhấp chuột, thay vì phải gõ những lệnh bí ẩn.

Sau đó là ipdb, một gói có thể cài đặt qua pip mang đến vẻ đẹp của IPython cho quá trình debug. Đó là như pdb được tăng cường hiệu suất, với tự động hoàn thiện và làm nổi bật cú pháp.

Debugger cũng khác nhau về cách thức triển khai. Một số tiếp cận gần gũi với việc thực hiện chương trình ở cấp độ mã máy hoặc mã byte. Những cái khác, như nhiều debugger của ngôn ngữ cấp cao, thực thi mã trong một môi trường đặc biệt giám sát trạng thái biến và kiểm soát dòng chảy thực thi.

Xem thêm

Để có cái nhìn đầy đủ về debugger của chính Python, hãy xem:

Nếu bạn tò mò về các phương án thay thế, những đường link này sẽ hữu ích:

Chúc bạn may mắn trong việc săn lỗi!