linux下产生断错误的调试方法

本文介绍了一种使用交叉编译器和GDB调试开发板应用程序的方法。主要内容包括:编译代码时添加-g选项以便生成调试信息;设置开发板上的core文件大小以确保能够捕获到程序崩溃时的详细信息;当程序崩溃时,通过分析core文件来定位问题;最后,在交叉编译服务器上利用GDB进一步分析具体出错的位置。
1.编译代码时,需要加上-g
2.开发板上运行
# ulimit -c unlimited  -此处是设置生成的core文件大小
在开发板上运行时,如果有断错误会有Segmentation fault (core dumped)红色标记生成了core文件。
如果没有生成core文件一般是没有设置core文件大小
3.将可执行程序sea,和生成的sea.***core文件拷到交叉编译服务器(如192.168.189.109)上.

4.在服务器上用交叉编译器自带的gdb进行出错位置的定位
1)将openwrt的工具链加到PATH中,下面是红色/yourpath是我存放openwrt-3.10.14的路径,需要替换成你自己的编译路径
#export PATH=$PATH:/yourpath/openwrt-3.10.14/staging_dir/toolchain-mipsel_24kec+dsp_gcc-4.8-linaro_uClibc-0.9.33.2/bin
# mipsel-openwrt-linux-uclibc-gdb  sea sea.946.11.1450080706.core
使用bt命令即可看到程序出错的地方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值