1
나는 .text와 .fini 데이터 세그먼트 사이에 빈 공간이 있습니까?
12 .text 00000172 0000000000400400 0000000000400400 00000400 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
13 .fini 00000009 0000000000400574 0000000000400574 00000574 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
나는 여기에 빠른 질문이 간단한 C 프로그램 (
gcc -o file file.cpp
)를 컴파일하고
objdump -h file
을 실행에 다음과 같은 출력을 얻을.
.text
섹션 이후에 왜 2 바이트의 간격이 있습니까? 0x400400 + 0x172 = 0x400572
, 그러나 .fini
구역은 0x400574
에서 시작됩니까? 이것은 정렬과 관련이 있습니까? 나는 다른 섹션들 사이에서도 비슷한 틈을 발견했다.
아마 정렬. 그런데 왜 묻지? 호기심? 아니면이 문제로 이어질 또 다른 문제가 있습니까? –
가상 주소 공간 – martianwars
에서'.text' 세그먼트의 범위를 식별하는 방법을 찾으려고 할 때 아마 링커 스크립트에서 다음과 같은 것을 발견하게 될 것입니다 :'. = 정렬 (4); –