title: How are debugger breakpoints implemented efficiently?
body: <p>Sometimes I accumulate a large mass of breakpoints from different debugging sessions in different places in my code.  How does the debugger efficiently know when to stop for a breakpoint?  It can't possibly be stopping at every single line to check the line number and source file name against a potentially long list of breakpoints, can it?</p>
  
  <p>This is the Java debugger in Eclipse, but I presume the question applies to any debugger.</p>