热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gdbserver移植+eclipse平台gdbserver调试armlinux程序

https:blog.csdn.netfz835304205articledetails17166973一、配置编译及安装下载1.到http:www.gnu.orgsoftware

https://blog.csdn.net/fz835304205/article/details/17166973

 

一、配置编译及安装下载 

1. 到http://www.gnu.org/software/gdb下载gdb-7.6.tar.gz

2. 解压
#tar xzvf /tmp/gdb-7.6.tar.gz 

3. 建立配置文件、编译 

#cd gdb-7.6

./configure --target=arm-linux --prefix=/usr/local/gdb -v

#make 
#sudo make install 
 

(--target配置gdb的目标平台,--prefixp指定了编译结果的存放位置,也就是安装目录。编译完后可以在/usr/local/gdb/bin目录下找到可执行的arm-linux -gdb,  arm-linux-run。

添加环境变量

#gedit ~/.bashrc

export PATH=/usr/local/arm/gdb/bin:$PATH

4. gdbserver的移植 
gdbserver要用到gdb源码目录下的一些头文件,因此无法在gdb源码目录之外编译文件。 
进入gdb/gdbserver目录: 
 必须在gdbserver目录下运行配置命令,此时才能用相对路径 
#./configure --target=arm-linux --host=arm-linux 
(--target=arm-linux表示目标平台,--host表示主机端运行的是arm-linux-gdb,不需要配置—prefix,因为gdbserver不在主机端安装运行) 

# make CC=/home/linux-138/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc

 gdb-7.6/gdb/gdbserver/linux-arm-low.c中:
 #ifdef HAVE_SYS_REG_H
 //#include   (注释这一行)
 #endif
 然后再重新make 

(这一步要指定你自己的arm-linux-gcc的绝对位置,我试过相对的不行,提示make: arm-linux-gcc: Command not found,可好多人都用的相对路径,即直接赋值arm-linux-gcc,可采取make时传递参数,也可以直接修改gdbserver目录下的Makefile文件中的环境变量CC) 

./gdbserver: error while loading shared libraries: libdl.so.2: cannot open shared object file: No such file or directory

缺少动态链接库

make CC=/home/linux-138/L138_SDK/linux-devkit/bin/arm-arago-linux-gnueabi-gcc CFLAGS=-static

重新编译ok

 

  1. 调试程序
    通过加-g参数 交叉编译带调试信息的程序

     

    $ arm-linux-gcc -g ipcam.c -o ipcam

    拷贝到设备端后,使用gdbserver打开程序

    $gdbserver :10000 ipcam

    主机使用arm-linux-gdb调试程序

    $ arm-linux-gdb ipcam

    输入gdb远程调试指令

    (gdb) target remote :10000

    这时,设备端打印

    Remote debugging from host 192.168.1.102

    说明远程调试已经建立起,可以开始在host端调试

  2. gdb指令可真多,我不是牛人,自认没那技术通过指令就能调试出想要的结果,结合eclipse的图形调试界面快速寻找答案才是我想要的

gdbserver编译安装完成,接下来该gdb本地调试了,由于gdb命令界面的调试一个大的工程还是很不爽的,那就借助eclipse强大的功能来协助调试吧,整整搞了两天才把这个环境搭建起来,linux下很多东西和windos下不一样,windos下的调试环境一般很友好,不用费什么周折,但linux下有些东西别人的一句话就够你折腾好几天了,趁年轻再折腾折腾,网上的大都比较老,我的是eclipse3.7 gdb7.6 有的地阿芳还是不一样的,呵呵。

想起一句很重要的话,在linux下一般遇到问题搞了好久没搞定,那就升级新版本吧,名言呀,切记。

一,建好eclipse工程

不多说了,网上资料一箩筐,不会的自己补课。

 

 

二 设置debug选项

run->debug configurations

在c remote application 菜单下双击,新建mydebug

c application选项为要调试的应用程序

gdb debugger选择编译的arm-linux-gdb

在下面using gdb manual remote 单击 select other  

选择 manual remote

选择tcp 填入开发板ip和端口

三 开始调试

开发板端

root@FZ:/# gdbserver 192.168.0.105:5555 ./test


推荐阅读
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 在Ubuntu 16.04 LTS上配置Qt Creator开发环境
    本文详细介绍了如何在Ubuntu 16.04 LTS系统中安装和配置Qt Creator,涵盖了从下载到安装的全过程,并提供了常见问题的解决方案。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • This guide provides a comprehensive step-by-step approach to successfully installing the MongoDB PHP driver on XAMPP for macOS, ensuring a smooth and efficient setup process. ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
author-avatar
lb小小凡人
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有