Top 10 Tips giúp Lập trình viên Debug Java hiệu quả hơn

0
887

Một trong những công việc khiến các nhà phát triển phải đau đầu rối óc chính là gỡ lỗi mã của họ. Đặc biệt là những đoạn mã được viết bằng ngôn ngữ lập trình Java, việc Debug Java có rất nhiều khó khăn.

Gỡ lỗi ứng dụng sẽ giúp cho các bạn cải thiện chất lượng của mã. Do đó đây là một kỹ năng cần thiết cho mỗi nhà lập trình với ngôn ngữ Java. Hơn nữa gỡ lỗi cũng giúp các bạn hiểu rõ hơn về chương trình ứng dụng.

Bài viết dưới đây sẽ chia sẻ cho các bạn một số mẹo gỡ lỗi mã chương trình Java. Đặc biệt bài viết sẽ đề cập đến một số vấn đề về thời gian chạy phổ biến và sử dụng IDE Eclipse dựa trên GUI. Đồng thời là các IDE có sẵn khác như IntelliJ,… hỗ trợ tuyệt vời cho việc debug Java. Hãy cùng theo dõi bài viết để có thêm tư liệu nhé!!!

Top 10 Tips giúp Lập trình viên Debug Java hiệu quả hơn

1. Sử dụng Breakpoint có điều kiện

Một điểm dừng có điều kiện là một trong những cách tốt hơn cho bạn nếu bạn đang làm việc với Java và muốn debug java trong IDE Eclipse. Gần như các đoạn lỗi mã trong Eclipse bạn đều có thể sử dụng được điểm dừng có điều kiện để loại bỏ lỗi. Đây là một điểm dừng với một điều kiện được chỉ định trong đó luồng sẽ dừng tại dòng được nhắm mục tiêu khi nó đúng. Điều này không giống với điểm dừng dòng. Hãy quan sát đoạn ví dụ sau đây:

Breakpoint có điều kiện
Breakpoint có điều kiện

Bạn chỉ được thiết lập điểm dừng trên một dòng bên trong vòng lặp chỉ khi giá trị của phần tử /i bằng với một giá trị cụ thể nào đó. Các bước để các bạn thiết lập điểm dừng có điều kiện:

  • Đi đến đoạn mã mà bạn muốn tạo điểm dừng
  • Nhấp chuột phải vào điểm dừng sau đó chọn thuộc tính điểm dừng như hình dưới đây:
Breakpoint Properties
Breakpoint Properties
  • Đánh dấu vào hộp kiểm có điều kiện trong các thuộc tính Breakpoint như hình dưới đây
Line Breakpoint
Line Breakpoint
  • Đặt điều kiện theo mong muốn yêu cầu của bạn và nhấp ‘OK’

Lưu ý cho các bạn trong khi chỉ định điều kiện, các bạn sẽ nhận được giá trị trả về Boolean. Do đó khi điều kiện mà các bạn chỉ định được cho là đúng chương trình mà các bạn tạo sẽ dừng, ngược lại thì khác.

2. Sử dụng Breakpoint Exception

Nhiều khi các bạn Debug Java trong Eclipse các bạn sẽ gặp phải một số lỗi NullPulumException. Có thể với nhiều trường hợp các bạn không nhận thức được lỗi bắt nguồn từ đâu, điều này sẽ khiến cho các bạn không giữ được bình tĩnh.

Vì thế các nhà phát triển Eclipse đã đưa ra một số giải pháp cho những vấn đề như vậy dưới dạng điểm dừng ngoại lệ. Các tính năng này đã được họ cài sẵn trong NetBeans IDE.

Các bạn hoàn toàn có thể thiết lập điểm dừng ngoại lệ tại cửa sổ điểm dừng. Hãy quan sát hình ảnh dưới đây:

Các bạn có thể quan sát thấy nút với nhãn J! trong cửa sổ của điểm dừng. Nút này chính là biểu tượng cho một điểm dừng ngoại lệ trong mã chương trình. Chương trình của bạn vẫn sẽ chạy cho đến khi việc thiết lập điểm dừng ngoại lệ chỉ định được cài đặt.

3. Quan điểm

Trong một môi trường hoặc với một biến bất kỳ các bạn có thể tạo điểm dừng là điểm quan sát. Có thể nói đây là một tính năng vượt trội của IDE Eclipse. Mỗi khi biến mục tiêu được truy cập hoặc có sự thay đổi, việc thực hiện chương trình sẽ được dừng lại và bạn có thể thực hiện gỡ lỗi.

Các bạn cùng theo dõi các bước để thiết lập quan điểm:

  • Nhấp đúp vào lề trái, ngay sau đó dấu hiệu sẽ xuất hiện. Cùng quan sát hình dưới đây để rõ hơn:

  • Định cấu hình những thuộc tính của điểm quan sát. Hình dưới đây. Sau đó thực hiện chương trình sẽ được tạm dừng mỗi khi thuộc tính được đọc hoặc có những thay đổi, đôi khi là cả hai.

  • Khi các bạn thiết lập xong Watchpoint, nó sẽ được liệt kê trong chế độ Breakpoint View.

4. Lọc bước

Khi các bạn bước vào gỡ lỗi các bạn sẽ được điều khiển chương trình từ lớp này sang lớp khác, sau cùng các bạn sẽ được chuyển đến những thư viện bên ngoài hoặc các lớp JDK như System hoặc String.

Với nhiều trường hợp các bạn không muốn di chuyển đến lớp JDK hoặc những thư viện bên ngoài các bạn hoàn toàn có thể ứng dụng bước lọc ở đây. Bằng thao tác này các bạn có thể lọc ra những lớp JDK từ khi bước vào. Tính năng này các bạn có thể bỏ qua một số gói cụ thể cho quá trình gỡ lỗi.

