【SoC FPGA学习】四、使用gdbserver远程调试Linux应用程序

举报
ReCclay 发表于 2022/02/21 23:58:14 2022/02/21
【摘要】 gdbserver远程调试流程 首先保证电脑能够网络访问开发板(参考第三节进行网络配置)使用passwd命令,为root账号设置密码将希望调试的程序拷贝到开发板中为程序添加可执行权限 chmod 777...

gdbserver远程调试流程

  • 首先保证电脑能够网络访问开发板(参考第三节进行网络配置)
  • 使用passwd命令,为root账号设置密码
  • 将希望调试的程序拷贝到开发板中
  • 为程序添加可执行权限 chmod 777 hello_world
  • 在DS-5软件里面设置调试相关配置,在菜单栏选择Run->Debug Configurations打开配置界面
    • Debugger:gbdserver
    • 选择gdb.exe
    • Connection:TCP、IP
  • 在开发板上输入以下命令启动调试:gdbserver :10000 hello_world
  • 在DS-5里面点击debug开始调试
    • 断点、查看变量、单步运行

参考教程中的以下章节
在这里插入图片描述


一、编写测试程序

编写mian.c如下

#include <stdio.h>

int main(int argc, char* argv[])
{
	int a=1, b=2, c=3;

	printf("Hello World\r\n");

	c = a+b;
	b++;
	c = c+b;

	printf("c=%d\r\n", c);

	return 0;
}


  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

二、DS-5配置

点击菜单栏的Run选项,然后选择其中的Debug Configurations…,如下图所示

在这里插入图片描述

双击其中的C/C++ Application,会自动识别到hello_world程序
在这里插入图片描述
选择Debugger标签,

在这里插入图片描述

然后选择下方的Select other…

在这里插入图片描述

然后选择Change Workspace Settings
在这里插入图片描述
点击C/C++ Application下的[Debug],然后选择下面的Legacy Create Process Launcher,然后OK即可,如下图所示
在这里插入图片描述
然后切换到Debugger标签,将其中的Debugger:选择为gdbserver
在这里插入图片描述

将开发板光盘配套软件中的arm-linux-gnueabihf-gdb.exe拷贝到Quartus的D:\intelFPGA\17.1\embedded\ds-5\sw\gcc\bin文件下,如下图所示
在这里插入图片描述
在这里插入图片描述

然后将上述添加的arm-linux-gnueabihf-gdb.exe,添加到配置中,如下图所示

在这里插入图片描述

然后将Connection下的选项配置为如下图所示,配置完成后点击Apply进行保存,先不要点击Debug!!!

在这里插入图片描述

接着在串口终端中,输入gdbserver :10000 hello_world,如下图所示

在这里插入图片描述

三、DS-5的Debug过程

然后回到DS-5,点击其中的Debug,接着会弹出切换Debug视图的提示,这里选择Yes

在这里插入图片描述
切换视图后的样子,如下图所示

在这里插入图片描述
在串口终端也会显示开启远程调试的打印信息

在这里插入图片描述
箭头默认指在第一行,前面的箭头表示程序运行的位置

在这里插入图片描述

从Variables窗口可以查看到变量值,如下图所示
在这里插入图片描述
点击其中的step over可以进行单步运行,如下图所示

在这里插入图片描述

可以看到在变量区变量的变化,如下图所示
在这里插入图片描述
也可以在串口终端看到信息的打印,如下图所示

在这里插入图片描述

调试完毕后,如何退出调试视图到普通视图呢?在软件的右上角,点击如下图所示选项即可!

在这里插入图片描述
然后,可以依次按照如下图所示步骤还原最最初的视图界面

在这里插入图片描述


EDS-5中文注释字体过小解决办法:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


解决无法打断点的问题

问题:在DS-5中打断点会有如下提示信息?

在这里插入图片描述
在这里插入图片描述

解决方案:

参考:http://www.corecourse.cn/forum.php?mod=viewthread&tid=27911&highlight=%E6%96%AD%E7%82%B9

在DS5中调试Linux程序时候无法设置断点,这个主要是软件的断点类型默认为DS5类断点,而非C++类断点导致的。

如需设置断点并调试,只需要在设置断点处先鼠标右击,可以看到默认的是DS-5 C/C++ Breakpoints。选择Breakpoints为C/C++ Breakpoints即可正常设置断点了。如下图所示:

在这里插入图片描述

文章来源: recclay.blog.csdn.net,作者:ReCclay,版权归原作者所有,如需转载,请联系作者。

原文链接:recclay.blog.csdn.net/article/details/107823306

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。