Windows 10
VSCode 1.28.1
VSC CPP Tools Extension 0.19.0
Макетная плата: Multitech MTUDK2-ST
OpenOCD 0.10.0
GDB (7.12.1.20170417.git как часть инструментария GNU ARM 6-2017-q2-update)
Попытка отладки по этому установка / пример. Компиляция двоичного файла с помощью Mbed CLI (1.8.2) работает из командной строки. Также может успешно запускать openOCD в одном экземпляре командной строки и связываться с ним через сеанс GDB в терминальном сеансе кода VS (запускается с arm-none-eabi-gdb).
Запуск сеанса отладки приводит к следующему выводу на консоли отладки VSC:
1: (628) LaunchOptions<LocalLaunchOptions xmlns='http://schemas.microsoft.com/vstudio/MDDDebuggerOptions/2014'
1: (667) LaunchOptions ExePath='Z:\VoboNode_vsc_nucleo_f411RE\VoBoNode\BUILD\MTS_MDOT_F411RE\GCC_ARM-DEBUG\VoBoNode.elf'
1: (667) LaunchOptions WorkingDirectory='Z:\VoboNode_vsc_nucleo_f411RE\VoBoNode'
1: (667) LaunchOptions ExeArguments=''
1: (667) LaunchOptions MIMode='gdb'
1: (667) LaunchOptions MIDebuggerPath='C:\Program Files (x86)\GNU Tools ARM Embedded\6 2017-q2-update\bin\arm-none-eabi-gdb.exe'
1: (667) LaunchOptions WaitDynamicLibLoad='false'
1: (667) LaunchOptions DebugServer='C:\OpenOCD\openocd-0.10.0\bin\openocd.exe'
1: (667) LaunchOptions DebugServerArgs='-f C:\OpenOCD\openocd-0.10.0\scripts\board\st_nucleo_f4.cfg -f C:\OpenOCD\openocd-0.10.0\scripts\interface\stlink-v2-1.cfg -c init -c "reset init"'
1: (667) LaunchOptions ServerStarted='target halted due to debug-request, current mode: Thread'
1: (667) LaunchOptions FilterStderr='true'
1: (667) LaunchOptions ServerLaunchTimeout='20000'
1: (667) LaunchOptions>
1: (667) LaunchOptions <SetupCommands>
1: (668) LaunchOptions <Command IgnoreFailures='false' Description=''>-environment-cd Z:\VoboNode_vsc_nucleo_f411RE\VoBoNode\BUILD\MTS_MDOT_F411RE\GCC_ARM\</Command>
1: (668) LaunchOptions <Command IgnoreFailures='false' Description='connect to target'>-target-select remote localhost:3333</Command>
1: (668) LaunchOptions <Command IgnoreFailures='false' Description='load file'>-file-exec-and-symbols VoBoNode.elf</Command>
1: (668) LaunchOptions <Command IgnoreFailures='false' Description=''>-interpreter-exec console "monitor endian little"</Command>
1: (668) LaunchOptions <Command IgnoreFailures='false' Description=''>-interpreter-exec console "monitor reset"</Command>
1: (668) LaunchOptions <Command IgnoreFailures='false' Description=''>-interpreter-exec console "monitor halt"</Command>
1: (668) LaunchOptions <Command IgnoreFailures='false' Description=''>-interpreter-exec console "monitor arm semihosting enable"</Command>
1: (668) LaunchOptions <Command IgnoreFailures='false' Description='flash target'>-target-download</Command>
1: (668) LaunchOptions </SetupCommands>
1: (668) LaunchOptions</LocalLaunchOptions>
1: (806) Starting: "C:\OpenOCD\openocd-0.10.0\bin\openocd.exe" -f C:\OpenOCD\openocd-0.10.0\scripts\board\st_nucleo_f4.cfg -f C:\OpenOCD\openocd-0.10.0\scripts\interface\stlink-v2-1.cfg -c init -c "reset init"
1: (1007) "C:\OpenOCD\openocd-0.10.0\bin\openocd.exe" exited with code 1 (0x1).
1: (1023) <-logout
Обратите внимание, что использование точной командной строки, показанной после «Starting:» (строка 806) для ручного запуска openOCD, работает нормально. Я подозреваю, что есть проблема с командами SetupCommands (несколько строк 668), которая препятствует запуску сеанса OpenOCD. Несмотря на это, я не совсем уверен, каким образом команды OP GDB должны выполняться из запускаемого вручную сеанса GDB, поэтому мне трудно устранить неполадки.
Получил это работает. Кажется, это была проблема с содержимым из предыдущих сборок, присутствующим в расположении, которое сборка VS Code ищет для отладки. Удаление всей папки и разрешение ее повторному заполнению кодом VS в новой сборке исправило ошибку openOCD. И теперь сборка работает, даже если я не удаляю содержимое из предыдущих сборок. Не совсем уверен, почему это сработало, но это сработало.
Других решений пока нет …