程序运行过程中异常中止,想通过进行coredump的配置进行调试,求解决
本回答来源全志R329如何进行coredump的配置与调试?
如果报错只有 Segmentation fault,而不是Segmentation fault (core dumped),说明没有使用CoreDump。
解决办法
SDK配置coredump和gdb
m menuconfig进入配置菜单
(1)Global build settings —>
[*] Enable process core dump support
(2)Global build settings —>
Binary stripping method (none) —>
(3)Development —>
<*> gdb… GNU Debugger
小机端配置
(1)ulimit -c unlimited
表示在异常时产生core dump文件,不对core dump文件的大小进行限制。
(2)echo /tmp/coredump > /proc/sys/kernel/core_pattern
设置产生的core文件的文件名以及路径。
例如:
出现Segmentation fault 之后,会有(core dumped)的字样。
对coredump的简单debug
(1)使用gdb调试coredump文件。
gdb xxxx /tmp/coredump
xxxx是具体的应用程序,比如/usr/bin/bt_test
(2)在gdb 终端中输入bt
输入bt之后,可以查看堆栈的信息。注意:这里的bt不是蓝牙的意思。
如下图所示:
这样就可以大致查看出错的点,方便分析调试。