【发布时间】:2019-05-24 11:44:34
【问题描述】:
我正在开发一个 IoT linux 设备。运行我的申请时出现段错误。我需要一些方法来解决这个问题。
我尝试过的方法:
1.coredump
ulimit -c 无限;无限 -f 无限; core会创建,但是可能芯片的内存不够,所以core总是被截断。我无法使用 gdb 来获取回溯。
2.dmesg | grep 段错误
这个linux系统没有在“demsg”中保存崩溃
3./var/log/messages
这个linux系统没有在“/var/log/messages”中保存崩溃
您对解决段错误有什么建议吗?非常感谢。
【问题讨论】:
-
是的,学习如何调试您的程序。见how to debug small programs。 Segmentation fault 是 undefined behavior 的一个实例。你可以考虑remote debugging with GDB
-
另外,请理解 SegFault 通常是为指针分配无效地址(或未能初始化)然后尝试访问该无效地址处的值的结果。在上面提供的链接中“与橡皮鸭交谈”时,请仔细检查指针的任何使用、分配的地址或未初始化的使用。为您的编译器启用完整警告,例如
gcc -Wall -Wextra -pedantic ...(至少)并且在没有警告的情况下编译之前不要接受代码..
标签: c linux segmentation-fault