Bugreport Analyzer (VS Code Extension)
Comprehensive Android bugreport analyzer and visualizer for VS Code. Analyze GPS routes, CPU/memory usage, process information, and GNSS registrations—all in an interactive tabbed interface with HTML export capability.
Features
Core
- Command Palette:
Bugreport Analyzer: Run
- Keybinding:
Ctrl+Shift+M
- Efficient Streaming: Handles very large bugreports (88MB+) without loading entire file into memory
- Unified Parser: Single-pass streaming parser for all data types
- Tabbed Interface: Five organized tabs for different data views
- HTML Export: Generate standalone HTML reports that can be shared and viewed in any browser
GPS Route Tab
- Interactive Map: Powered by Leaflet with layer switching
- Street View (default): Clean CartoDB Voyager tiles
- Satellite View: High-quality Esri World Imagery
- Layer control in top-right corner to switch views
- Route Visualization:
- Parses GPS_LOCATION coordinates:
[latitude*1e7, longitude*1e7]
- Minute-based color segmentation (10-color palette)
- Start marker (green 🚀) and end marker (red 🏁)
- Sampled intermediate points
- Auto-zoom to route bounds
- Hover Tooltips: Show time, lat/lng on mouseover (no clicking required)
CPU Usage Tab
- All Apps Displayed: Shows complete CPU usage for every app (no 50-app limit)
- Sortable Table: Click column headers to sort by usage, user, kernel, or app name
- Detailed Breakdown: User % and Kernel % for each application
- Summary Statistics: Total CPU usage across all processes
Memory Tab
- Comprehensive Memory Analysis: Full MEMINFO parsing for all apps
- Expandable Rows: Click any app to see detailed memory breakdown
- Total PSS, Total RSS
- Native Heap, Dalvik Heap
- Stack, Code, Graphics
- Private/Shared Clean/Dirty memory
- Optimized Performance: Fixed parser to avoid capturing non-memory data (reduced 144MB overhead to KB)
- Sortable: Order by any memory metric
TOP Output Tab (NEW)
- System Overview:
- Thread statistics (total, running, sleeping, stopped, zombie)
- Memory usage (total, used, free, buffers)
- Swap information
- CPU breakdown (user, nice, sys, idle, iow, irq, sirq, host)
- Process Table: Complete process listing with sortable columns
- PID, TID, User, Priority, Nice
- CPU percentage, State
- VIRT and RES (sorted numerically, handles "10G", "178M" format correctly)
- PCY, Command, Name
Display Tab (NEW)
- SurfaceFlinger Visualization: Visual representation of Android display layers
- Display List: Shows all displays with resolution and layer count
- Interactive Layer Canvas:
- Visual representation of all layers with z-order
- Each layer shown with unique color
- Scaled to fit canvas while maintaining aspect ratio
- Layer Controls:
- Checkbox for each layer to show/hide
- Click to toggle individual layers on/off
- See layer stacking in real-time
- Layer Details:
- Name, type, z-order
- Frame coordinates
- Alpha, transform, color properties
- Crop and viewport information
Usage
- Open a bugreport file
- Run the analyzer:
- Via Command Palette:
Bugreport Analyzer: Run
- Or press:
Ctrl+Shift+M
- View results in the Analyzer webview with six tabs:
- 🗺️ GPS Route (auto-selected) - Interactive map with street/satellite views
- 📊 CPU Usage - All apps with CPU consumption
- 💾 Memory - Detailed memory analysis with expandable rows
- ⚙️ Top - System overview and process table
- �️ Display - SurfaceFlinger layer visualization
- �📡 GNSS Registrations - Registration timeline
- Interact with data:
- Click tab headers to switch views
- Click table headers to sort columns
- Hover over map markers for details
- Click memory app rows to expand/collapse details
- Use layer control on map to switch between street and satellite views
- Click displays to visualize their layers, toggle layers on/off to inspect composition
- Export HTML (optional):
- The HTML report is automatically generated and can be opened in your default browser
- Standalone file can be shared with others
- All data and functionality embedded (works offline)
License
Provided as-is for internal tooling and analysis purposes.
| |