title: SIGTRAP despite no set breakpoints; hidden hardware breakpoint?
body: <p>I am debugging this piece of software for an STM32 embedded system. In one of the functions my programs keeps hitting some sort of breakpoint:</p>
  
  <blockquote>
    <p>SIGTRAP, Trace/breakpoint trap</p>
  </blockquote>
  
  <p>However, in GDB, when I do <code>info breakpoints</code> I get <code>No breakpoints or watchpoints</code>. The breakpoint actually corresponds to a breakpoint I had set quite some time ago, in another version of the executable. When I set that breakpoint, GDB told me <code>automatically using a hardware breakpoint on read-only memory</code> (or a similar message).</p>
  
  <p>I think the hardware breakpoint remains on my chip, despite having loaded a new version of the software. If there is indeed a spurious breakpoint, how can I locate and remove it?</p>