使用gcc -g -S获取汇编文件,.s文件部分如下:
.L3:
.loc 1 22 11
mov eax, DWORD PTR -12[rbp]
mov edx, eax
mov rcx, QWORD PTR .refptr._ZSt4cout[rip]
call _ZNSolsEi
.loc 1 22 18
mov rdx, QWORD PTR .refptr._ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_[rip]
mov rcx, rax
call _ZNSolsEPFRSoS_E
.loc 1 23 7
mov DWORD PTR -12[rbp], 0
.loc 1 12 2
add DWORD PTR -4[rbp], 1
jmp .L6
.loc 1 22 11代表什么?
当-g
标志被添加到gcc中时,它指示编译器添加调试信息。只有当编译器生成带有-g
标志的调试信息时,.loc
才会出现:
https://sourceware.org/binutils/docs - 2.38 -/- as/loc.html # Loc