Cơ bản về debug

"Thuật ngữ"

  • F5 để bắt đầu debug. (Ctrl + F5 : chạy bỏ qua debug).
  • Breakpoint: điểm dừng, nếu chương trình mà gặp breakpoint thì chương trình sẽ dừng lại. Khi đó mình sẽ bắt đầu debug. Để đặt/hủy breakpoint, nhấn F9. Có thể đặt nhiều breakpoint cùng lúc, và ngay cả khi đang debug.
  • Để nhảy đến breakpoint kế tiếp, bấm F5 .
  • Để nhảy từng dòng, bấm F10 .
  • Và một số phím tắt, chức năng khác sẽ nhắc tới trong quá trình debug.

Tóm lại cần nhớ 4 thứ quan trọng: breakpoint, F5 , F9, F10 .

Xét chương trình

Bắt đầu debug, đặt con trỏ chuột tại dòng 5 và bấm F9 (đặt breakpoint tại dòng này). Bạn cũng có thể đặt breakpoint bằng cách click vào viền bên trái của code (nơi breakpoint xuất hiện).

debug breakpoint

Bắt đầu debug, bấm F5 . Chương trình sẽ dừng lại ngay điểm đặt breakpoint. Có 3 cửa sổ cần quan tâm khi debug.

debug window

  • 1. Output: xem xét giá trị in ra khi sử dụng câu lệnh Debug.WriteLine(), mình sẽ nói ở phần sau.
  • 2. Locals: các giá trị hiện tại của tham số trong chương trình.
  • 3. Watch: dùng để watch (theo dõi) giá trị của 1 tham số.

Dễ thấy, khi chương trình chạy tới breakpoint thì các biến x, y, sum đang giữ các giá trị lần lượt là 5, 3, 0. Bây giờ mình sẽ theo dõi quá trình thay đổi giá trị của nó.

Bấm F10 để nhảy sang dòng tiếp theo. Bây giờ, nếu bấm F10 một lần nữa, chương trình sẽ chạy tới dòng in ra màn hình. Vậy để xem thử hàm Sum "làm ăn" ra sao, mình sử dụng phím F11 và đi vào hàm Sum (step info)

debug step info

Tiếp tục F10 để nhảy từng dòng. Chú ý khi tới dòng 27

Lúc này s vẫn đang giữ giá trị là 0 vì chương trình mới tới đó chứ chưa thực hiện nó. Dòng màu vàng chính là dòng hiện tại của chương trình. F10 một lần nữa

debug next step

Khi chương trình đã chạy qua dòng 27 tức là đã thực hiện lệnh tổng, lúc này s sẽ có giá trị bằng tổng của x và y. F10 lần nữa, lệnh return được gọi, chương trình sẽ thoát ra khỏi hàm Sum và quay lại với hàm main. Nếu ta không muốn debug từng dòng nữa, bấm F5 để chạy hết chương trình (nếu có 1 breakpoint sau đó nữa, chương trình sẽ lại dừng ngay breakpoint đó).

Kết quả

debug output

Đến đây chắc hẳn các bạn đã nắm được các bước cơ bản của quá trình debug rồi chứ nhể: F9 - đặt breakpoint, F5 - debug, F10 - nhảy từng dòng và F11 - step info (xem cụ thể hàm). Chú ý, nếu bạn không sử dụng F11 mà đặt 1 breakpoint trong hàm Sum, chương trình sẽ vẫn chạy vào đó và dừng lại như thường.

Còn gì nữa không?

Chúng ta sẽ xem xét chức năng của cửa sổ output, mình sẽ thêm 1 dòng code như sau (dòng in đậm)

Để sử dụng được lệnh Debug, using System.Diagnostics;

debug dianostics

Câu lệnh Debug.WriteLine() rất hữu ích trong trường hợp bạn chạy các vòng lặp, khi đó bạn khó có thể mà cứ chạy bằng tay từng dòng được, sử dụng lệnh Debug sẽ giúp bạn rất nhiều.

Chức năng watch và một số chức năng còn lại, các bạn thử tự mình khám phá bằng cách bắt tay vào debug 1 chương trình ngay đi nào.

Comments

Post a Comment

Popular posts from this blog

Gỡ bộ Visual Studio ra khỏi máy tính

Căn giữa thẻ div trong thẻ div