Skip to content

alexcrichton/console_error_panic_hook

 
 

Repository files navigation

console_error_panic_hook

Build Status

This crate lets you debug panics on wasm32-unknown-unknown by providing a panic hook that forwards panic messages to console.error.

When an error is reported with console.error, browser devtools and node.js will typically capture a stack trace and display it with the logged error message.

Without console_error_panic_hook you just get something like RuntimeError: Unreachable executed

Console without panic hook

With this panic hook installed you will see the panic message

Console with panic hook set up

Usage

There are two ways to install this panic hook.

First, you can set the hook yourself by calling std::panic::set_hook in some initialization function:

extern crate console_error_panic_hook; use std::panic; fn my_init_function() { panic::set_hook(Box::new(console_error_panic_hook::hook)); // ... }

Alternatively, use set_once on some common code path to ensure that set_hook is called, but only the one time. Under the hood, this uses std::sync::Once.

extern crate console_error_panic_hook; struct MyBigThing; impl MyBigThing { pub fn new() -> MyBigThing { console_error_panic_hook::set_once(); MyBigThing } }

About

A panic hook for wasm32-unknown-unknown that logs panics with console.error

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 100.0%