GithubHelp home page GithubHelp logo

clavin / dumpy Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 4.18 MB

Dumpy is a Web application that digests dumps from applications that have either πŸ’₯ crashed πŸ”₯ or simply decided to take a dump. ✨

Home Page: https://clavin.github.io/Dumpy/

License: MIT License

Rust 11.48% HTML 3.60% JavaScript 3.35% Svelte 52.25% CSS 2.18% TypeScript 27.15%
minidump rust svelte vitejs

dumpy's Introduction

./src/assets/dumpy.svg

Hiya, I'm Dumpy.

I'm the crash assistant and my job is to help you with your (crash) dumps.

✧ο½₯゚: * ✦ . ο½₯゚

πŸ“„ Dumpy

Dumpy is a Web application that digests dumps from applications that have either πŸ’₯ crashed πŸ”₯ or simply decided to take a dump. ✨ These dumps contain a trove of data about the running (or not running) state of an application, such as:

  • The address of a malformed instruction or incorrect memory read
  • Call stack traces
  • Information about the processor and its registers
  • Sometimes an associated error message and other more gifts

Dumpy formats and displays all this information in an interactive and purpose-built interface. Whether you need to skim the important bits quickly or dive deep into a dump, Dumpy can help you with your dumps. 😊

A screenshot of this web application displaying a sample dump.

Tell Me More...

🚧 Work in Progress

First and foremost, Dumpy is not a completed project. Much of Dumpy's potential is still to be realized. Still, Dumpy is already helpful enough to

πŸ•ΈοΈ Local Dump Parsing

When you give a precious dump to Dumpy, that dump isn't uploaded anywhere. Dumpy is powerful enough to parse and analyze your dump on your own machine. Dump parsing is powered by a WebAssembly module written in Rust.

Currently, the only dump format supported is the minidump format, used by Google Chrome/Chromium, Firefox, and Windows, among others. In particular, the library Dumpy uses to process minidump files supports the dumps produced by the MinidumpWriteDump API on Windows as well as the Google Breakpad library.1

πŸ“ To-do

  • Demo: produce a GitHub Pages demo branch
  • Symbols: the names and other source information that helps enrich a dump
    • Symbolication: the process of enriching a dump using symbols
    • Symbol Servers: ability to specify servers to fetch symbols from
    • Local Symbols: ability to use local symbol files
    • Custom Symbol Proxy: a symbol proxy to let the web app retrieve symbols from servers that don't include an appropriate Content Security Policy header.
      • This symbol proxy should be able to run locally as well as deployed.
  • Modules: a view for the modules in a dump
  • Sidebar: it would be nice for the sidebar to actually do something :) but at least it looks pretty.
  • Dark theme: your eyes are important.

How Do I Use It?

If you need a sample file to test with, I've included one in this repo! 😊 I have 'borrowed' this dump from the rust-minidump project's test files.

🌐 Web

You can try the online demo. If you need one, you can use this sample dump file.

πŸ’» Locally

What you'll need:

  • A recent version of Node.js, I'd ballpark it to be version 16+
    • NPM, which generally comes with Node.js
  • wasm-pack to build the dump processor
  1. Grab your copy of this repository

    $ git clone https://github.com/clavin/Dumpy.git
    $ cd Dumpy
  2. Install the project build dependencies

    $ npm install
  3. Build the dump processor crate

$ cd crate
$ wasm-pack build

$ cd ..
  1. Build the web app

    $ npm run build
    
    # (If you need to specify any additional Vite options, like `--base`, this is
    # the place to do it.)
  2. Enjoy! The web app is available in the dist/ directory. πŸŽ‰

  • Alternatively, if you're looking to hack on Dumpy, I would recommend using the npm run dev command for an ergonomic web development workflow.

πŸ† Credits & Kudos

Footnotes

  1. Supported formats according to the minidump crate as of 2023 April 16. ↩

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.