首页 > 系统相关 >在Ubuntu上调试ARMv7的core文件

在Ubuntu上调试ARMv7的core文件

时间:2024-07-10 17:41:47浏览次数:11  
标签:core 文件 linux gdb usr ARMv7 Ubuntu arm

1 在Ubuntu上调试ARMv7的core文件

1.1 预备

  1. uname -a: 获得目前嵌入式系统

     Linux (none) 3.8.11-xilinx #40 SMP PREEMPT Thu Jan 12 17:02:11 CST 2023 armv7l GNU/Linux
    
  2. 安装armv7的交叉编译工具链:

    sudo apt-get udpate
    sudo apt-get install gcc-arm-linux-gnueabihf gdb-multiarch
    
    • gcc-arm-linux-gnueabihf: 用于编译ARMv7架构程序的交叉编译器;
    • gdb-multiarch: 支持多种架构的GDB版本,可以用来调试ARMv7程序;

    安装gcc-arm-linux-gnueabihf之后,相关的文件在如下目录中:

     /usr/local/ti-sdk-am335x-evm/linux-devkit/sysroots/i686-arago-linux/usr/bin/
    

    将ARMv7下的可执行文件和core dump文件拷贝到如上文件夹下

    若如上文件夹下没有arm-linux-gnueabihf-gdb文件,可以使用gdb-multiarch替代.

    为方便gdb调试时使用set solib-search-path设置库文件,建议将可执行文件所需要引用的库文件也一同放在如上目录下

    而将对应的ARMv7的系统库文件可以放在/opt/armv7/

  3. 获取ARMv7上的系统库文件

    分别有/lib/usr/lib

    • /lib: 包含基本系统程序使用的共享库文件,例如: C库, 内核模块等
    • /usr/lib: 包含用户级应用程序使用的库文件

    并将该库存放到当前ubuntu下的/opt/下,如/opt/arm_lib/opt/arm_usr_lib

  4. 将Arm下运行的可执行文件所依赖的库,存放到指定位置,如/opt/arcs/librarys/

    gdb-multiarch调试时,需要使用set solib-search-path来设置所引用库的全部文件;

1.2 直接在非ARM的主机上调试ARM下生成的core文件

  1. sudo gdb-mulitarch ./ARCS ./core
  2. set solib-search-path /opt/arm_lib/:/opt/arm_usr_libs/:Libraries/:Libraries/log4cpp/:Libraries/sqlite/: 设置so的库文件搜索路径, 注意这里的Libraries/:Libraries/log4cpp/:Libraries/sqlite/这三个文件夹是当前可执行文件所需要使用的库文件,且都存放在/usr/local/ti-sdk-am335x-evm/linux-devkit/sysroots/i686-arago-linux/usr/bin/
  3. (gdb) set sysroot /opt/armv7_sys_libs: 设置root目录,之后就会开始加载
  4. bt: 查看堆栈信息
  5. i sharedlibrary: 查看哪些动态库有符号文件;
  6. f num: 切换堆栈层;
  7. l: 查看相关代码;

标签:core,文件,linux,gdb,usr,ARMv7,Ubuntu,arm
From: https://www.cnblogs.com/gwzz/p/18294698

相关文章

  • How to setup and configure mptcp on Ubuntu
    https://medium.com/high-performance-network-programming/how-to-setup-and-configure-mptcp-on-ubuntu-c423dbbf76cc  HowtosetupandconfiguremptcponUbuntu  MartenGartner·FollowPublishedinHighPe......
  • Xubuntu24.04之设置高性能模式两种方式(二百六十一)
    简介:CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!优质专栏:Audio工程师进阶系列【原创干货持续更新中……】......
  • 服务器ubuntu 20.04关闭自动休眠模式
    1.查看是否开启休眠模式systemctlstatussleep.target发现系统提示: 2.执行关闭休眠功能命令sudosystemctlmasksleep.targetsuspend.targethibernate.targethybrid-sleep.target系统返回: 3.观察系统休眠状态,如下:systemctlstatussleep.target可以看到自......
  • .Net Core WebApi项目 Development模式下报错 System.InvalidOperationException 解决
    .NetCoreWebApi项目Development模式下报错System.InvalidOperationException:“Cannotresolvescopedservice'Microsoft.Extensions.Options.IOptionsSnapshot`1[Infrastructure.OptionsSetting]'fromrootprovider.” 但是在Production模式下,运行正常因为未设置的......
  • mormot.core.threads--TSynThreadPool
    mormot.core.threads--TSynThreadPool{************面向服务器进程的线程池}TSynThreadPool=class;//前向声明TSynThreadPool类///定义了TSynThreadPool所使用的工作线程TSynThreadPoolWorkThread=class(TSynThread)protectedfOwner:TSynThreadPool;//......
  • 在Ubuntu中安装docker最新的docker(被墙)(转)
    在目前的情况下download.docker.com访问不是特别稳定的情况下,可以使用阿里的地址来进行更新一、安装1、检查环境1.1卸载旧版dockersudosuaptremovedockerdocker-enginedocker.iocontainerdrunc2、安装依赖apt-yinstallca-certificatescurlgnupglsb......
  • 一款EF Core下高性能、轻量级针对分表分库读写分离的解决方案
    前言今天大姚给大家分享一款EFCore下高性能、轻量级针对分表分库读写分离的解决方案,开源(ApacheLicense)的EFCore拓展程序包:ShardingCore。ShardingCore项目介绍ShardingCore是一款开源、简单易用、高性能、普适性,针对EFCore生态下的分表分库的扩展解决方案,支持EFCore2+......
  • 解析coredump文件
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、coredump是什么?二、操作步骤总结前言编写程序的时候可能会遇到coredump问题,如下方法可以解析dump,简单定位报错问题内核版本:5.10提示:以下是本篇文章正文内容,下面案例可供参考一、......
  • ASP.Net Core解读launchSettings.json
    一、环境目标框架:.NETCore3.1ASP.NETCore是一个全新的Web开发平台,微软在它上面构建了MVC、SingalR、GRPC、Orleans这样广泛使用的Web框架,我们先以MVC框架为例介绍利用ASP.NETCore构建项目的常见名词。这篇文章介绍启动配置文件launchSettings.json ASP.NET Core MVC项目......
  • Core WebAPI 中 Program.cs和Startup.cs认识 (高频考点)
    1.Program.cs认识publicclassProgram{publicstaticvoidMain(string[]args){//Build方法构建出一个web应用程序,然后去运行CreateWebHostBuilder(args)//调用下面的方法,返回一个IWebHostBuilder对象.Build()//用......