1#!/bin/bash 2set -e 3 4SCRIPT_DIR="$(cd $(dirname $0) && pwd)" 5 6PREBUILTS_DIR="$SCRIPT_DIR/../../../../prebuilts" 7 8# Determine OS and architecture 9OS=$(uname -s) 10ARCH=$(uname -m) 11 12# Select the appropriate JDK path 13case "$OS:$ARCH" in 14 Linux:x86_64) 15 JDK_PATH="$PREBUILTS_DIR/jdk/jdk21/linux-x86/bin" 16 ;; 17 Darwin:x86_64) 18 JDK_PATH="$PREBUILTS_DIR/jdk/jdk21/darwin-x86/bin" 19 ;; 20 Darwin:arm64) 21 JDK_PATH="$PREBUILTS_DIR/jdk/jdk21/darwin-arm64/bin" 22 ;; 23 *) 24 echo "Unsupported OS/architecture: $OS:$ARCH" >&2 25 exit 1 26 ;; 27esac 28 29# Use the correct jps and jstack 30jps="$JDK_PATH/jps" 31jstack="$JDK_PATH/jstack" 32 33javaProcessesOutput="$($jps -lmv | grep -v jps)" 34echo 35echo "Outputting java stack information to stdout (see build.log)" >&2 36echo "Java processes: $javaProcessesOutput" 37echo 38javaPids="$(echo "$javaProcessesOutput" | sed 's/ .*//g')" 39echo "Getting stack for processes: $javaPids" 40echo 41for pid in $javaPids; do 42 echo "$jstack $pid" 43 "$jstack" "$pid" || true 44 echo 45done 46echo "Done getting stack for processes: $javaPids" 47