使用GDB与VS Code远程调试时共享库断点无法绑定
远程调试共享库断点无法绑定问题
环境配置
- 开发环境:Ubuntu系统笔记本电脑 + VS Code
- 目标设备:树莓派(Raspberry Pi)
- 调试器:树莓派运行
gdbserver,笔记本使用GDB Multiarch - 项目结构:
- 主可执行文件:
${workspaceRoot}/build/rpi/usr/bin/my-executable - 共享库路径:
${workspaceRoot}/build-output/lib
- 主可执行文件:
调试配置
{ "version": "0.2.0", "configurations": [ { "type": "cppdbg", "request": "launch", "name": "Attach to gdbserver", "program": "${workspaceRoot}/build/rpi/usr/bin/my-executable", "miDebuggerServerAddress": "192.168.1.100:1234", "cwd": "${workspaceRoot}", "miDebuggerPath": "/usr/bin/gdb-multiarch", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Load shared library symbols", "text": "set solib-search-path /home/user/projects/my-project/lib" } ], "externalConsole": true, "MIMode": "gdb", "additionalSOLibSearchPath": "${workspaceRoot}/build-output/lib", "miDebuggerArgs": "${workspaceRoot}/build-output/lib", "logging": { "engineLogging": true, "trace": true, "traceResponse": true } } ] }
问题详情
已通过-g参数编译共享库生成调试符号,且设置了solib-search-path,但共享库中的断点仍无法绑定。主可执行文件内的断点可正常工作,共享库内的断点直接被忽略。
已采取的排查步骤
- 确认所有共享库均使用
-g参数编译,包含完整调试符号 - 在
setupCommands中添加set solib-search-path /home/user/projects/my-project/lib配置符号搜索路径 - 设置
additionalSOLibSearchPath为${workspaceRoot}/build-output/lib - 在
miDebuggerArgs中添加共享库路径参数
内容的提问来源于stack exchange,提问作者Elias Nowak
相关产品推荐
相关产品推荐

