I disabled the ISR and set a definite breakpoint in the main program loop. The debugging session runs, but doesn't pause at the breakpoint. The only options in the debug menu are to end the session. I get the following debug output:
openocd: Open On-Chip Debugger 0.10.0+dev-01058-g853a05287 (2020-02-13-16:41)
openocd: Licensed under GNU GPL v2
openocd: For bug reports, read
openocd:
http://openocd.org/doc/doxygen/bugs.html openocd: debug_level: 2
openocd:
=thread-group-added,id="i1"
GNU gdb (GNU Tools for Arm Embedded Processors 7-2017-q4-major) 8.0.50.20171128-git
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <
http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "--host=i686-w64-mingw32 --target=arm-none-eabi".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<
http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<
http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word".
=cmd-param-changed,param="pagination",value="off"
0x0000059c in ?? ()
Warning: Exceptions are not supported in this scenario.
Note: automatically using hardware breakpoints for read-only addresses.
Breakpoint 1, main () at \arduino\main.cpp:42
42 delay(1);
I took at look at main.cpp, and see the following:
/*
* \brief Main entry point of Arduino application
*/
int main(void) {
// - - - - - - - - - - - - - - - - - - - - - -
// Perform C++ initializations before sketch
// - - - - - - - - - - - - - - - - - - - - - -
delay(1);
// Start sketch "setup"
setup();
for (;
{
// sketch "loop"
loop();
if (serialEventRun) {
serialEventRun();
}
}
return 0;
}
I tried attaching to the process again, leaving main.cpp open, in the hope that debug execution halted at delay(1), but nothing happens. The only option is to halt the session.