PyCharm Debug

Python SELF VI
Mức độ , Bài học
Có sẵn

9.1 Khởi chạy debugger

Chúng ta sẽ học cách debug dựa trên PyCharm, điều này rất hợp lý và thú vị. Bây giờ bạn sẽ thấy điều đó.

Trong PyCharm, bạn có thể chạy chương trình của mình ở hai chế độ:

Các chế độ chạy chương trình Biểu tượng trên thanh công cụ Phím tắt
Thực thi bình thường Shift+F10
Chạy ở chế độ debug Shift+F9

Bạn đã quen thuộc với chế độ thực thi bình thường: chương trình sẽ chạy, thực thi và kết thúc. Nhưng chế độ debug sẽ mang đến cho bạn nhiều điều thú vị.

Chế độ debug

Chế độ debug cho phép bạn thực thi toàn bộ chương trình của mình theo từng bước. Hoặc có thể nói đúng hơn, từng dòng: dòng này đến dòng khác. Trong quá trình này, bạn có thể theo dõi giá trị của các biến tại mỗi bước của chương trình (sau khi thực hiện mỗi dòng mã). Bạn thậm chí có thể thay đổi giá trị của chúng!

Để nắm vững tối thiểu kỹ thuật debug chương trình, bạn cần tìm hiểu ba điều:

  • Điểm dừng
  • Thực thi từng bước
  • Xem giá trị của biến

9.2 Điểm dừng (Break Points)

IDE cho phép bạn đặt trong mã các điểm đánh dấu đặc biệt — điểm dừng (break point). Mỗi khi chương trình chạy ở chế độ debug đến dòng được đánh dấu là break point, nó sẽ dừng lại.

Để đặt break point trên một dòng cụ thể, chỉ cần nhấp vào bên trái dòng đó trong PyCharm. Ví dụ:

Kết quả là dòng sẽ được đánh dấu bằng điểm dừng (break point), và PyCharm sẽ tô sáng toàn bộ dòng đó bằng màu đỏ:

Nhấp chuột lại vào bảng bên trái mã sẽ xóa bỏ break point đã đặt.

Bạn cũng có thể đặt break point trên dòng hiện tại bằng tổ hợp phím — Ctrl+F8. Nhấn lại Ctrl+F8 trên dòng đã có break point sẽ xóa nó.

9.3 Chạy chương trình ở chế độ debug (dò lỗi)

Nếu chương trình của bạn có ít nhất một điểm dừng, bạn có thể chạy chương trình ở chế độ debug (Shift+F9 hoặc "biểu tượng con bọ").

Sau khi chạy ở chế độ debug, chương trình sẽ thực thi như bình thường. Nhưng khi đến dòng mã được đánh dấu break point, chương trình sẽ dừng lại. Ví dụ:

Ở nửa trên của ảnh chụp màn hình, bạn thấy mã chương trình với hai điểm dừng. Chương trình đã dừng ở dòng 2 — được đánh dấu bằng dòng xanh. Dòng 2 chưa thực thi: chưa có gì được in ra console.

Ở nửa dưới của màn hình, bạn thấy các bảng điều khiển chế độ debug: bảng Thread & variables, bảng Console (kết quả in ra màn hình), và các nút cho chế độ debug.

Bạn có thể tiếp tục chương trình của mình (cho nó tiếp tục chạy), nếu bạn nhấn vào nút Resume Program trên bảng bên trái dưới (hoặc nhấn phím F9).

Nếu bạn nhấn nút đó (hoặc F9), chương trình sẽ tiếp tục chạy cho đến khi gặp điểm dừng tiếp theo hoặc kết thúc. Đây là những gì chúng ta sẽ thấy sau khi nhấn nút đó:

Chương trình đã dừng lại ở điểm dừng thứ hai, và từ console, dòng chữ "Hello""and" được in ra – dấu hiệu cho thấy từ ba dòng mã in ra màn hình chỉ có hai dòng được thực thi.

9.4 Thực thi từng bước

Nếu chương trình của bạn đang hoạt động ở chế độ debug, bạn cũng có thể thực thi nó từng bước: một bước — một dòng. Để thực thi từng bước, bạn có hai phím tắt: F7 và F8: mỗi phím sẽ thực hiện dòng mã hiện tại. Nhưng trước tiên bạn sẽ cần tạm dừng chương trình của mình bằng break point.

Nếu bạn muốn thực thi chương trình của mình theo từng dòng, bạn cần đặt break point ở đầu tiên — dòng đầu tiên có mã — và chạy nó ở chế độ debug.

Khi chương trình dừng lại, bạn có thể bắt đầu thực thi từng dòng một. Một lần nhấn phím F8 — một dòng mã.

Đây là hình ảnh chương trình của chúng ta sau khi dừng lại và nhấn phím F8 một lần:

Dòng đầu tiên — print("Hello") — đã được thực thi, và dòng hiện tại là dòng thứ hai. Bạn cũng có thể thấy ở phần dưới của ảnh chụp màn hình rằng từ "Hello" đã được in ra màn hình.

9.5 Thực thi từng bước với việc đi vào các hàm

Nếu chương trình của bạn có các hàm riêng và bạn muốn chương trình của bạn trong chế độ debug không chỉ thực thi từng bước mà còn đi sâu vào bên trong các hàm của bạn, thì để "đi vào hàm" bạn cần nhấn không phải phím F8 mà là phím F7.

Giả sử bạn đang thực thi từng bước chương trình và hiện tại đã dừng ở dòng thứ 5. Nếu bạn nhấn phím F8, PyCharm sẽ chỉ đơn giản thực thi dòng thứ 5 và chuyển đến dòng thứ 6.

Nhưng nếu bạn nhấn F7, PyCharm sẽ thực thi từng bước hàm hello():

Rất đơn giản. Nếu bạn không quá quan tâm về những gì diễn ra bên trong phương thức, bạn nhấn F8, nếu quan tâm — F7 và thực thi từng bước toàn bộ mã của nó.

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION