tl; dr: Để trả lời câu hỏi cụ thể của bạn, -g3
"bao gồm thông tin bổ sung như định nghĩa vĩ mô Một số bộ dò lỗi hỗ trợ mở rộng vĩ mô khi bạn sử dụng -g3
.", Trong khi -g
không.
Câu trả lời rộng hơn là gcc hỗ trợ bốn cấp độ thông tin gỡ lỗi, từ -g0
(thông tin gỡ lỗi bị vô hiệu hóa) thông qua -g3
(thông tin gỡ lỗi tối đa).
Chỉ định -g
tương đương với -g2
. Thật kỳ lạ, các gcc docs nói ít về những thông tin -g
/-g2
bao gồm hoặc loại trừ.
Yêu cầu thông tin gỡ lỗi và cũng sử dụng cấp để chỉ định lượng thông tin. Mức mặc định là 2. Mức 0 không tạo ra thông tin gỡ lỗi nào cả. Do đó, -g0 phủ nhận -g.
Cấp 1 tạo ra thông tin tối thiểu, đủ để tạo backtrac trong các phần của chương trình mà bạn không định gỡ lỗi. Điều này bao gồm các mô tả về các hàm và các biến bên ngoài, và các bảng số dòng, nhưng không có thông tin về các biến cục bộ.
Cấp 3 bao gồm thông tin bổ sung, chẳng hạn như tất cả các định nghĩa macro có trong chương trình. Một số trình gỡ rối hỗ trợ mở rộng macro khi bạn sử dụng -g3.
Bạn muốn biết điều gì không nằm trong tài liệu này? –
Tôi đến đây vì tôi đang sử dụng makefile của người khác và tài liệu là một con thú để bắt đầu. Câu hỏi hay để có trên StackOverflow để tìm câu trả lời dễ dàng từ google. – GreenAsJade