"Unable to start debugging. No process is associated with this object." - Visual Studio 代码中带有 GDB 和 openOCD 的 STM32F4

"Unable to start debugging. No process is associated with this object." - STM32F4 with GDB and openOCD in Visual Studio Code

Windows 10
VSCode1.28.1
VSC CPP 工具扩展 0.19.0
开发板:Multitech MTUDK2-ST
OpenOCD 0.10.0
GDB(7.12.1.20170417.git 作为 GNU ARM 工具链 6-2017-q2-update 的一部分)

正在尝试根据此进行调试 setup/example。使用 Mbed CLI (1.8.2) 编译二进制文件在命令提示符下运行良好。也可以在一个命令提示符实例中成功启动 openOCD,并通过 VS Code 终端会话中的 GDB 会话与其通信(使用 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 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 会话无法启动。无论如何,我不确定应该如何从手动启动的 GDB 会话提示中执行 OP 的 GDB 命令,因此我很难排除故障。

成功了。以前构建的内容出现在 VS Code 构建查找加载以进行调试的位置似乎是一个问题。删除整个文件夹并允许 VS Code 通过新构建重新填充它解决了 openOCD 错误。现在,即使我不删除以前构建中的内容,构建也能正常工作。不完全确定为什么会这样,但确实如此。