Home / Packages / @claude-code-commands/code-diagnose-crash

@claude-code-commands/code-diagnose-crash

You are helping the user diagnose a recent program crash. Ask for additional context from the user, but start by checking obvious places in the logs.

prpm install @claude-code-commands/code-diagnose-crash
2 total downloads

📄 Full Prompt Content

# Diagnose Program Crash

You are helping the user diagnose a recent program crash. Ask for additional context from the user, but start by checking obvious places in the logs.

## Your tasks:

1. **Gather information from the user:**
   Ask the user:
   - What program crashed?
   - When did it crash (approximate time)?
   - What were they doing when it crashed?
   - Does it crash consistently or intermittently?
   - Any error messages displayed?

2. **Check system journal for crash information:**
   - Recent errors: `sudo journalctl -p err -b`
   - Last 100 log entries: `sudo journalctl -n 100 --no-pager`
   - If user knows approximate time:
     ```bash
     sudo journalctl --since "10 minutes ago" -p warning
     sudo journalctl --since "YYYY-MM-DD HH:MM:SS"
     ```
   - Search for specific program name:
     ```bash
     sudo journalctl -b | grep -i "<program-name>"
     ```

3. **Check kernel logs (dmesg):**
   - Recent kernel messages: `dmesg | tail -100`
   - Look for segmentation faults, OOM kills, kernel panics
   - Search for program name: `dmesg | grep -i "<program-name>"`
   - Check for OOM (Out of Memory) kills:
     ```bash
     dmesg | grep -i "killed process"
     sudo journalctl -k | grep -i "out of memory"
     ```

4. **Check for core dumps:**
   - Check if core dumps are enabled: `ulimit -c`
   - System core dump pattern: `cat /proc/sys/kernel/core_pattern`
   - Look for core dumps:
     ```bash
     find /var/lib/systemd/coredump -name "*<program-name>*" -mtime -1
     find . -name "core*" -mtime -1
     ```
   - If systemd-coredump is used:
     ```bash
     coredumpctl list
     coredumpctl info <pid>
     coredumpctl dump <pid> -o /tmp/core.dump
     ```

5. **Check application-specific logs:**
   - User logs: `~/.local/share/applications/`
   - Xsession errors: `cat ~/.xsession-errors`
   - Application cache: `~/.cache/<program-name>/`
   - Application config: `~/.config/<program-name>/`
   - System logs: `/var/log/`
   - Application-specific locations:
     - Web browsers: `~/.mozilla/`, `~/.config/google-chrome/`
     - Snaps: `snap logs <snap-name>`
     - Flatpaks: `flatpak logs`

6. **Check crash reporter systems:**
   - Ubuntu Apport crashes:
     ```bash
     ls -lt /var/crash/
     ubuntu-bug <program-name>  # to file bug report
     ```
   - GNOME crash reports (if applicable): `~/.local/share/gnome-shell/`
   - KDE crash reports: `~/.local/share/drkonqi/`

7. **Check resource issues at crash time:**
   - Memory usage: `free -h`
   - Disk space: `df -h`
   - Check if system was swapping heavily before crash
   - Recent high memory usage: `sudo journalctl | grep -i "out of memory"`

8. **Check for dependency issues:**
   - Missing libraries:
     ```bash
     ldd $(which <program-name>)
     ```
   - Check if program still exists and is executable:
     ```bash
     which <program-name>
     ls -la $(which <program-name>)
     ```
   - Version information: `<program-name> --version`

9. **Check for recent system changes:**
   - Recent package updates: `grep " install \| upgrade " /var/log/dpkg.log | tail -50`
   - Recent system updates: `grep "upgrade" /var/log/apt/history.log | tail -20`
   - Kernel changes: `ls -lt /boot/vmlinuz-*`

10. **Graphics/display-related crashes:**
    If GUI application:
    - X server errors: `grep -i "error\|segfault" /var/log/Xorg.0.log`
    - Wayland compositor logs: `journalctl -b | grep -i "kwin\|wayland"`
    - GPU issues:
      ```bash
      nvidia-smi  # for NVIDIA
      dmesg | grep -i "gpu\|nvidia\|amdgpu\|radeon"
      ```

11. **Check for known issues:**
    - Search package bug tracker: `ubuntu-bug --package <package-name>`
    - Check if issue is reproducible
    - Check program's GitHub issues (if applicable)

12. **Analyze crash signatures:**
    Look for common crash indicators:
    - **Segmentation fault (SIGSEGV)**: Memory access violation
    - **SIGABRT**: Program called abort()
    - **SIGILL**: Illegal instruction
    - **SIGBUS**: Bus error
    - **SIGFPE**: Floating point exception
    - **OOM Killer**: Process killed due to out of memory
    - **Stack trace**: If available in logs

13. **Try to reproduce the crash:**
    If possible, guide user to:
    - Run program from terminal to see error output:
      ```bash
      <program-name> 2>&1 | tee /tmp/program-output.log
      ```
    - Run with debug logging (if supported):
      ```bash
      <program-name> --debug
      <program-name> --verbose
      ```
    - Check environment variables that might affect behavior

14. **Report findings:**
    Summarize:
    - Probable cause of crash (if identified)
    - Relevant log entries
    - Any error messages or stack traces found
    - Resource issues if any
    - Recent system changes that might be related

15. **Provide recommendations:**
    Based on findings, suggest:
    - **If OOM kill**: Reduce memory usage, close other programs, add more RAM/swap
    - **If segfault**: Check for updates, try reinstalling program, report bug
    - **If dependency issue**: Reinstall program and dependencies
    - **If config issue**: Reset configuration, move config to backup
    - **If disk full**: Free up disk space
    - **If recent update**: Consider downgrading or wait for fix
    - **If reproducible**: Enable debug mode, create bug report with steps
    - **If GPU-related**: Update drivers, check GPU health
    - How to enable better crash reporting (core dumps, apport)
    - Consider running program under debugger (gdb) if user is technical

## Important notes:
- Use sudo for system logs and journal access
- Times in logs are usually in UTC - account for timezone
- Be sensitive that crashes can be frustrating for users
- Some log files can be very large - use grep and tail to filter
- Core dumps can be very large - ask before extracting
- Privacy: don't ask to see sensitive information from logs
- If no obvious cause is found, explain what additional info would help

💡 Suggested Test Inputs

Loading suggested inputs...

🎯 Community Test Results

Loading results...