Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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
Expand Down
33 changes: 21 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -53,14 +53,18 @@ 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)
- **Device** – Hardware specs, OS info, battery, network status
- **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

<img src="art/readme_debug_panel.gif" alt="Debug Panel">
<p>
<img src="art/readme_debug_panel.gif" alt="Debug Panel" width="256">
<img src="art/readme_crash_log.png" alt="Crash Log Detail" width="256">
</p>

## Installation

Expand All @@ -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" }
Expand All @@ -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")
}
```

Expand Down Expand Up @@ -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")
}
```

Expand Down Expand Up @@ -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,
Comment thread
Manabu-GT marked this conversation as resolved.
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")
}
```

Expand Down Expand Up @@ -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")
}
```

Expand Down Expand Up @@ -365,7 +374,7 @@ android {
}

dependencies {
"releaseWithOverlayImplementation"("com.ms-square:debugoverlay:2.6.3")
"releaseWithOverlayImplementation"("com.ms-square:debugoverlay:2.7.0")
}
```

Expand Down
Binary file added art/readme_crash_log.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading