Search…

Tổng Quan về Debug

22/09/20203 min read
Hướng dẫn debug bằng IDE Visual Studio.

Trong quá trình lập trình ai cũng có thể gặp những lỗi không mong muốn nên việc debug như là một việc rà soát lại các dòng code và tìm kiếm các bug.

Start Debugging and Continue Execution

Để bắt đầu debug nhấn vào nút Start trên toolbar, hoặc đi đến menu và chọn Start → Debug hoặc phím F5.

ss_1

Khi đang ở chế độ debug mà gặp một breakpoint thì nút Start sẽ trở thành Continue. 

ss_2

Breakpoints

Breakpoint là một khái niệm debug (gỡ lỗi) mà các trình gỡ lỗi (Debuger) để break (tạm ngừng) thực thi của ứng dụng tại một dòng code cụ thể.

Để thiết lập một Breakpoint trên một dòng code cụ thể, nhấp chuột vào lề trái của IDE hoặc nhấn F9 để đặt Breakpoint.

ss_3

Xuất hiện 1 vòng tròn màu đỏ làm nổi bật dòng code đang đặt Breakpoint. Khi thực thi tới dòng code được đặt Breakpoint sẽ thấy có một mũi tên trong vòng tròn đỏ (instruction pointer) - đây là dòng code sẽ thực thi tiếp theo. 

ss_3

Variable Inspection

Khi ngừng tại breakpoint để muốn theo dõi được giá trị của các valiable tại thời điểm đó. IDE cung cấp một số cách như sau:

  • DataTips: khi đi qua các variable trong IDE sẽ thấy giá trị của các variable.
ss_5
  • Locals Window: xuất hiện giá trị của các local variable và không xuất hiện các giá trị của global variable.
ss_6
  • Watch Window: cho phép gõ tên của bất kỳ biến hoặc thuộc tính cần phải kiểm tra.
ss_7
  • Autos Window: xuất hiện các giá trị của variable trong vòng  một vài dòng mã trước và sau nơi bạn đang ngừng lại.
ss_8
  • Immediate Window: console style window cho phép gõ các variable trên console và xuất giá trị variable.
ss_9

Stepping, Set Next Statement

Khi ngừng trên một breakpoint muốn đi qua một đoạn mã khác để thực thi thay vì phải đặt tất cả các breakpoint trên các dòng code muốn ngừng lại. Debugger cung cấp khả năng đi qua các dòng code một cách đơn giản:

  • Step Over (F10): đi đến câu lệnh tiếp theo.
  • Step Into (F11): nếu instruction pointer đang ở một function thì instruction pointer để đi vào bên trong function và đặt instruction pointer vào đầu dòng code của function đó.
  • Step Out (Shift + F11): hoàn thành thực thi của một method hiện tại và ngừng Debuger trong function cha.

Edit and Continue

Trong quá trình debug có thể edit một giá trị của một variable và tiếp tục thực thi.

Edit dòng code:

int count = (int)c;

Thành dòng sau:

int count = (int)c + 5;

Kết quả như hình dưới:

ss_10

Ngoài ra còn có thể thêm những dòng code khác và thực thi chương trình. Ở đây thêm dòng code:

Console.WriteLine("Hello STDIO.VN");

Kết quả như hình dưới:

ss_11
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024