**
什么是Segmentation fault?
**
Segmentation fault就是段错误,一般指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址、访问了系统保护的内存地址、访问了只读的内存地址等等情况。
什么是core dumped
操作系统把程序当掉时的内存内容 dump 出来(现在通常是写在一个叫 core 的 file 里面),让 我们或是 debugger 做为参考。这个动作就叫作 core dump。
使用core文件和gdb进行调试
1、在一些Linux版本下,默认是不产生core文件的,首先可以查看一下系统core文件的大小限制:
yrs@HP-Z820-Workstation:~/YOLO/darknet-master$ulimit -c
0
2、可以看到默认设置情况下,本机Linux环境下发生段错误时不会自动生成core文件,下面设置下core文件的大小限制(单位为KB):
yrs@HP-Z820-Workstation:~/YOLO/darknet-master$ulimit -c 1024
yrs@HP-Z820-Workstation:~/YOLO/darknet-master$ulimit -c
1024
3、运行程序,发生段错误生成core文件:
yrs@HP-Z820-Workstation:~/YOLO/darknet-master$./darknet classifier train cfg/mnist.data cfg/mnist.cfg
Learning Rate: 0.1, Momentum: 0.9, Decay: 0.0005
6