Mất 4 phút đọc

Debug trong C#

Nội dung

  • Tại sao phải chạy debug
  • Cách thức chạy debug

Tại sao phải chạy debug?

Trong quá trình coding, lập trình viên thường gặp nhiều loại lỗi khác nhau:

  • Lỗi biên dịch
  • Lỗi lúc thực thi
  • Lỗi sai logic

Nguy hiểm nhất vẫn là lỗi sai logic(sai yêu cầu nghiệp vụ khác hàng cần), phải biết debug để tìm ra nguyên nhân.

Cách thức chạy debug

Trong Visual Studio có tích hợp sẵn công cụ gỡ lỗi chương trình (debugger). Đây là một công cụ khá mạnh, cho phép lập trình viên có thể đi qua từng dòng lệnh trong chương trình, đi vào chi tiết các phương thức được gọi, xem giá trị của các biến thay đổi qua các dòng lệnh…

Việc gỡ lỗi bằng công cụ của Visual Studio thường được thực hiện theo các bước sau:

  • Đặt breakpoint
  • Thực thi chương trình ở chế độ debug
  • Quan sát và đánh giá giá trị các biến
  • Thực thi dòng lệnh tiếp theo và tiếp tục quan sát giá trị các biến ở từng dòng lệnh cho đến khi phát hiện ra lỗi.
  • Dừng gỡ lỗi
  • Chỉnh sửa câu lệnh gây lỗi.

Đặt breakpoint

Breakpoint là điểm dừng trên các dòng coding mà ta nghi ngờ nó gây ra lỗi.

Để đặt breakpoint, ta thực hiện như sau:

– Di chuyển con trỏ đến dòng lệnh sẽ đặt breakpoint

– Thực hiện một trong hai cách sau:

  • Nhấn phím F9
  • Click chuột trái vào thanh bên trái cửa sổ soạn thảo mã
  • Việc bỏ breakpoint cũng thực hiện tương tự như đặt breakpoint.

Trong một chương trình ta có thể đặt nhiều breakpoint để kiểm tra, tùy theo nhu cầu của lập trình viên.

Tại mỗi điểm breakpoint, ta có thể thiết lập điều kiện tạm dừng chương trình cho breakpoint đó bằng cách nhấn nút phải chuột lên breakpoint, chọn Condition và đưa vào điều kiện cần thiết. Khi gỡ lỗi, chương trình chỉ dừng tại breakpoint đó nếu điều kiện được thỏa mãn.
Theo dõi giá trị biến khi gỡ lỗi

Để bắt đầu chạy chương trình ở chế độ gỡ lỗi, ta thực hiện một trong những cách sau:

  • Nhấn F5
  • Vào menu Debug à Start Debugging

Trong quá trình chạy để gỡ lỗi, lập trình viên có thể theo dõi trạng thái chương trình bằng nhiều cửa sổ:

Cửa sổ Locals: Tự động liệt kê danh sách các biến của phương thức đang thực thi

Cửa sổ Watch: Cho phép nhập vào biến hoặc biểu thức cần xem xét

Cửa sổ Immediate: cho phép thực hiện một câu lệnh nào đó ngoài đoạn mã đang debug mà không ảnh hưởng đến bước debug hiện tại

Cửa sổ Call Stack: cho phép xem trình tự được gọi của các phương thức sau khi phương thức chứa dòng lệnh hiện hành thực hiện xong.

Thực thi dòng lệnh khi gỡ lỗi

Step Over: là dạng thực hiện các dòng lệnh kế tiếp một cách tuần tự bằng cách nhấn phím F10 trong quá trình gỡ lỗi. Trong các dòng lệnh đó, nếu có lệnh gọi một phương thức nào đó thì chương trình sẽ tự động thực hiện toàn bộ câu lệnh trong phương thức đó như một câu lệnh thông thường.

Step Into: cũng là dạng thực hiện dòng lệnh kế tiếp nhưng nếu trong các dòng lệnh đó có lời gọi đến phương thức nào đó thì chương trình sẽ tìm đến phương thức đó và chạy từng dòng lệnh trong đó. Khi các câu lệnh trong phương thức được thực hiện xong, chương trình lại tiếp tục thực hiện từng dòng lệnh tiếp theo sau lời gọi phương thức. Hình thức này được thực hiện bằng cách nhấn F11 trong quá trình gỡ lỗi.

Step Out: là dạng thực hiện tất cả các lệnh còn lại của phương thức được gọi khi đang sử dụng Step Into bằng cách nhấn Shift + F11. Dạng này thường được sử dụng khi người gỡ lỗi muốn thực hiện nhanh các lệnh còn lại sau khi đi vào phương thức bằng Step Into.

Sau khi xác định được dòng lệnh gây ra lỗi, ta có thể dừng chế độ gỡ lỗi để chỉnh sửa bằng một trong những cách sau:

  • Nhấn Shift + F5
  • Vào menu Debug à Stop Debugging.

Gỡ lỗi và sửa lỗi

Tất cả phần mềm viết ra đều có lỗi, vấn đề là lỗi đó chưa được phát hiện ra mà thôi.

  • Bất kỳ lập trình viên nào cũng có thể gặp phải lỗi trong quá trình xây dựng chương trình của mình.
  • Nên gỡ lỗi từng đoạn chương trình, nếu mới tiếp cận một ngôn ngữ lập trình nào đó thì phải sửa lỗi ngay khi gặp, đừng cố gắng viết tiếp khi chương trình đang lỗi.
  • Khi gặp lỗi, lập trình viên cũng cần cẩn thận, không sửa lỗi cho đến khi hiểu rõ về nguyên nhân gây ra lỗi nhằm tránh gây ra lỗi khác khi sửa.
5/5 - (1 Bình chọn)
1065 lượt xem

11/03/2022 Ứng Dụng Miễn Phí

Bài viết liên quan

Block "5_tab_footer" not found