aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/Linux/xbmc.sh.in16
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