Qst(0x 10001048, 0x 10001074, 0x 400b20,0x4) [“qsort.c”:147]

Một phần của tài liệu LẬP TRÌNH PHÒNG THỦ (Trang 30)

Xem các vết (stack trace)

Thường người gỡ rối có thể thực hiê ăn CT, 1 cách chung nhất là

kiểm tra trạng thái CT khi bị lỗi. TD như số hiê ău dòng mã nguồn cũng là 1 phần của chồng vết. Xét VD sau:

int arr[N];

qsort (arr, N, sizeof(arr[0],icmp)

Do sự bất cẩn, người lâăp trình gõ scmp thay vì icmp.=> Đương nhiên là ct dịch không thể phát hiê ăn lỗi này và khi thực hiêăn ct đó, lỗi sẽ xảy ra và tạo nên 1 chồng vết:

0. strcmp(0x1a2,0x1c2)[“strcmp, s”:31

1. scmp (p1=0x10001048,p2=0x1000105c)[badqs.c”:13]

2. qst(0x 10001048, 0x 10001074,0 x 400b20,0x4) [“qsort.c”:147]…. ….

Các phương pháp gỡ rối

Gỡ rối ngay khi gặp

Khi phát hiện lỗi, hãy sửa ngay, đừng để sau mới

sửa, vì có thể lỗi không xuất hiện lại ( do tình huống…)

Cũng đừng quá vội vàng, không suy nghĩ chín

chắn, kỹ càng, vì có thể việc sửa chữa này ảnh hưởng tới các tình huống khác

Các phương pháp gỡ rối

Đọc trước khi gõ vào

Đừng vội vàng, khi không rõ điều gì thực sự gây

ra lỗi và sửa không đúng chỗ sẽ có nguy cơ gây ra lỗi khác

Có thể viết đoạn code gây lỗi ra giấy=> tạo cách

nhìn khác, và tạo cơ hội để nghĩ suy

Đừng miên man chép cả đoạn không có nguy cơ

gây lỗi, hoặc in toàn bộ code ra giấy in => phá vỡ cây cấu trúc

Các phương pháp gỡ rối

Giải thích cho người khác về đoạn code

Tạo đk để ngẫm nghĩ

Thậm chí có thể giải thích cho người không phải

LTV

Extrem programming : làm việc theo cặp, pair

programming, người này LT, người kia kiểm tra, và ngược lại

Khi gặp vấn đề, khó khăn, chậm tiến độ, lập tức thay

đổi công việc => rút ra khỏi luồng quán tính sai lâm

Một phần của tài liệu LẬP TRÌNH PHÒNG THỦ (Trang 30)