diff --git a/CHANGELOG.md b/CHANGELOG.md index 1774e84e..17d630e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Change Log +## Version 2.7.0 *(2026-08-08)* + +### New Features + +* **Crash logs** – Uncaught exceptions are now saved to disk and appear in a new **Crash** tab on the next launch, with the stack trace plus the logs and network requests leading up to the crash. Copy, share or delete each record; the 5 most recent are kept. No setup required, and any crash reporter you already use (e.g. Crashlytics) keeps working as before. Resolves [#231](https://github.com/Manabu-GT/DebugOverlay-Android/issues/231). + +### Changes + +* **Logcat now streams from app start** rather than only while the Logcat tab is open, so crash records include the logs leading up to a crash even if the panel was never opened. +* **`maxLogcatEntries` controls buffer retention only** – it no longer affects how much history is replayed when logging starts. + +### Build + +* Update AGP to 9.3.1. + ## Version 2.6.3 *(2026-08-06)* ### New Features diff --git a/README.md b/README.md index 807d28b8..2ca2e765 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ DebugOverlay gives you a lightweight, always-available look into your app's runt ```kotlin // app/build.gradle.kts -debugImplementation("com.ms-square:debugoverlay:2.6.3") +debugImplementation("com.ms-square:debugoverlay:2.7.0") // That's it! Overlay appears automatically on app launch. // Tap to open debug panel. Long-press to drag. @@ -53,6 +53,7 @@ Tap the overlay to open a full-screen diagnostic panel: - **Logcat** – Live system logcat stream with level filtering and search - **[Custom Log]** – Additional tab when using [Timber](#timber-log-capture) or custom log sources - **AppExits** – App exit (e.g., Crash/ANR) history on Android 11+ with stack traces +- **Crash** – Crashes from previous runs, with stack trace and the logs/network activity leading up to them ([details](#crash-logs)) - **Network** – Request list with timing and inspection ([setup required](#network-request-tracking)) - **JankStats** – Frame timing analysis and jank breakdown - **UI** – View hierarchy via [Radiography](https://github.com/square/radiography) @@ -60,7 +61,10 @@ Tap the overlay to open a full-screen diagnostic panel: - **Bug Report** – One-tap HTML report with screenshot and diagnostics - **Clear Logs** – Toolbar button to wipe Logcat/Timber/network entries so the next bug report covers only the repro window -Debug Panel +

+ Debug Panel + Crash Log Detail +

## Installation @@ -74,7 +78,7 @@ Add to `gradle/libs.versions.toml`: ```toml [versions] -debugoverlay = "2.6.3" +debugoverlay = "2.7.0" [libraries] debugoverlay = { module = "com.ms-square:debugoverlay", version.ref = "debugoverlay" } @@ -100,7 +104,7 @@ dependencies { ```kotlin // app/build.gradle.kts dependencies { - debugImplementation("com.ms-square:debugoverlay:2.6.3") + debugImplementation("com.ms-square:debugoverlay:2.7.0") } ``` @@ -155,8 +159,8 @@ For a zero-config shake trigger, add the shake extension: ```kotlin dependencies { - debugImplementation("com.ms-square:debugoverlay:2.6.3") - debugImplementation("com.ms-square:debugoverlay-extension-trigger-shake:2.6.3") + debugImplementation("com.ms-square:debugoverlay:2.7.0") + debugImplementation("com.ms-square:debugoverlay-extension-trigger-shake:2.7.0") } ``` @@ -202,14 +206,19 @@ DebugOverlay.configure { } ``` -The value also bounds the `logcat -T N` / `-t N` calls, so it caps how many lines the OS replays when the panel opens and when a bug report snapshot is captured. +### Crash logs + +No setup required. Crashes are saved to disk and shown in the **Crash** tab on the next launch, +with the stack trace and the last 100 log entries leading up to them — plus the last 100 requests +if [network tracking](#network-request-tracking) is configured. Copy, share or delete each; the 5 +most recent are kept. Your existing crash reporter is unaffected. ### Network request tracking ```kotlin dependencies { - debugImplementation("com.ms-square:debugoverlay:2.6.3") - debugImplementation("com.ms-square:debugoverlay-extension-okhttp:2.6.3") + debugImplementation("com.ms-square:debugoverlay:2.7.0") + debugImplementation("com.ms-square:debugoverlay-extension-okhttp:2.7.0") } ``` @@ -240,8 +249,8 @@ val client = OkHttpClient.Builder() ```kotlin dependencies { - debugImplementation("com.ms-square:debugoverlay:2.6.3") - debugImplementation("com.ms-square:debugoverlay-extension-timber:2.6.3") + debugImplementation("com.ms-square:debugoverlay:2.7.0") + debugImplementation("com.ms-square:debugoverlay-extension-timber:2.7.0") } ``` @@ -365,7 +374,7 @@ android { } dependencies { - "releaseWithOverlayImplementation"("com.ms-square:debugoverlay:2.6.3") + "releaseWithOverlayImplementation"("com.ms-square:debugoverlay:2.7.0") } ``` diff --git a/art/readme_crash_log.png b/art/readme_crash_log.png new file mode 100644 index 00000000..db4628c2 Binary files /dev/null and b/art/readme_crash_log.png differ