Loading

联合调试(arm:gdbserver-x64:gdb)

首部

联合调试(arm:gdbserver-x64:gdb)

准备工作

超级终端

minicom(命令行)

2020-12-24_13-01

参考链接

SecureCRT(图形界面)

2020-12-24_13-08

串口通信

2020-12-24_13-08

注意:windows 需安装串口驱动

参考链接

交叉工具链

下载已编译文件

下载地址-ARM

2020-12-24_14-10

选择对应版本

2020-12-24_14-14

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

日期 - 主机体系结构-目标体系结构-目标操作系统-目标二进制接口

├── 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

编译工具链

crosstool-ng详解

集成开发工具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等)

开启监听

2020-12-24_14-55

F5(vs code)

2020-12-24_14-57

gdb命令(查看汇编码)

2020-12-24_15-04

改进方向

  1. 自制工具链

  2. 一键更新目标文件,开启gdbserver


详细配置请通过web查找

如有错误或建议

请联系email:934622645@qq.com

posted @ 2020-12-24 15:20  流缘飞雨  阅读(465)  评论(0)    收藏  举报