ARM semihosting
ITM, available in M3/M4/M7, output debug msgs over serial SWO / SWV (protocol)
ETM
SWD: SWCLK, SWDIO plus (optional) SWO
SWO is an optional extension of the SWD interface
RTT (Segger)
https://www.codeinsideout.com/blog/stm32/swv/
ARM
JTAG
http://openocd.sourceforge.net/doc/html/index.html#toc_OpenOCD-Project-Setup
http://hertaville.com/2012/09/16/part-3-debugging-openocd-0-6-0/
J-Link
https://gnu-mcu-eclipse.github.io/debug/jlink/install/
https://boundarydevices.com/debugging-using-segger-j-link-jtag/
OpenOCD
gdb
https://www.youtube.com/watch?v=PorfLSr3DDI
See gdb chapter in 21st Century C
https://github.com/cyrus-and/gdb-dashboard
https://news.ycombinator.com/item?id=19972435
https://interrupt.memfault.com/blog/cortex-m-breakpoints
Some interesting articles:
https://jvns.ca/blog/2014/02/10/three-steps-to-learning-gdb/
https://jvns.ca/blog/2016/08/10/how-does-gdb-work/
https://jvns.ca/blog/2018/01/04/how-does-gdb-call-functions/
gdb automated tests
- Discussion on linkedin Embedded Systems Design
https://developers.redhat.com/blog/2017/11/10/gdb-python-api/
https://answers.launchpad.net/gcc-arm-embedded/+question/256851
https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded
http://thread.gmane.org/gmane.linux.ports.ia64/22770
alternative:
http://www.isystem.com/products/software/testidea-pro
https://interrupt.memfault.com/blog/using-pypi-packages-with-GDB
https://interrupt.memfault.com/blog/automate-debugging-with-gdb-python-api