mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-25 18:59:33 +03:00
zloop: check if core file is generated by zdb
Run `gdb` core file inspection with correct program. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Gvozden Neskovic <neskovic@gmail.com> Closes #5215
This commit is contained in:
parent
62a65a654e
commit
0c313d2f74
@ -70,7 +70,8 @@ coreglob="$(egrep -o '^([^|%[:space:]]*)' /proc/sys/kernel/core_pattern)*"
|
|||||||
if [[ $coreglob = "*" ]]; then
|
if [[ $coreglob = "*" ]]; then
|
||||||
echo "Setting core file pattern..."
|
echo "Setting core file pattern..."
|
||||||
echo "core" > /proc/sys/kernel/core_pattern
|
echo "core" > /proc/sys/kernel/core_pattern
|
||||||
coreglob="$(egrep -o '^([^|%[:space:]]*)' /proc/sys/kernel/core_pattern)*"
|
coreglob="$(egrep -o '^([^|%[:space:]]*)' \
|
||||||
|
/proc/sys/kernel/core_pattern)*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function core_file
|
function core_file
|
||||||
@ -78,6 +79,17 @@ function core_file
|
|||||||
printf "%s" "$(ls -tr1 $coreglob 2> /dev/null | head -1)"
|
printf "%s" "$(ls -tr1 $coreglob 2> /dev/null | head -1)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function core_prog
|
||||||
|
{
|
||||||
|
prog=$ZTEST
|
||||||
|
core_id=$($GDB --batch -c $1 | grep "Core was generated by" | \
|
||||||
|
tr \' ' ')
|
||||||
|
if [[ "$core_id" =~ "zdb " ]]; then
|
||||||
|
prog=$ZDB
|
||||||
|
fi
|
||||||
|
printf "%s" "$prog"
|
||||||
|
}
|
||||||
|
|
||||||
function store_core
|
function store_core
|
||||||
{
|
{
|
||||||
core="$(core_file)"
|
core="$(core_file)"
|
||||||
@ -99,6 +111,7 @@ function store_core
|
|||||||
|
|
||||||
# check for core
|
# check for core
|
||||||
if [[ -f "$core" ]]; then
|
if [[ -f "$core" ]]; then
|
||||||
|
coreprog=$(core_prog $core)
|
||||||
corestatus=$($GDB --batch --quiet \
|
corestatus=$($GDB --batch --quiet \
|
||||||
-ex "set print thread-events off" \
|
-ex "set print thread-events off" \
|
||||||
-ex "printf \"*\n* Backtrace \n*\n\"" \
|
-ex "printf \"*\n* Backtrace \n*\n\"" \
|
||||||
@ -111,7 +124,7 @@ function store_core
|
|||||||
-ex "thread apply all bt" \
|
-ex "thread apply all bt" \
|
||||||
-ex "printf \"*\n* Backtraces (full) \n*\n\"" \
|
-ex "printf \"*\n* Backtraces (full) \n*\n\"" \
|
||||||
-ex "thread apply all bt full" \
|
-ex "thread apply all bt full" \
|
||||||
-ex "quit" $ZTEST "$core" | grep -v "New LWP")
|
-ex "quit" $coreprog "$core" | grep -v "New LWP")
|
||||||
|
|
||||||
# Dump core + logs to stored directory
|
# Dump core + logs to stored directory
|
||||||
echo "$corestatus" >>$dest/status
|
echo "$corestatus" >>$dest/status
|
||||||
|
Loading…
Reference in New Issue
Block a user