Một Trải Nghiệm Gỡ Lỗi Trên Windows - nói dối e blog

Một Trải Nghiệm Gỡ Lỗi Trên Windows

Sáng nay khi chạy thử một chương trình nhỏ tôi viết đêm qua, hệ thống bất ngờ không thực thi được mà không có bất kỳ cảnh báo nào. Khi dùng gdb (phiên bản 6.3) để debug, chương trình lặng lẽ thoát ngay lập tức mà không kịp vào hàm main. Dù đã thử comment bớt gần như toàn bộ mã nguồn, vấn đề vẫn không được giải quyết.

Tình cờ nâng cấp gdb lên phiên bản 6.8, tôi bất ngờ phát hiện một ngoại lệ lạ được ghi nhận. Sau khi tiếp tục loại bỏ hoàn toàn các đoạn code nghi ngờ, chương trình bỗng hoạt động bình thường. Phân tích kỹ lại, tôi nhận ra phần code bị comment trước đó có chứa các tham chiếu gián tiếp đến thư viện Lua. Điều này dẫn đến việc chương trình khi chạy sẽ cố gắng tải tệp tin DLL của Lua nhưng không thành công.

Vấn đề nhanh chóng được khắc phục khi tôi thêm thư mục chứa các tệp tin DLL của Lua vào biến môi trường PATH. Điều khiến tôi bối rối là hệ thống không hiển thị cửa sổ thông báo thiếu DLL như thường lệ. Sau khi kiểm tra kỹ hơn, tôi phát hiện ra mình đã chạy chương trình trực tiếp từ trình soạn thảo mã nguồn thay vì thông qua Command Prompt thông thường. Có vẻ như phần mềm này đã “nuốt chửng” cảnh báo hệ thống bằng cách nào đó - một hiện tượng tương tự như bạn cùng lớp Soloist từng gặp phải khi dùng Total Commander.

Với trải nghiệm này, tôi xin dành nửa giờ vật lộn đầy quý giá này để tưởng niệm và ghi nhớ bài học quan trọng: Luôn kiểm tra kỹ các phụ thuộc thư viện động trước khi bắt đầu debug.

0%