Dou*_*oub 8 gdb openocd visual-studio-code
我正在开发Cortex-M3微控制器(STM32系列)上的应用程序.我正在尝试使用Visual Studio Code作为调试器接口,使用ST-Link v2 JTAG探针.我设法配置OpenOCD与我的设备通信,VSCode运行本地GDB并连接到OpenOCD.
现在我想在开始调试时让VSCode与GDB同时启动OpenOCD.我有以下launch.json:
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Pipe Launch",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/path/to/program.elf",
"stopAtEntry": false,
"cwd": "${workspaceFolder}/gcc-arm-none-eabi",
"environment": [],
"externalConsole": true,
"pipeTransport": {
"pipeProgram": "X:\\path\\to\\openocd-0.10.0\\bin-x64\\openocd.exe",
"pipeArgs": ["-f", "vscode.ocd"],
"pipeCwd": "${workspaceFolder}"
},
"MIMode": "gdb"
},
{
"name": "(gdb) Attach",
"type": "cppdbg",
"request": "launch",
"cwd": "${workspaceFolder}/gcc-arm-none-eabi",
"program": "${workspaceFolder}/path/to/program.elf",
"MIMode": "gdb",
"targetArchitecture": "arm",
"miDebuggerPath": "X:\\path\\to\\gcc-arm-none-eabi-4_8-2014q2-20140609-win32\\bin\\arm-none-eabi-gdb.exe",
"miDebuggerServerAddress": "127.0.0.1:3333"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的vscode.ocd文件如下:
source [find interface/stlink-v2.cfg]
transport select "hla_swd"
source stm32l1.cfg
stm32l1.cpu configure -event gdb-attach halt
stm32l1.cpu configure -event gdb-detach resume
gdb_port pipe
log_output openocd.log
Run Code Online (Sandbox Code Playgroud)
当我手动启动OpenOCD(没有"gdb_port管道")然后运行配置"(gdb)Attach"时,一切都很好.
但是,当我运行"(gdb)管道启动"配置时,VSCode启动openocd.exe,然后没有任何反应.当我杀死openocd.exe进程时,我在VSCode中弹出一个"无法启动调试.无法建立与GDB的连接.以下消息写入stderr:"后跟一些OpenOCD stderr.
我也可以在命令行中使用以下.gdbinit自行运行GDB:
target remote | openocd -f path/tovscode.ocd
sym path/to/program.elf
Run Code Online (Sandbox Code Playgroud)
所以我的问题是有没有办法让VSCode直接与OpenOCD的GDB服务器通话?否则,如果我需要使用一些本地arm-none-eabi-gdb.exe文件,我如何配置VSCode让它告诉GDB使用远程管道("target remote | something")?
| 归档时间: |
|
| 查看次数: |
2405 次 |
| 最近记录: |