Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Khám phá cờ GCC -g: Lợi ích, trường hợp sử dụng và ví dụ thực tế

Khám phá cờ GCC -g: Lợi ích, trường hợp sử dụng và ví dụ thực tế

GCC hữu ích khi biên dịch mã nguồn. Có nhiều cờ (flag) khi dùng GCC, trong đó cờ -g dùng để tạo thông tin gỡ lỗi (debug). Cú pháp: gcc -g -o output-file input-program. Cờ này giúp developer dễ dàng hiểu và debug code.

Lợi ích của cờ GCC -g

1. Tạo Stack Trace

Stack trace báo cáo các khung stack hoạt động khi chương trình chạy. Khi chương trình crash, stack trace chỉ ra điểm code bị lỗi, trình tự sự kiện dẫn đến lỗi, giúp xác định và sửa nhanh.

2. Kiểm tra biến (Variable Inspection)

Thông tin debug cho phép xem giá trị biến tại runtime, hiểu trạng thái chương trình trước khi lỗi xảy ra tại các điểm khác nhau.

3. Thông tin ký hiệu (Symbolic Information)

Cờ -g thêm thông tin ký hiệu liên kết mã nguồn với file nhị phân: số dòng, tên biến. Dễ dàng ánh xạ thực thi chương trình về mã gốc để phân tích, debug.

4. Điểm dừng có điều kiện (Conditional Breakpoints)

GDB dùng thông tin debug từ -g để tạo breakpoint tạm thời. Developer định nghĩa điều kiện dừng chương trình, dễ dàng kiểm tra đoạn code gây lỗi thay vì xem toàn bộ.

Ví dụ thực tế

File nguồn linuxhint.c. Biên dịch với -g:

gcc -g -o demo1 linuxhint.c

Khám phá cờ GCC -g: Lợi ích, trường hợp sử dụng và ví dụ thực tế

File nhị phân demo1 chứa thông tin debug. Chạy GDB:

Khám phá cờ GCC -g: Lợi ích, trường hợp sử dụng và ví dụ thực tế

Trong GDB, đặt breakpoint tại dòng 15, chạy chương trình, kiểm tra giá trị biến:

Khám phá cờ GCC -g: Lợi ích, trường hợp sử dụng và ví dụ thực tế

Nhờ cờ -g, ta dễ dàng làm việc với debugger và thông tin debug cụ thể.

Kết luận

Cờ GCC -g sinh thông tin debug giúp phân tích và sửa lỗi chương trình. Bài viết trình bày lợi ích và ví dụ sử dụng với GDB.

Tác giả

Khám phá cờ GCC -g: Lợi ích, trường hợp sử dụng và ví dụ thực tế

Denis Kariuki

Khoa học máy tính, đam mê Networking và Cyber Security. Yêu thích terminal và Linux.