assafvayner's picture
assafvayner HF Staff
initial
9e075cf
|
raw
history blame
2.53 kB
# πŸ” Backtrace Viewer
A modern web application for viewing and analyzing backtrace files from sampling profilers, built with Svelte.
## Features
- **πŸ“ File Upload**: Load your own backtrace files or use the included sample
- **πŸ” Thread Filtering**: Filter threads by name using exact prefix matching
- **πŸ‘€ Toggle Views**: Expand/collapse individual threads to focus on what matters
- **πŸ“Š Collapsible Backtraces**: Click on any backtrace line to collapse/expand sections
- **πŸ“± Responsive Design**: Works great on desktop and mobile devices
- **⚑ Fast Performance**: Built with Svelte for optimal performance
## Getting Started
### Prerequisites
- Node.js (version 14 or higher)
- npm or yarn
### Installation
1. Clone or navigate to the project directory:
```bash
cd backtrace-viewer
```
2. Install dependencies:
```bash
npm install
```
3. Start the development server:
```bash
npm run dev
```
4. Open your browser to `http://localhost:5173`
### Building for Production
```bash
npm run build
```
The built files will be in the `dist/` directory.
## Usage
### Loading Files
- The app will automatically load `sample.txt` when you open it
- Click "πŸ“ Load Backtrace File" to upload your own backtrace files
- Supported format: Text files from sampling profilers (like macOS `sample` command)
### Filtering Threads
- Use the filter input to find threads by name
- Only shows threads whose names start with your filter text (case-insensitive)
- Thread names are extracted from the part after the `:` in thread headers
### Viewing Backtraces
- Click on any thread header to expand/collapse its backtrace
- Click on individual backtrace lines to collapse/expand sections
- Indentation shows the call hierarchy
- Sample counts and function names are highlighted for easy reading
### File Format Support
The viewer supports backtrace files with this format:
```
6963 Thread_10032126: hf-xet-0
+ 6963 thread_start (in libsystem_pthread.dylib) + 8 [0x19e40ab80]
+ 6963 _pthread_start (in libsystem_pthread.dylib) + 136 [0x19e40fc0c]
+ 6963 pythread_wrapper (in Python) + 48 [0x104da7cd0]
...
```
Where:
- Thread headers: `{count} Thread_{id}: {name}`
- Thread names: Optional part after `:`
- Backtrace lines: Indented with `+`, `!`, `:`, `|` characters
- Sample counts, function names, and addresses are automatically highlighted
## Contributing
Feel free to open issues or submit pull requests to improve the viewer!
## License
MIT License