mirror of
https://github.com/microsoft/WSL.git
synced 2025-12-10 00:44:55 -06:00
38 lines
843 B
Bash
38 lines
843 B
Bash
#! /bin/bash
|
|
|
|
set -ue
|
|
|
|
if [ $(whoami) != "root" ]; then
|
|
echo "This script must be run as root in the system distro (via wsl.exe -u root --system)"
|
|
exit 1
|
|
fi
|
|
|
|
ts=$(date +%F_%H-%M-%S)
|
|
target="/mnt/c/wsl-init-dump-$ts"
|
|
|
|
mkdir -p "$target"
|
|
|
|
tdnf install -y gdb
|
|
|
|
bash -c "cd $target && gcore -a \$(pgrep init)"
|
|
|
|
stack_log="$target/stacks.txt"
|
|
fd_log="$target/fd.txt"
|
|
for pid in $(pgrep init); do
|
|
echo -e "\nProcess: $pid" >> "$stack_log"
|
|
echo -e "\nProcess: $pid" >> "$fd_log"
|
|
for tid in $(ls "/proc/$pid/task" || true); do
|
|
echo "tid: $tid" >> "$stack_log"
|
|
cat "/proc/$pid/task/$tid/stack" >> "$stack_log" || true
|
|
done
|
|
|
|
ls -la "/proc/$pid/fd" >> "$fd_log" || true
|
|
done
|
|
|
|
|
|
ss -lap --vsock > "/$target/sockets.txt"
|
|
dmesg > "/$target/dmesg.txt"
|
|
cat /proc/meminfo > "/$target/meminfo.txt"
|
|
|
|
echo "Logs and dumps written in $target"
|