栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

PC调试嵌入式开发板产生的core文件

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PC调试嵌入式开发板产生的core文件

PC调试嵌入式开发板产生的core文件

flyfish

程序在运行过程中发生Segmentation fault (core dumped)错误的处理

环境

PC:Ubuntu 18.04
嵌入式:Linux
PC交叉编译之后然后将可执行程序拷贝到嵌入式中运行
假如PC可执行程序所在目录
/home/SDK/buildroot/output/type/build/myprogram

嵌入式系统 core文件的产生

嵌入式系统 查看是否支持产生core
命令

ulimit -a

结果
-c: core file size (blocks) 0

设置支持core文件的产生
命令

ulimit -c unlimited

结果
-c: core file size (blocks) unlimited

步骤 1 嵌入式系统 产生Segmentation fault (core dumped)错误

生成的core文件如下
core-数字-可执行程序名

2 从 嵌入式系统 将core文件拷贝到PC

假定拷贝的路径是 /home/SDK/buildroot/output/type/build/core

3 在PC中进入gdb环境

运行命令是
gdb [exec file] [core file]
从终端进入目录
假如我们想使用arm-linux-gnueabihf-gdb进行调试

arm-linux-gnueabihf-gdb所在目录是
/home/SDK/prebuilts/gcc/linux-x86/arm/gcc-arm-version-arm-linux-gnueabihf/bin

执行

./arm-linux-gnueabihf-gdb /home/SDK/buildroot/output/type/build/myprogram  /home/SDK/buildroot/output/type/build/core

这是就进入gdb环境了

4 在PC中加载so文件

通过info sharedlibrary 命令可以查看需要加载的so文件

需要设置两个目录 set sysroot 和 set solib-search-path
执行两个命令
命令1

set sysroot /home/SDK/buildroot/output/type/host/arm-buildroot-linux-gnueabihf/sysroot

命令2

set solib-search-path- /home/SDK/buildroot/output/type/oem/usr/lib
5 在PC中定位错误

命令

bt

结果会输出代码错误的地方

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/893466.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号