20200101 gdb和gdbserver 基于 Ubuntu18.0 和 arm-linux-gnueabihf 通过 NFS 进行远程调试

本文详细介绍了如何使用NFS在上位机与下位机之间进行远程调试,包括配置NFS服务、设置防火墙规则、建立调试连接及使用gdb进行远程调试的过程。
前言:

通过 nfs 实现上下位机远程调试

配置上位机 NFS

我设备的 IP :192.168.1.136
我PC 的 IP :192.168.1.120

  1. 安装
    sudo apt install nfs-kernel-server

    如果没有找请 sudo apt update

  2. 创建文件
    sudo mkdir -p /mnt/nfsroot //按照指定路径创建相对的父类文件夹(存在则也不会报错)
    sudo chown nobody:nogroup /mnt/nfsroot 设置文件所属于
    sudo chmod 777 /mnt/nfsroot 设置文件权限

  3. 允许指定设备连接
    sudo vi /etc/exports
    在文件中输入 (设备 IP)
    /mnt/nfsroot 192.168.1.136(rw,sync,no_subtree_check)

rw: read and write operations
sync: write any change to the disc before applying it
no_subtree_check: prevent subtree checking

  1. 输出共享目录 并启动设备
    sudo exportfs -a
    sudo systemctl restart nfs-kernel-server.service

  2. 检查防火墙状态
    sudo ufw status --> Status:inactive 不需要配置防火墙
    Status:active 需要配置防火墙
    1) 添加允许规则

    sudo ufw allow from 192.168.1.136 to any port nfs
    sudo ufw status
    查看输出
    在这里插入图片描述
    注意:其它同平台部分查看资源链接


ARM 设备配置

已移植 gdbserver 和 nfs

  1. 建立连接
mount -t nfs 192.168.1.120:/mnt/nfsroot /mnt -o nolock

没有任何输出就是OK

  1. 测试
    PC 端
    sudo touch test.txt /mnt/nfsroot
    echo "hello world" > /mnt/nfsroot/test.txt

设备端
cd /mnt
ls
cat test.txt

注意: ls 指令没有输出 test.txt 可能是挂载失败,请重启 PC nfs server 服务

以上 NFS 连接完毕



远程 DEBUG 链接
创建一个临时测试

需要设备对应的安装交叉编译库
本设备需要:

sudo apt install g++-arm-linux-gnueabihf
sudo apt install gcc-arm-linux-gnueabihf

1 创建文件
touch t1.cpp /mnt/nfsroot
2 文件内容

#include <iostream>
int main() {
    std::cout << "hello world" << std::endl;
    std::cout << "--!---" << std::endl;
    return 0;
}

3 编译
arm-linux-gnueabihf-g++ t1.cpp -o t1 -g
编译生成 t1 文件


设备端

gdbserver :2000 t1

gdbserver 和 :2000 之前有一个空格


PC 端

1 安装 多架构 dbg
新立得 或 手动
sudo apt install gdb-multiarch

2 启动 debug
cd /mnt/nfsroot
gdb-multiarch t1

3 链接
target remote 192.168.1.136:2000
continue

就可以看到下位机 输出

hello world
–!--

至此配置完成


参考文献:
ubuntu 18.04 nfs 配置文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值