title: How does debugger know function names?
body: <p>When I debug any program with debugger (for example OllyDbg), in disassembled assembly code, I can see function names, for example:</p>
  
  <pre><code>push 0
  call msvcrt.exit
  </code></pre>
  
  <p>How does the debugger know the function names? Where do they come from? In machine code, it is represented as <code>call address</code>. So how debugger knows it?</p>