aboutsummaryrefslogtreecommitdiff
path: root/contrib/debug
blob: 3de2c9a14c61d843d56e3e90837898e3b4409e96 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
# /proc/sys/kernel/core_pattern should be core.%p.%E

COREPID=$1

COREFILES=`ls -1 *core.$COREPID* 2>/dev/null | wc -l`
COREFILE=`ls -1 *core.$COREPID* 2>/dev/null | head -n 1`

if [ $COREFILES -gt 1 ]; then
    echo "Multiple files, using $COREFILE"
fi


if [ $COREFILES -eq 0 ]; then
    SERVICENAME=$1
    COREFILES=`ls -1 core.*.*$SERVICENAME 2>/dev/null | wc -l`
    COREFILE=`ls -1 core.*.*$SERVICENAME 2>/dev/null | head -n 1`

    if [ $COREFILES -gt 1 ]; then
	echo "Multiple files, using $COREFILE"
    fi
fi

if [ $COREFILES -eq 0 ]; then
    echo "Core file for $1 not found"
    exit 1
fi

echo "Using $COREFILE"

EXECPATH=${COREFILE#*!}
EXECPATH=`echo $EXECPATH | sed -e 's/!/\//g'`
echo $EXECPATH
echo ""
echo ""

gdb --core $COREFILE /$EXECPATH