Я проверял двоичный файл ELF на наличие кода, упомянутого ниже. Я скомпилировал его на gcc 7.4.0 в системе Ubuntu x86_64 в Virtual Box как:
gcc -g scratch1.c -o scratch1.out
#include <stdio.h>
void do_stuff(int my_arg){
int my_local = my_arg + 2;
int i;
for (i = 0; i < my_local; ++i) printf("i = %d\n", i);
}
int main(){
do_stuff(2);
return 0;
}
Однако, когда я попытался обратиться к разделу .debug_loc, он был пустым.
objdump --dwarf=loc scratch1.out
scratch1.out: file format elf64-x86-64
Хотя я вижу некоторые другие разделы debug_
[26] .debug_aranges PROGBITS 0000000000000000 0000103b
0000000000000030 0000000000000000 0 0 1
[27] .debug_info PROGBITS 0000000000000000 0000106b
000000000000035f 0000000000000000 0 0 1
[28] .debug_abbrev PROGBITS 0000000000000000 000013ca
0000000000000125 0000000000000000 0 0 1
[29] .debug_line PROGBITS 0000000000000000 000014ef
00000000000000e6 0000000000000000 0 0 1
[30] .debug_str PROGBITS 0000000000000000 000015d5
00000000000002b5 0000000000000001 MS 0 0 1
Нужна ваша помощь, почему этот раздел отсутствует.