eclipse+gdbserver调试嵌入式linux应用程序

2019-07-12 15:56发布

eclipse+gdbserver图形化调试嵌入式linux应用程序

开发环境

  • PC端Linux安装在VM虚拟机上,Ubuntu 12.04。
  • 嵌入式开发板->天嵌TQ210。
  • 开发板linux内核->2.6.35.7。

1.安装Eclipse

1.1 登录 http://www.eclipse.org/ide/,选择C/C++的IDE下载。 1.2 左边版本尽量选择新一点的,之前安装了Helios版本的发现实现不了。当前最新版本为Oxygen(时间:7/12/2017),右边的操作系统版本根据自己的虚拟机Linux操作系统选择,我这里是32位,选择了Linux 32-bit。 1.3 下载完安装包,通过SSH、samba、共享文件等方式拷贝到PC的Linux系统下。压缩包名字为eclipse-cpp-oxygen-R-linux-gtk.tar.gz。 1.4 进入压缩包所在目录,解压到该目录下。 # cd /home/ymq/arm_tools # tar -xzvf eclipse-cpp-oxygen-R-linux-gtk.tar.gz 1.5 在进入刚刚解压缩出来的eclipse文件夹启动eclipse应用之前,还要做一件事,就是安装java运行时的环境JRE。否则会出现以下错误提示。 1.6 在安装完JRE就可以启动eclipse软件了,进入解压出来的文件夹。 # cd /home/ymq/arm_tools/eclipse ./eclipse

2.PC端linux安装arm交叉编译工具

2.1 这里使用的是天嵌公司提供的交叉编译工具,在开发板资料的..TQ210_CDLinux平台工具文件下的4.4.6_TQ210_release_20120720.tar.bz2文件,拷贝到PC机的linux下解压缩。在此省略操作方法。 2.2 修改/etc/profile文件,把安装交叉编译链工具的bin目录设置到环境变量中。 # sudo vim /etc/profile 2.3 在profile文件的末尾,增加以下一行。我这里把交叉编译工具链解压缩到根目录。 export TQ210_CROSS=/opt/EmbedSky/4.4.6/bin export PATH=$PATH:$TQ210_CROSS 2.4 回到终端,更新修改的/etc/profile文件。 # sudo source /etc/profile 2.5 检查是否已经安装好交叉编译连。出现如下图红 {MOD}框,说明已经安装成功。 # amr-linux-gcc -v

3.PC端安装gdbclient

3.1 http://ftp.gnu.org/gnu/gdb/,下载arm-linux-gdb-7.5.tar.gz。 3.2 解压缩,配置、编译gdbclient。 # tar -xzvf arm-linux-gdb-7.5.tar.gz # cd ./arm-linux-gdb-7.5/gdb-7.5 # ./configure --target=arm-linux --prefix=/usr/local/arm-gdb –v(--target配置gdb的目标平台,--prefix安装路径) # make && make install 3.3 配置、编译gdbserver。 # cd arm-linux-gdb-7.5/gdb-7.5/gdb # ./configure --target=arm-linux --host=arm-linux(--target=arm-linux表示开发板平台,--host表示PC端运行的是arm-linux-gdb,不需要配置—prefix,因为gdbserver不在PC端安装运行) # make CC=/opt/EmbedSky/4.4.6/binarm-linux-gcc(这里的交叉编译链路径根据自己安装位置修改) 3.4 编译成功之后,在arm-linux-gdb-7.5/gdb-7.5/gdb文件夹下出现gdbserver应用,把它通过nfs或者其它的方式,拷贝到开发板中去,一般放在开发板linux系统的/usr/bin目录下。 此部分参考文献:http://blog.csdn.net/quyang0602/article/details/7368893

4.eclipse通过gdbclient连接开发板

4.1 打开eclipse,新建一个c语言工程。File->New->C Project。 4.2 填写工程名,选择工具链为Cross GCC。 4.3 Next。 4.4 Finish。 4.5 给新建工程添加源文件。选中工程,File->New Source File,输入文件名,记得加上后缀,Finish。 4.5 输入简单的打印,编译。 #include int main(void) { printf("Hello World! "); return 0; } 4.6 eclipse控制台输出编译结果。 4.7 Run->Debug Configurations,配置调试。 4.8 4.9 Debug Configurations->Debugger->Main,在GDB debugger选择gdb安装的路径,并制定arm-linux-gdb。 4.10 Debug Configurations->Debugger->Connection,类型选择TCP,主机地址即开发板的IP地址,端口号设置为10000。 4.11 配置完eclipse,保存之后关闭。接下来启动开发板的gdbserver。 4.12 用串口工具连接到开发板。通过nfs把PC端linux的eclipse工作文件夹挂载到开发板的/mnt/workspace目录下。<此操作在开发板上操作>。 [root@EmbedSky Debug]# mount -t nfs -o nolock 192.168.0.116:/home/ymq/workspace /mnt/workspace 4.13 进入/mnt/workspace/hello/Debug目录。<此操作在开发板上操作>。 [root@EmbedSky Debug]# cd /mnt/workspace/hello/Debug 4.14 启动gbdserver调试hello。 [root@EmbedSky Debug]# gdbserver :100000 hello Process hello created; pid = 150 Listening on port 100000 4.15 eclipse启动调试。Run->Debug,启动调试。此步要在开发板启动了gdbserver之后执行,否则无法连接到开发板上,也无法出现如下提示。 4.16 eclipse成功连接到开发板上,按单步执行(F6),在开发板的终端可以看到输出。 [root@EmbedSky Debug]# gdbserver :10000 hello Process hello created; pid = 141 Listening on port 10000 Remote debugging from host 192.168.0.116 Hello World! 4.17 点击Run->Terminate(Ctrl+F2),终止调试。 此部分参考文献:嵌入式Linux开发教程 (上册) .pdf《周立功出版的》,第十章第四节。链接:
http://www.zlg.cn/ipc/down/down/id/92.html 到此,完成了在eclipse上远程调试嵌入式linux应用程序,图形化的界面比命令行方便,清晰。但是对电脑硬件资源有一定要求,配置不高的话,虚拟机运行eclipse会比较卡。