Hướng dẫn debug siêu nhanh chỉ trong vòng 5 phút. Đây là kĩ năng quan trọng mà ai theo ngành cũng cần biết. Nếu bạn đã lâu không dùng tới debugger, hãy xem qua bài viết này để ôn lại nhé. Ok bắt đầu thôi. Show 1. Debug là gì đây?Nhớ lại lúc mới học lập trình, hẳn ai cũng đã từng dùng các câu lệnh print giá trị của biến ra màn hình để xem. Ví dụ như đoạn code Java sau.
Cách này khá đơn giản và dễ làm quen. Tuy nhiên nó chỉ hợp với các bạn newbie, mới lần đầu tiếp xúc với code. Nếu bạn đã code được một thời gian, hãy tập sử dụng một công cụ khác có tên là debugger. Hầu hết các IDE và một số text editor đã có debugger. Debugger là một tool siêu hữu ích để thực hiện việc debug - tìm và fix các lỗi trong chương trình. Nói vậy thôi chứ mục đích của debugger còn nhiều hơn thế:
Nhiều bạn (và cả mình nữa) nghĩ debug là thứ gì đó cao siêu nên ngại tìm hiểu. Thực sự việc dùng debugger cực kì đơn giản, chỉ cần 5 phút đọc bài viết là bạn sẽ hiểu ngay. Debug cũng chỉ gồm một vài thao tác cơ bản, tương tự nhau trên mọi IDE nhưng lợi ích mang lại rất lớn. 2. Debug thế nào cho chuẩn?Các IDE khác nhau sẽ có debugger khác nhau, nên sẽ có một tí khác biệt. Nhưng chung quy lại thì debug chỉ gồm một số bước sau:
Cơ bản là thế, trong những mục con tiếp theo đây chúng ta sẽ bàn kĩ hơn về chúng. 2.1. BreakpointLà thứ được đánh dấu lên dòng code, khi chương trình chạy tới dòng có breakpoint thì sẽ bị tạm dừng. Lúc này bạn có thể dùng các tool của debugger để xem giá trị các biến, xem log,... Hoặc bạn có thể đi tiếp từng dòng tiếp theo, hoặc cho chương trình chạy bình thường (không bị tạm dừng nữa). Cách đặt breakpoint: Click chuột vào lề trái của dòng đó. Lúc này breakpoint sẽ được toggle, click thêm lần nữa để xóa (như hình). Breakpoint thường là có dạng hình tròn màu đỏ, dấu tròn này có thể khác đôi chút để biểu thị trạng thái breakpoint (đã được đi qua hay chưa). Khi chương trình tạm dừng tại breakpoint thì dòng đó sẽ được highlight. Lưu ý: Dòng code được highlight sẽ chưa thực hiện, chỉ khi bạn đi tiếp qua dòng khác thì dòng trước đó mới được thực thi. 2.2. Local variables & watchesKhi chương trình dừng tại breakpoint, chúng ta có thể dùng 2 tool là Local variables và watches để xem giá trị các biến:
Local variables thì sẽ tự động update danh sách biến trong function. Tuy nhiên, với watch thì bạn phải tự thêm các biến vào thủ công (chuột phải vào biến, Add to watches). Như hình, thì IntelliJ IDEA gộp chung 2 tools trên lại thành Variables. 2.3. Step over, các step khác, stop/resume programKhi IDE tạm dừng tại breakpoint, thì muốn tiếp tục đi qua các dòng tiếp theo cần thực hiện:
Ngoài ra, đôi lúc bạn sẽ muốn tiếp tục chạy chương trình bình thường (không phải dùng Step over từng dòng nữa). Lúc này bạn dùng command Resume để tiếp tục chương trình, hoặc stop để dừng lại. Mẹo vui là lúc trước mình mới bỡ ngỡ dùng debugger mà không biết tới cái Resume này, nên mỗi lần chạy tới breakpoint xong là phải chạy lại chương trình từ đầu. Giờ ngẫm lại thấy mình ngu thật Thường thì các command trên sẽ có các phím tắt tương ứng. Cái này tùy vào IDE quy định keymap nhé, bạn có thể tìm hiểu thêm. |