Adding the the last part of my previous message:
When I issue GDB the 'continue' command, nothing is output on the console.
As an additional effort to work around the potential issue, I instrument 'runtime_init_c' (called by 'sprt_main') to have the code spin indefinitely waiting for a volatile unsigned int variable 'gdbSpinHere' varaiable to be changed from the default value of 0xffffffff to 0x0. Using a new debug session, when I issue GDB 'target remote localhost:3333', GDB connects to the PyOCD GDBServer. The backtrace shows 'runtime_init_c' is on the top of the stack. This is as expected.
Next I update 'gdbSpinHere' to set it to 0x0, then issue GDB with the 'next' command to step to the next line of code, and this seems to behave as expected. So I put a break point at 'aes_crypt_cbc_wrap', which I expect to be hit, then issue 'continue'. The breakpoint is hit.
Now if I issue either step/next, the same breakpoint is hit. If I put a breakpoint at a function that should be hit, it is not. If I delete the breakpoints and issue 'continue', the same breakpoint is hit.
This is an unexpected behavior. Has anyone seen a correct behavior? Should this be any different if I use the ULINKPLUS probe?
Sine I have not used ULINKPLUS/ULINKPRO, is GDB server/GDB known to work? Does PyOCD work? If not is there an OpenOCD config file anyone can share?