联合调试(arm:gdbserver-x64:gdb)
目录
联合调试(arm:gdbserver-x64:gdb)
准备工作
超级终端
minicom(命令行)

SecureCRT(图形界面)

串口通信

注意:windows 需安装串口驱动
交叉工具链
下载已编译文件

选择对应版本

目标体系结构-目标操作系统-目标二进制接口

日期 - 主机体系结构-目标体系结构-目标操作系统-目标二进制接口
├── arm-linux-gnueabi
│ ├── bin
│ ├── include
│ ├── lib
│ └── libc
├── bin
│ ├── arm-linux-gnueabi-addr2line
│ ├── arm-linux-gnueabi-ar
│ ├── arm-linux-gnueabi-as
│ ├── arm-linux-gnueabi-c++
│ ├── arm-linux-gnueabi-c++filt
│ ├── arm-linux-gnueabi-cpp
│ ├── arm-linux-gnueabi-dwp
│ ├── arm-linux-gnueabi-elfedit
│ ├── arm-linux-gnueabi-g++
│ ├── arm-linux-gnueabi-gcc
│ ├── arm-linux-gnueabi-gcc-7.5.0
│ ├── arm-linux-gnueabi-gcc-ar
│ ├── arm-linux-gnueabi-gcc-nm
│ ├── arm-linux-gnueabi-gcc-ranlib
│ ├── arm-linux-gnueabi-gcov
│ ├── arm-linux-gnueabi-gcov-dump
│ ├── arm-linux-gnueabi-gcov-tool
│ ├── arm-linux-gnueabi-gdb
│ ├── arm-linux-gnueabi-gdb-add-index
│ ├── arm-linux-gnueabi-gfortran
│ ├── arm-linux-gnueabi-gprof
│ ├── arm-linux-gnueabi-ld
│ ├── arm-linux-gnueabi-ld.bfd
│ ├── arm-linux-gnueabi-ld.gold
│ ├── arm-linux-gnueabi-nm
│ ├── arm-linux-gnueabi-objcopy
│ ├── arm-linux-gnueabi-objdump
│ ├── arm-linux-gnueabi-ranlib
│ ├── arm-linux-gnueabi-readelf
│ ├── arm-linux-gnueabi-size
│ ├── arm-linux-gnueabi-strings
│ └── arm-linux-gnueabi-strip
├── gcc-linaro-7.5.0-2019.12-linux-manifest.txt
├── include
│ ├── gdb
│ ├── gmp.h
│ ├── gmpxx.h
│ ├── mpc.h
│ ├── mpf2mpfr.h
│ └── mpfr.h
├── lib
│ ├── gcc
│ ├── libcc1.so -> libcc1.so.0.0.0
│ ├── libcc1.so.0 -> libcc1.so.0.0.0
│ ├── libcc1.so.0.0.0
│ ├── libgmp.a
│ ├── libgmpxx.a
│ ├── libmpc.a
│ └── libmpfr.a
├── libexec
│ └── gcc
└── share
├── doc
├── gcc-7.5.0
├── gdb
├── info
├── locale
└── man
目录
| 目标 | 路径 |
|---|---|
| gdb(64bit) | ./bin |
| gdbserver(32bit) | ./arm-linux-gnueabi/libc/usr/bin |
gdb-运行问题
1.问题描述:linux 共享库版本更高
./arm-linux-gnueabi-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
解决思路:
- 查找目标共享库
- 创建软链接
sudo ln -s libncurses.so.6 libncurses.so.5
编译工具链
集成开发工具vscode+cmake
gcc(CMakeLists.txt)
cmake_minimum_required(VERSION 3.0.0)
project(c_test VERSION 0.1.0)
# 更改编译器
set(CMAKE_C_COMPILER "/home/haoge/桌面/usr/bin/arm-linux-gcc")
enable_testing()
aux_source_directory(. DIR_TOOT_SRCS)
# debug 模式
SET(CMAKE_BUILD_TYPE "Debug")
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g")
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
add_subdirectory(src) # 添加math子目录
add_executable(c_test ${DIR_TOOT_SRCS})
target_link_libraries(c_test power)
gdb(launch.json)
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) 启动",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/c_test",
"args": [],
"stopAtEntry": false,
"targetArchitecture": "arm",
"cwd": "${workspaceFolder}",
"miDebuggerPath":"/home/haoge/桌面/x86_64ToArm/bin/arm-linux-gnueabi-gdb", // 调试器选择
"miDebuggerServerAddress": "192.168.31.216:6666", // gdbserver 监听端口
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "cmake build active file" // 执行cmake编译任务, 再task.json中定义的
}
]
}
gdbserver(目标板)
[root@GEC6818 ~]#./gdbserver 192.168.31.216:6666 test/c_test
Process test/c_test created; pid = 1008
Listening on port 6666
效果展示
注意:目标板上文件与主机文件保持同步(tftp,nfs等)
开启监听

F5(vs code)

gdb命令(查看汇编码)

改进方向
-
自制工具链
-
一键更新目标文件,开启gdbserver
详细配置请通过web查找
如有错误或建议
请联系email:934622645@qq.com

浙公网安备 33010602011771号