Add a script to faciliate debugging for init (#8988)

Blue committed Nov 2, 2022 at 17:17 UTC 8be1c312f1e13aff5154460963211ba8821c53d9
1 file changed +37
diagnostics/dump-init.sh new
+37
@@ -0,0 +1,37 @@
1 +#! /bin/bash
2 +
3 +set -ue
4 +
5 +if [ $(whoami) != "root" ]; then
6 + echo "This script must be run as root in the system distro (via wsl.exe -u root --system)"
7 + exit 1
8 +fi
9 +
10 +ts=$(date +%F_%H-%M-%S)
11 +target="/mnt/c/wsl-init-dump-$ts"
12 +
13 +mkdir -p "$target"
14 +
15 +tdnf install -y gdb
16 +
17 +bash -c "cd $target && gcore -a \$(pgrep init)"
18 +
19 +stack_log="$target/stacks.txt"
20 +fd_log="$target/fd.txt"
21 +for pid in $(pgrep init); do
22 + echo -e "\nProcess: $pid" >> "$stack_log"
23 + echo -e "\nProcess: $pid" >> "$fd_log"
24 + for tid in $(ls "/proc/$pid/task" || true); do
25 + echo "tid: $tid" >> "$stack_log"
26 + cat "/proc/$pid/task/$tid/stack" >> "$stack_log" || true
27 + done
28 +
29 + ls -la "/proc/$pid/fd" >> "$fd_log" || true
30 +done
31 +
32 +
33 +ss -lap --vsock > "/$target/sockets.txt"
34 +dmesg > "/$target/dmesg.txt"
35 +cat /proc/meminfo > "/$target/meminfo.txt"
36 +
37 +echo "Logs and dumps written in $target"