it made possible some fancy debugging like this
http://www.stm32duino.com/viewtopic.php … 5&start=50
But I can’t find a build of GDB ARM for Windoes that has been compiled with that option enabled
(It may not even be possible to compile it, but I did find a blog post where I think someone had managed to compile the normal GDB for intel / win32 with the Text Gui, so it may be possible to do the same for the arm version.
one of the issue would be that ‘ncurses’ like things are quite dependent on a ‘vt100 console’ with the various control/escape characters screen positionings etc.
however, my guess is that using things like eclipse is possibly quite feasible on windows just that it is quite a bulk to install eclipse itself.
i’ve been mostly working in eclipse as i find things like code completions and reference jumps (e.g. jumping from a symbol/function to a declaration) very useful in eclipse. it saves a lot of time from doing text searches for the symbols/functions etc
it seemed there are also some 3rd party GDB Gui products for windows, various are commercial products (non-free)
http://www.ultragdb.com/
http://www.wingdb.com/wgFeatures.htm
https://visualgdb.com/
apparently there are various available ‘frontends’ for GDB(server) some of them are IDEs, this includes some interesting ones like eclipse / netbeans among them
https://sourceware.org/gdb/wiki/GDB%20Front%20Ends
https://codelite.org/
some of them run on windows
http://www.stm32duino.com/viewtopic.php?f=35&t=113#p837
http://www.stm32duino.com/viewtopic.php?f=35&t=342
at one point i had both text and gui gdb debugging integrated as a menu item, but i didn’t keep up with the rapidly changing platform.txt/board.txt we had in the early days. No one seemed to care about commandline gdb (which is how i use it) and i dont think anyone followed up with the standalone eclipse gui gdb debugger option.
When i want to debug now I just cd to the tmp directory and just launch arm-none-eabi-gdb by hand. If you use a black magic probe that is all you need.
Re:GDB
The Text GUI was something I had not seen before. i.e half way between the command prompt and a GUI
A few options I’ve probably never mentioned are emacs and netbeans.
Emacs has a gdb mode that is nice and provides a line by line source code stepping feature. However, it is only useful if you are willing to learn emacs.
I never tried the stm32 with netbeans. However, I did make it work with an msp430 without too much fuss. If it works with the msp430 tools, it will easily use the arm tools. To get it to work with stm32 would just involve changing the path names in the configuration dialog to the proper arm-none-eabi-* exes.
I did also look at a commercial GDB front-end
for Windows ( I did post about it, but the name of the product now alludes me.But it was over $100 and didnt seems to work that well.)
So GDB on the command line, unfortunately, still seems to be the best option.
- Live variables mechanism to see variable values just by hovering over them
- SVD support as defined by ARM to see symbolic names for all peripheral registers and their bit fields. Write protection prevents updating registers and bit fields that are read only. For development of low level functionality, this has been very valuable for me.
- EB monitor allows to have print statements without any impact to the running program. This uses the debugging technology defined by ARM and is a replacement of the classic semihosting technology.
- RTOS support using plugins for different OS environments to allow task level debugging.
For some users, it is a sad fact that EmBitz is not available on Mac or Linux.
platform.txt change:
...
tools.bmp_upload.upload.pattern=xterm -e "{path}{cmd}" -cd "{build.path}" -tui -b {upload.speed} {upload.verbose} -ex "set debug remote 0" -ex "set target-async off" -ex "set remotetimeout 60" -ex "set mem inaccessible-by-default off" -ex "set confirm off" -ex "set height 0" -ex "target extended-remote {serial.port}" -ex "monitor swdp_scan" -ex "attach 1" -ex "x/wx 0x8000004" -ex "monitor erase_mass" -ex "x/wx 0x8000004" -ex "file {build.project_name}.elf" -ex "load" -ex "x/wx 0x08000004" -ex "tbreak start_c" -ex "run"
...


