diff options
-rw-r--r-- | tools/Linux/xbmc.sh.in | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/tools/Linux/xbmc.sh.in b/tools/Linux/xbmc.sh.in index 692398f3f9..28d98a10cd 100644 --- a/tools/Linux/xbmc.sh.in +++ b/tools/Linux/xbmc.sh.in @@ -40,11 +40,13 @@ done single_stacktrace() { - find $1 -maxdepth $2 -name 'core*' \( -exec \ - echo "=====> Core file: {}" 2> /dev/null >> $FILE \; , -exec \ - echo " ========================================= " 2> /dev/null >> $FILE \; , -exec \ - gdb "$LIBDIR/xbmc/xbmc.bin" --core={} --batch -ex "thread apply all bt" 2> /dev/null >> $FILE \; , -exec \ - rm -f {} \; \) + find "$1" -maxdepth $2 -name 'core.*' | while read core; do + LC_ALL=C gdb --core="$core" --batch 2> /dev/null | grep -q "^Core was generated by \`$LIBDIR/xbmc/xbmc.bin" || continue + echo "=====> Core file: "$core" ($(stat -c%y "$core"))" >> $FILE + echo " =========================================" >> $FILE + gdb "$LIBDIR/xbmc/xbmc.bin" --core="$core" --batch -ex "thread apply all bt" 2> /dev/null >> $FILE + rm -f "$core" + done } print_crash_report() @@ -70,14 +72,14 @@ print_crash_report() echo "############## END SYSTEM INFO ##############" >> $FILE echo >> $FILE echo "############### STACK TRACE #################" >> $FILE - single_stacktrace $PWD 1 + single_stacktrace "$PWD" 1 # Find in plugins directories if [ $XBMC_HOME ]; then BASEDIR=$XBMC_HOME else BASEDIR="$LIBDIR/xbmc/" fi - single_stacktrace $BASEDIR 5 + single_stacktrace "$BASEDIR" 5 # find in user xbmc dir single_stacktrace $HOME/.xbmc/ 5 echo "############# END STACK TRACE ###############" >> $FILE |