zhouzou
zhouzou

Reputation: 11

Gcc -g What happens?

The assembly file is obtained by using gcc -g -S, and the part of .s file is as follows:

.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

What does .loc 1 22 11 stand for?

Upvotes: 1

Views: 70

Answers (1)

gerrit_noob
gerrit_noob

Reputation: 21

When the -g flag is added to gcc it directs the compiler to add debugging information. .loc appears only when the compiler generates debugging information with -g flag:

https://sourceware.org/binutils/docs-2.38/as/Loc.html#Loc

Upvotes: 1

Related Questions