#!/bin/bash # Script to get detailed EnConvo crash information echo "=== EnConvo Crash Details Collector ===" echo "" # 1. Check for crash reports echo "1. Recent Crash Reports:" CRASH_REPORTS=$(ls -t ~/Library/Logs/DiagnosticReports/*EnConvo* 2>/dev/null | head -3) if [ -z "$CRASH_REPORTS" ]; then echo " No crash reports found in DiagnosticReports" else echo " Found crash reports:" echo "$CRASH_REPORTS" | while read report; do echo " - $(basename "$report")" done fi echo "" # 2. Get the most recent crash report summary echo "2. Most Recent Crash Report Summary:" LATEST_CRASH=$(ls -t ~/Library/Logs/DiagnosticReports/*EnConvo* 2>/dev/null | head -1) if [ -n "$LATEST_CRASH" ]; then echo " File: $(basename "$LATEST_CRASH")" echo "" echo " Exception Type:" grep -A 5 "Exception Type:" "$LATEST_CRASH" 2>/dev/null | head -6 || echo " (Not found)" echo "" echo " Crashed Thread:" grep -A 10 "Crashed Thread:" "$LATEST_CRASH" 2>/dev/null | head -11 || echo " (Not found)" echo "" echo " Application Specific Information:" grep -A 5 "Application Specific Information:" "$LATEST_CRASH" 2>/dev/null | head -6 || echo " (Not found)" else echo " No crash report found. The app may have exited without creating one." fi echo "" # 3. Check Console logs echo "3. Recent Console Logs (last 30 seconds):" log show --predicate 'process == "EnConvo" AND eventMessage CONTAINS "error" OR eventMessage CONTAINS "crash" OR eventMessage CONTAINS "exception"' --last 30s --style compact 2>/dev/null | tail -10 || echo " (No relevant logs found)" echo "" echo "=== To view full crash report, run: ===" if [ -n "$LATEST_CRASH" ]; then echo "open '$LATEST_CRASH'" else echo "# No crash report found yet" echo "# After the crash, run: ls -t ~/Library/Logs/DiagnosticReports/*EnConvo* | head -1 | xargs open" fi