"Невозможно начать отладку. С этим объектом не связано ни одного процесса."- STM32F4 с GDB и openOCD в коде Visual Studio - PullRequest
0 голосов
/ 14 октября 2018

Windows 10
VSCode 1.28.1
Расширение VSC CPP Tools 0.19.0
Макетная плата: Multitech MTUDK2-ST
OpenOCD 0.10.0
GDB (7.12.1.20170417.git asчасть GNU ARM toolchain 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, поэтому мне сложно устранить неполадки.

1 Ответ

0 голосов
/ 16 октября 2018

Получил это работает.Кажется, это была проблема с содержимым из предыдущих сборок, присутствующим в расположении, которое сборка VS Code ищет для отладки.Удаление всей папки и разрешение ее повторному заполнению кодом VS в новой сборке позволило устранить ошибку openOCD.И теперь сборка работает, даже если я не удаляю содержимое из предыдущих сборок.Не совсем уверен, почему это сработало, но это сработало.

...