* Fix the savecore rc.d script to only run savecore (and crashinfo) when
there's actually a core dump available.
* Limit the kgdb CPU time to 15 seconds to avoid looping forever if we
have a somewhat broken vmcore.
savecore_start()
{
if [ X$dumpdev != X ]; then
- echo "Checking for core dump..."
- savecore ${savecore_flags} ${DUMPDIR} ${dumpdev}
- if checkyesno crashinfo_enable; then
- ${crashinfo_program} -d ${DUMPDIR}
+ if savecore -C "${DUMPDIR}" "${dumpdev}" > /dev/null; then
+ savecore ${savecore_flags} ${DUMPDIR} ${dumpdev}
+ if checkyesno crashinfo_enable; then
+ ${crashinfo_program} -d ${DUMPDIR}
+ fi
+ else
+ echo 'No core dumps found.'
fi
return ${RC_CONFIGURED}
fi
echo "bt" >> $file
if [ -e /usr/src/test/debug/gdb.kernel ]; then
echo "source /usr/src/test/debug/gdb.kernel" >> $file
+ echo "lstok" >> $file
echo "psx" >> $file
echo "running_threads" >> $file
- echo "lstok" >> $file
- echo "kldstat" >> $file
echo "lsvfs" >> $file
echo "lsvfsops" >> $file
echo "lsmount" >> $file
+ echo "kldstat" >> $file
fi
echo "quit" >> $file
- kgdb $KERNEL $VMCORE < $file
+ ( ulimit -t 15; kgdb $KERNEL $VMCORE < $file )
rm -f $file
echo
fi