title: What are .LFB .LBB .LBE .LVL .loc in the compiler generated assembly code
body: <p>When I look into the assembly code generated by GCC, there are many lines begining with <code>.LBB</code> and a number. It seems to that they are not instructions of operations. More like marking something of the file or what. </p>
  
  <p><strong>What are <code>.LFB</code>, .<code>LVL</code>, <code>LBB</code>, <code>LBE</code> etc are in the compiler generated assembly code?</strong>
  Does the .loc means "line of code". Do those lines just indicate <code>symbol table</code>?</p>
  
  <p>Here is a piece of code,</p>
  
  <pre><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
  </code></pre>