Để thực hiện lọc các bạn làm theo các bước sau:

  • Chuyển đến Windows
  • Click tùy chọn
  • Click vào Java
  • Chọn gỡ lỗi
  • Chọn lọc

Cùng quan sát hình ảnh dưới đây để rõ hơn. Sau này các bạn thành thạo hơn các bạn có thể thực hiện trực tiếp từ cửa sổ gỡ lỗi.

5. Đánh giá (kiểm tra và xem)

Đánh giá là một trong những tính năng khá ổn của IDE Eclipse. Với tính năng này bạn hoàn toàn có thể kiểm tra giá trị của những biểu thức trong khi gỡ lỗi các chương trình của Java. Công việc của bạn được gói gọn trong những cú click chuột để đi vào kiểm tra. Kết quả các bạn sẽ thấy được giá trị của biểu thức được chọn trong quá trình bạn thao tác gỡ lỗi. Hãy quan sát hình ảnh dưới đây:

Đánh giá
Đánh giá

6. Thả vào khung

Eclipse cho phép bạn chọn bất kỳ một khung (mức) trong ngăn xếp trong quá trình gỡ lỗi và đặt JVM để bắt đầu từ mức đã chọn. Đơn giản thì nó cho phép bạn quay lại một phần của chương trình.

Một lưu ý cho các bạn chính là những thay đổi được thực hiện cho một biến sẽ không được đặt lại. Để làm được điều này các bạn hãy tham tiến hành theo các bước:

  • Chọn ngăn sắp xếp từ nơi bạn muốn bắt đầu như hình dưới đây:

  • Nhấp chọn nút thả xuống khung trên thanh công cụ trong cửa sổ gỡ lỗi và sẽ có cửa sổ mới hiện ra:

7. Biến môi trường

Biến môi trường một trong những thiết lập quan trọng trước khi bạn mã hóa trong Java. Và hầu hết các nhà phát triển đều biết cách để thiết lập những biến môi trường. Các bạn cần đi đến những thuộc tính hệ thống để thêm một biến môi trường. Với Eclipse các bạn có thể thực hiện từ chính IDE này.

Các bạn không nhất thiết phải làm theo đường dẫn. Thay vào đó các bạn có thể làm tương tự thông qua chính hộp thoại chỉnh sửa cấu hình. Các bạn hãy quan sát hình ảnh dưới đây

8. Hiển thị cấu trúc logic

Với những cài đặt mặc định của Eclipse các bạn không dễ dàng có thể kiểm tra được. Do đó các bạn cần chỉnh sửa chúng theo cách khác. Một cách hữu hiệu chính là hiển thị cấu trúc logic. Đặc biệt của cấu trúc logic là khi các bạn cố gắng xác định nội dung của những lớp bộ sưu tập Java như HashMap hoặc ArryList. Thay vì hiển thị thông tin chi tiết, cấu trúc logic sẽ hiển thị nội dung cần thiết như khóa và giá trịn của HashMap mà thôi.

Ngoài ra các bạn có thể dễ dàng để kích hoạt tùy chọn hiển thị cấu trúc logic với sự trợ giúp của nút. Đây là một tùy chọn tương đối tiện dụng, hơn cả bạn không có những phương thức totString() có ý nghĩa cho những đối tượng trong cấu trúc. Các bạn hãy quan sát hình ảnh dưới đây để rõ hơn:

 

9. Sửa đổi giá trị của một biến

Eclipse hỗ trợ các bạn thay đổi giá trị của những biến khi gỡ lỗi. Các bạn không nhất thiết phải khởi động lại phiên gỡ lỗi với những thay đổi nhỏ trong mã. Các bạn có thể tiếp tục gỡ lỗi mã chương trình khi đang thực hiện thiết lập. Bạn sẽ tiết kiệm được nhiều thời gian nhờ thao tác này:

10. Dừng lại ở chính

Để khởi động tính năng này các bạn tiến hành mở cửa sổ chỉnh sửa cấu hình và tiến hành đánh dấu hộp kiểm trạng thái dừng trong chính. Dưới đây là hình mô tả minh họa:

Ngoài những Tips trên các bạn có thể áp dụng thêm một số tips sau đây nữa:

  • Với trường hợp các bạn muốn sao chép toàn bộ ngăn xếp của một chuỗi bất kỳ các bạn có thể nhờ đến tùy chọn sao chép ngăn sắp xếp. Bấm chuột phải vào chuỗi trong cửa sổ gỡ lỗi sau đó chọn sao chép Stack Stack.
  • Các bạn có thể tạm dừng sau đó tiếp tục các luồng trong khi debug Java bằng chính cửa sổ gỡ lỗi. Có thể nói đây là tip hữu ích với những chương trình đa luồng.
  • Ngoài ra các bạn có thêm tính năng Step Into (F5), bạn có thể chuyển qua bước tiếp theo sau đó xem dòng hiện tại có phương thức hay không. Nếu có thì các bạn sẽ được chuyển đến dòng đầu tiên được gọi.
  • Step over (F6) hỗ trợ các bạn đi đến dòng tiếp theo. Nếu có bất kỳ lệnh gọi phương thức nào hiện diện ở dòng hiện tại, nó sẽ được thực hiện trước và điều khiển sẽ chỉ chuyển sang dòng tiếp theo.
  • Ngoài ra các bạn có thể về bước (F7), điều khiển sẽ đi đến dòng đó nơi phương thức hiện tại được gọi.

III. Kết luận

Trên đây là top 10 tips debug Java. Hy vọng với bài viết các bạn sẽ có thêm tư liệu cho việc gỡ lỗi các chương trình được viết bằng ngôn ngữ lập trình Java. Chúc các bạn có một ngày là việc vui vẻ và hiệu quả!!!