Câu trả lời:
@PSkocik đã trả lời điều này. Tôi chỉ muốn thêm chi tiết. Có hai loại phần ký hiệu trong ELF: .symtab
và .dynsym
(xem Thông số kỹ thuật lõi cơ sở tiêu chuẩn Linux, còn gọi là LSB_5.0.0 , để biết chi tiết). .symtab
là cho bước liên kết của chính lib được chia sẻ. Sau khi liên kết xong, .symtab
phần không còn cần thiết nữa. Phần .dynsym
này chứa các ký hiệu quan trọng được cho là được tìm kiếm bởi trình liên kết động khi chạy. nm
theo mặc định chỉ bỏ các ký hiệu trong .symtab
phần.
LSB_5.0.0 Mục 10.2.2.1, Kiểu ELF Phần EL, cho biết một lib chia sẻ phù hợp nên có .symtab
hoặc .dynsym
không có cả hai. Là một phần của thư viện ABI, libc bị loại ra khỏi tiêu .symtab
chuẩn tuân thủ.
Tìm hiểu xem nó là một đối tượng được chia sẻ, hoặc, một tệp ASCII thông thường. Nếu đó là một đối tượng được chia sẻ, bạn sẽ thấy "Đối tượng chia sẻ LSB 32 bit ELF"
file /lib/i386-linux-gnu/libc.so.6
libc.so.6
đang rụng trứng một đối tượng chia sẻ.