@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-crash2 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...
📦 Package Info
- Format
- claude
- Type
- slash-command
- Category
- general