Quick Guide: Reading and Interpreting AppCrashView Reports
AppCrashView is a lightweight Windows utility that reads application crash records collected by Windows Error Reporting (WER) and displays them in a compact, searchable list. This guide walks you through opening AppCrashView reports, understanding the key fields, and using that information to diagnose and prioritize application crashes.
1. Open and filter the report
- Launch AppCrashView and let it load crash events from the local machine.
- Use the search box to filter by application name, EXE filename, or faulting module.
- Sort columns (click a column header) to prioritize by date, crash count, or process name.
2. Key columns explained
- Date/Time: When the crash occurred. Use this to correlate with user reports or logs.
- Application Name / Process Name: The user-facing name and the executable that crashed (e.g., chrome.exe). This identifies which program failed.
- Crash Count: How many times the same fault has occurred. Higher counts indicate recurring issues worth prioritizing.
- Crash Type / Exception Code: The exception code (e.g., 0xC0000005 for access violation). Common codes:
- 0xC0000005 — Access violation (invalid memory access)
- 0xC0000409 — Stack buffer overrun / stack cookie failure
- STATUS_INVALID_IMAGE_FORMAT — Bad binary (often 32-bit vs 64-bit mismatch)
- Fault Module / Fault Module Version: The DLL or EXE where the fault happened and its version. Use this to determine whether a third-party module or your own code triggered the crash.
- Fault Address: The memory address where the crash occurred; useful when combined with debug symbols and disassembly.
- Process ID (PID): Useful for correlating with other logs captured at that PID.
- User Name / Machine Name: Which user and computer experienced the crash — helpful for reproducing or identifying scope.
3. Prioritize which crashes to investigate
- Focus first on high Crash Count and recent Date/Time entries.
- Target crashes affecting multiple users or many machines.
- Prioritize crashes in your own application binary or in modules you control.
- If a crash is in a third-party module, check vendor updates or known issues before deep investigation.
4. Triage steps for a single crash entry
- Note the Process Name, Fault Module, and Exception Code.
- Check the Fault Module Version against the version you expect; outdated or mismatched versions can cause crashes.
- Use the Fault Address with your symbol files (PDBs) and your debugger (WinDbg, Visual Studio) to get a call stack and source line.
- Search release notes / issue trackers for the fault module and exception code.
- If reproducible, capture a live dump or enable more verbose logging and reproduce with a debugger attached.
- For access violations, review recent changes that touch memory management, pointers, threading, or unsafe native interop.
5. Using AppCrashView data with other tools
- Export the selected rows to CSV for bulk analysis or for importing into tracking systems.
- Cross-reference timestamps and PIDs with Windows Event Viewer, IIS logs, or application logs.
- Use WinDbg + symbols to resolve fault addresses to function names and source lines.
- Combine with performance metrics and telemetry to see if crashes align with spikes or resource exhaustion.
6. Common patterns and quick fixes
- Crashes after an update: Roll back or verify the update; check for mismatched module versions.
- Crashes only on specific machines: Check drivers
Leave a Reply
You must be logged in to post a comment.