The cortexM3 - and perhaps other targets - have a problem.

When GDB exits/disconnects/reconnects - these two functions get called:

    /* we must remove all breakpoints registered to the target as a previous
     * GDB session could leave dangling breakpoints if e.g. communication
     * timed out.
     */
    breakpoint_clear_target(gdb_service->target);
    watchpoint_clear_target(gdb_service->target);

REFERENCE:  gdb_server.c - line 760 (or so)

However, if the target is not HALTED..
   The breakpoints are *NOT* removed.

Example:
    @ arm7_9_unset_watchpoint()
    @ cortex_m3_remove_breakpoint()
    @ mips_m4k_remove_breakpoint()

Perhaps - things went bad and you had to *reset* the target, or 
something - but did not *exit* openocd and *resetart* openocd - or other 
reasons.

Slowly target resources are consumed/leaked - specifically hardware 
compare registers.

Suggestions?

At some point, the only solution is to "bounce/reset/restart" openocd.

-Duane.



   


_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to