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

网友投稿 810 2022-05-29

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 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.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中打断点会有如下提示信息?

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

解决方案:

参考: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即可正常设置断点了。如下图所示:

FPGA Linux

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【云计算】从事云计算运维可以考取哪些证书?
下一篇:新能源电动汽车(带网关Gateway)车身网络控制系统CAN数据开发趋势
相关文章