leuleuleu789
Senior Member
Cấp độ 1: lỗi tính toán của code
bạn thấy được code đưa sai giá trị nào. Vd hàm "ReturnDouble(2) mà ra kết quả là 5 thay vì 4" thì bạn biết được lỗi là ở trong định nghĩa của hàm.
Hoặc vd một đoạn code như sau:
// Convert farenheit to celcius
celcius_degrew = ... <== Điểm breakpoint bạn chạy đến đây thấy celcius_degree cho ra kq tính toán sai
Ở cấp độ này thường chỉ cần bạn dùng IDE có hỗ trợ breakpoint hoặc viết unittest tốt là có thể tái hiện lại lỗi để sửa.
Cấp độ 2: code đúng trong hầu hết trường hợp nhưng sai trong một số điều kiện đặc biệt
Vd các trường hợp input = 0 hay code bạn viết có sử dụng các biến tổng thể (non constant global variable) thì có thể bị lỗi kiểu này. Các lỗi này có thể khá khó nhằn, đặc biệt là nếu bạn viết code chạy song song. Kĩ thuật tốt nhất để debug loại này là logging thật tốt để bạn bắt đc lúc lỗi xảy ra thì các biến số đang ở giá trị nào để tái hiện lại lỗi (reproduce bug)
bạn thấy được code đưa sai giá trị nào. Vd hàm "ReturnDouble(2) mà ra kết quả là 5 thay vì 4" thì bạn biết được lỗi là ở trong định nghĩa của hàm.
Hoặc vd một đoạn code như sau:
// Convert farenheit to celcius
celcius_degrew = ... <== Điểm breakpoint bạn chạy đến đây thấy celcius_degree cho ra kq tính toán sai
Ở cấp độ này thường chỉ cần bạn dùng IDE có hỗ trợ breakpoint hoặc viết unittest tốt là có thể tái hiện lại lỗi để sửa.
Cấp độ 2: code đúng trong hầu hết trường hợp nhưng sai trong một số điều kiện đặc biệt
Vd các trường hợp input = 0 hay code bạn viết có sử dụng các biến tổng thể (non constant global variable) thì có thể bị lỗi kiểu này. Các lỗi này có thể khá khó nhằn, đặc biệt là nếu bạn viết code chạy song song. Kĩ thuật tốt nhất để debug loại này là logging thật tốt để bạn bắt đc lúc lỗi xảy ra thì các biến số đang ở giá trị nào để tái hiện lại lỗi (reproduce bug)


