Was sind .LFB .LBB .LBE .LVL .Loc im vom Compiler generierten Assembly-Code?

Wenn ich mir den von GCC generierten Assembler-Code ansehe, beginnen viele Zeilen mit.LBB und eine Nummer. Es scheint, dass sie keine Anweisungen für Operationen sind. Eher wie etwas aus der Datei markieren oder was.

Was sind.LFB,.LVL, LBB, LBE usw. Sind im Compiler Assembler-Code generiert? Bedeutet die .loc "Codezeile"? Zeigen diese Zeilen nur ansymbol table?

Hier ist ein Stück Code,

main:
.LFB1:
  .loc 1 8 0
  .cfi_startproc
.LVL2:
.LBB4:
.LBB5:
  .loc 1 2 0
  movsd b(%rip), %xmm0
.LBE5:
.LBE4:
  .loc 1 10 0
  xorl  %eax, %eax
.LBB7:
.LBB6:
  .loc 1 2 0
  mulsd a(%rip), %xmm0
.LBE6:
.LBE7:
  .loc 1 9 0
  movsd %xmm0, a(%rip)
.LVL3:
  .loc 1 10 0
  ret
  .cfi_endproc

Antworten auf die Frage(2)

Ihre Antwort auf die Frage