По определению сегмент bss занимает какое-то место в памяти (когда программа запускается), но не требует никакого дискового пространства. Вам нужно определить некоторую переменную, чтобы заполнить ее, поэтому попробуйте
int bigvar_in_bss[16300];
int var_in_data[5] = {1,2,3,4,5};
. Ваша простая программа может не иметь никаких данных в .bss
, а общие библиотеки (например, libc.so
) могут иметь свои собственные .bss
"
Смещение файлов и адреса памяти нелегко связаны.
Подробнее о спецификации ELF , также используйте /proc/
(например, cat /proc/self/maps
будет отображать адресное пространство процесса cat
, выполняющего эту команду). Читайте также proc (5)