title: How does debugger match my code and pure assemby code?
body: <p>How I understand Visual Studio debugger use PDB files whiсh provide information on what assembler instructions need to put a breakpoint, for example:</p>
  
  <p><a href="https://i.stack.imgur.com/zPjgA.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/zPjgA.png" alt="enter image description here"></a></p>
  
  <p>I also know, that PDB files are generated by Roslyn compiler and provide mapping c# code to IL code, but at runtime, debugger works with assembly code, not CIL. </p>
  
  <p>How does debugger map asm to IL or does it work differently?</p>