高翔slambook2-ch3-段错误核心已转储

高翔slambook2-ch3-段错误核心已转储 不想看我啰嗦的可以直接看第3节总结1、问题现象报错文件1~/ch3/build/visualizeGeometry报错文件2~/paper/slambook2-master/ch3/build/examples/plotTrajectory不止这俩个文件还有别的2、我的解决办法并不一定通用是偶尔发现的思路首先查段错误核心已转储是什么意思。发现段错误一般是C内存访问方面的出错核心已转储是linux一个工具ulimit提供的一个功能在你所执行程序的内存操作存在危险时ulimit会生成一个core文件来辅助用gdb对程序进行调试。事实我并没找到生成的core文件于是我按照这个帖子的方法在我的终端执行了以下命令sudosh-culimit -n 65535 exec su$LOGNAME结果很快啊突然的程序就能执行了。程序执行效果3、操作总结只需要在终端执行以下操作首先#看有没有装这个玩意儿ulimit-a#系统返回如下real-time non-blockingtime(microseconds, -R)unlimited corefilesize(blocks, -c)0data seg size(kbytes, -d)unlimited scheduling priority(-e)0filesize(blocks, -f)unlimited pending signals(-i)78687max locked memory(kbytes, -l)2527708max memory size(kbytes, -m)unlimitedopenfiles(-n)1024pipe size(512bytes, -p)8POSIX message queues(bytes, -q)819200real-time priority(-r)0stack size(kbytes, -s)8192cputime(seconds, -t)unlimited max user processes(-u)78687virtual memory(kbytes, -v)unlimitedfilelocks(-x)unlimited然后#设置core文件大小以便生成core文件ulimit-c1024#这个时候执行会报错的可执行文件例如visualizeGeometry./visualizeGeometry#再ls看看可执行文件的当前目录有没有出现core文件如果没有出现core文件就继续以下操作否则就到此结束ulimit-cunlimited#如果终端显示下面这行就再继续下一步否则到此结束bash: ulimit: corefilesize: 无法修改限制不允许的操作sudoulimit-cunlimited#如果终端显示下面这行就再继续下一步否则到此结束sudo: ulimit找不到命令#执行完这一步后即使运行可执行文件后没有出现core文件也一样可以解决我的问题了sudosh-culimit -n 65535 exec su$LOGNAME