Nội dung bài viết
Đăng ký học lập trình C++
Tại STDIO bạn được dạy nền tảng lập trình tốt nhất.
Đăng ký học
Trong bài viết này tôi sẽ tập trung nói về cách debug trong quá trình coding. Tôi sẽ sử dụng một ví dụ mẫu viết bằng C# trên IDE Visual Studio 2013 để minh họa việc debug một cách trực quan nhất. Ngoài ra bài viết này cũng là tài liệu tham khảo cho những bạn muốn tìm hiểu về debug và đang sử dụng các IDE khác.

Giới thiệu

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 để chỉnh lại theo ý muốn của mình.

Tiền đề bài viết

Trong bài viết này tôi sẽ tập trung nói về cách debug trong quá trình coding. Tôi sẽ sử dụng một ví dụ mẫu viết bằng C# trên IDE Visual Studio 2013 để minh họa việc debug một cách trực quan nhất. Ngoài ra bài viết này cũng là tài liệu tham khảo cho những bạn muốn tìm hiểu về debug và đang sử dụng các IDE khác.

Đối tượng hướng đến

Những bạn đang làm việc với IDE Visual Studio.
Những bạn làm việc với những IDE khác.

Start Debugging and Continue Execution

Để bắt đầu debug tôi sẽ 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 bạn đang đang ở chế độ debug mà gặp một breakpoint (Tôi sẽ giải thích phía dưới) thì nút Start sẽ trở thành Continue

ss_2

Breakpoints

Một 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ể bạn nhấn nhấp chuột vào lề trái của IDE hoặc nhấn F9 để đặt Breakpoint .

ss_3

Bạn sẽ nhìn thấy một vòng tròn màu đỏ xuất hiện, và làm nổi bật dòng code mà bạn đang đặt Breakpoint . Khi thực thi tới dòng code được đặt Breakpoint bạn sẽ thấy có một mũi tên trong vòng tròn đỏ (instruction pointer) nói là đâ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 bạn đi qua các variable trong IDE thì tôi sẽ thấy được 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: là một console style window cho phép bạn gõ các variable trên console và xuất giá trị variable.

ss_9

Stepping, Set Next Statement

Một khi ngừng trên một breakpoint tôi 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 mà bạn 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 tôi có thể edit một giá trị của một variable và tiếp tục thực thi. Tôi edit dòng code:

int count = (int)c;

Thành:

int count = (int)c + 5;

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

ss_10

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

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

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

ss_11

Tổng Kết

Trong bài viết này tôi minh họa một cách cơ bản nhất về debug, và sử dụng các Debuger để tìm bug và kiểm soát được các luồng sự kiện trong quá trình làm việc và học tập.

THẢO LUẬN