r--p
indica um segmento que é somente leitura e não é executável. Com um executável ELF típico, isso contém algumas informações do vinculador. Você pode executar objdump -D a.out
ou readelf -a a.out
para ter uma ideia do que está nesse segmento. Por exemplo, readelf -a /bin/sleep
on x86_64 no Debian Linux mostra as seguintes seções nesse segmento:
[18] .init_array INIT_ARRAY 0000000000606e10 00006e10
0000000000000008 0000000000000000 WA 0 0 8
[19] .fini_array FINI_ARRAY 0000000000606e18 00006e18
0000000000000008 0000000000000000 WA 0 0 8
[20] .jcr PROGBITS 0000000000606e20 00006e20
0000000000000008 0000000000000000 WA 0 0 8
[21] .dynamic DYNAMIC 0000000000606e28 00006e28
00000000000001d0 0000000000000010 WA 6 0 8
[22] .got PROGBITS 0000000000606ff8 00006ff8
0000000000000008 0000000000000008 WA 0 0 8
A LSB documenta estas seções.