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"