Debug C# với Visual Studio
Đầu tiên chúng ta nhìn vào một chương trình ngắn viết bằng ngôn ngữ C# có nhiều biến cục bộ trong đó.
Để xem bên trong một hàm bạn cần sử dụng một Break Point (Điểm dừng) ở một nơi trong khối lệnh C# mà bạn có. Ví dụ tôi sẽ sử dụng Chương trình đơn giản là:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Debugging
{
class Program
{
static void Main(string[] args)
{
int a;
int b;
a = b = 10;
int c = 90;
String s = "Hello Thanh Cuong!";
Console.WriteLine(" a + b + c = {0}", a + b + c);
Console.WriteLine(s);
}
}
}
Tạo và thiết lập BreakPoint
Ở đây tôi sẽ thêm một Breackpoint vào đầu chương trình ở trên. Trên bên trái của tab mã nguồn bạn nhấp chuột vào dòng muốn debug hoặc đưa con nháy tới dòng muốn debug và nhấn F9 sẽ thấy một dấu hình tròn màu xám trước dòng đó. Như hình bên dưới. Nhấn F5 để chạy chương trình, khi chương trình chạy đến dòng lệnh mà bạn đặt breakpoint nó sẽ dừng lại và chương trình debug sẽ được mở ra.
Khi Debugger hoạt động
Khi bạn thiết lập Breakpoint (vòng tròn nhỏ màu xám) trên mã lệnh của bạn, công cụ debug sẽ mở ra khi chương trình chạy tới điểm mà bạn đặt BreakPoint. Chương trình sẽ tạm dừng ở đó. Để bạn có thể sử dụng để kiểm tra các biến mà mình nghi ngờ là chương trình có thể chạy sai ở đó.
Bắt đầu Debug
Để bắt đầu Debug bạn nhấp chuột vào nút có mũi tên màu xanh ở thanh công cụ trong Visual Studio của bạn hoặc nhấn F5 như hình bên dưới
Chờ chương trình chạy đến BreakPoint
Khi chương trình thực thi đến Breackpoint mà bạn đã đánh dấu thì dòng đó sẽ chuyển sang màu vàng như hình bên dưới.
Bây giờ bạn có thể kiểm tra các biến cục bộ của chương trình bằng cách vào menu Debug –> Windows –> Locals (hoặc ấn Alt F4)
Sử dụng tính năng locals để xem giá trị của các biến cục bộ
Bây giờ bạn có thể thấy các biến cục bộ trong chương trình của mình và giá trị của nó khi chương trình chạy đến đó. Bạn có thể sử dụng chức năng này để biết được mỗi giá trị thay đổi như thế nào khi chương trình chạy đến đó.
Step over statements
Trong phần này, chúng ta sẽ tìm hiểu cách lựa chọn trong visual studio debugger. Thông thường trong chương trình Debug bạn muốn tiến một bước, bạn nhấn vào nút màu xanh ở thanh công cụ để đến điểm breakpoint tiếp theo.
- Step into (F11): Step into thực thi chỉ gọi chính nó, sau đó dừng ở dòng đầu tiên của mã lệnh trong hàm.
- Step over (F10): Di chuyển đến bước kế tiếp trong mã của bạn, nhưng không dừng bên trong mỗi phương thức.
- Step out: bỏ qua phần còn lại của các phương thức hiện hành và đi vào các phương thức được gọi.
Các bước thực hiện trong ví dụ này, tôi sử dụng step over (F10), điều này cho phép chúng ta xem giá trị của tất của tất cả các biến.
Thông tin thêm
Công cụ Debug của visual studio là khá toàn diện và hiệu quả cho hầu hết các vấn đề. Nó bao gồm nhiều sự lựa chọn hơn, bao gồm: Call Stack, Command Windows, Exception, Autos. Bạn có thể cấu hình các breakpoint chỉ đơn giản là viết một thông điệp trong console… Điều này rất tốt để thử nghiệm hiệu suất.
Nếu các công cụ khác không có trình Debug bạn nên làm gì?
Khi sử dụng các trình biên dịch không có công cụ Debug hoặc công cụ debug yếu. Bạn có thể sử dụng các lệnh để in kết quả của các biến ra màn hình để kiểm tra việc hoạt động của các biến đó. Tuy cách này hơi lâu hơn công cụ Debug của Visual Studio nhưng nó cũng khá hiệu quả trong việc kiểm tra và theo dõi các biến.