Maybe you like VSC but you don't know how to config. I have tried many different configs and find out this work best for me. I have tested it with miniblink from libopencm3 . Configuration: { "version" : "0.2.0" , "configurations" : [ { "name" : "(gdb) Launch" , "type" : "cppdbg" , "request" : "launch" , "miDebuggerPath" : "arm-none-eabi-gdb" , "targetArchitecture" : "arm" , "program" : "${workspaceFolder}/miniblink.elf" , "args" : [], "stopAtEntry" : false , "cwd" : "${workspaceRoot}" , "environment" : [], "externalConsole" : true , "MIMode" : "gdb" , "setupCommands" : [ { "text" : "target extended-remote /dev/ttyACM0" }, { "text" : "monitor tpwr ...