gcc를 사용하여 간단한 프로그램을 컴파일하고 objdump를 사용하여 섹션 헤더를 보면 .symtab
섹션이 표시되지 않습니다. 동일한 a.out
파일의 경우 readelf 섹션을 보여줍니다.readelf가 수행하는 동안 objdump가 .symtab 섹션을 표시하지 않는 이유는 무엇입니까?
[25] .symtab SYMTAB 00000000 000ca4 000480 10 26 2c 4
[26] .strtab STRTAB 00000000 001124 00025c 00 0 0 1
왜?
기본 링커 스크립트에서 .symtab
섹션의 정의를 찾지 못했습니다. I 링커 스크립트와 같은 자신에 의해 정의를 추가하는 경우 __start_sym
의 어드레스 w/B
....
PROVIDE(__start_sym)
.symtab : { *(.symtab)}
PROVIDE(__end_sym)
....
차이와 __end_sym
은 이러한 부분이 출력 파일에 추가되지 않는 것을 의미한다 제로이다.
그러나 독자는 섹션을 읽고이 섹션의 내용을 덤프 할 수 있습니다. 어떻게? 왜 ?
'objdump -x'를해도? – James
'objdump -t file'과'readelf -s file'은 같은 정보를 다른 방식으로 제공해야합니다 – ShinTakezou