热门标签 | 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


推荐阅读
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 本文将详细介绍如何在Mac上安装Jupyter Notebook,并提供一些常见的问题解决方法。通过这些步骤,您将能够顺利地在Mac上运行Jupyter Notebook。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 本文详细介绍了在Linux系统上编译安装MySQL 5.5源码的步骤。首先,通过Yum安装必要的依赖软件包,如GCC、GCC-C++等,确保编译环境的完备。接着,下载并解压MySQL 5.5的源码包,配置编译选项,进行编译和安装。最后,完成安装后,进行基本的配置和启动测试,确保MySQL服务正常运行。 ... [详细]
  • 在Ubuntu系统中配置Python环境变量是确保项目顺利运行的关键步骤。本文介绍了如何将Windows上的Django项目迁移到Ubuntu,并解决因虚拟环境导致的模块缺失问题。通过详细的操作指南,帮助读者正确配置虚拟环境,确保所有第三方库都能被正确识别和使用。此外,还提供了一些实用的技巧,如如何检查环境变量配置是否正确,以及如何在多个虚拟环境之间切换。 ... [详细]
  • 在腾讯云服务器上部署Nginx的详细指南中,首先需要确保安装必要的依赖包。如果这些依赖包已安装,可直接跳过此步骤。具体命令包括 `yum -y install gcc gcc-c++ wget net-tools pcre-devel zlib-devel`。接下来,本文将详细介绍如何下载、编译和配置Nginx,以确保其在腾讯云服务器上顺利运行。此外,还将提供一些优化建议,帮助用户提升Nginx的性能和安全性。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 在 Ubuntu 中遇到 Samba 服务器故障时,尝试卸载并重新安装 Samba 发现配置文件未重新生成。本文介绍了解决该问题的方法。 ... [详细]
  • 本文介绍了如何在 macOS 上安装 HL-340 USB 转串口驱动,并提供了详细的步骤和注意事项。包括下载驱动、关闭系统完整性保护、安装驱动以及验证安装的方法。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 在 CentOS 7 中,为了扩展可用软件包的数量,通常需要配置多个第三方软件源。这些第三方源包括 EPEL、Nux Dextop 和 ELRepo 等,它们提供了大量官方源中未包含的软件包,从而增强了系统的功能性和灵活性。通过正确配置这些源,用户可以轻松安装和管理更多种类的软件,满足不同的需求。 ... [详细]
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社区 版权所有