panicparse - Crash your app in style (Golang)

  •        29

Parses panic stack traces, densifies and deduplicates goroutines with similar stack traces. Helps debugging crashes and deadlocks in heavily parallelized process.pp streams its stdin to stdout as long as it doesn't detect any panic. panic() and Go's native deadlock detector print to stderr via the native print() function.

https://maruel.net/post/pre-commit-go/#19
https://github.com/maruel/panicparse

Tags
Implementation
License
Platform

   




Related Projects

RxJava2Debug - RxJava 2.x extension to provide meaningful Stack Traces

  •    Java

A library to make StackTraces involving RxJava2 more meaningful (they will always point to your code!). If you use RxJava2, you know the pain of debugging exceptions generated somwhere across the stream, in another thread, in a nested stream, ... The StackTrace provided by RxJava2 will tell you almost nothing. Even more, if you are using systems like Crashlytics to collect reports for and Android app, most RxJava-related crashes will be reported as a single error instance (omg, no way to fix that).

stacktrace - Stack traces for Go errors

  •    Go

Look at Palantir, such a Java shop. I can't believe they want stack traces in their Go code.Note that stack traces are not designed to be user-visible. We have found them to be valuable in log files of server applications. Nobody wants to see these in CLI output or a web interface or a return value from library code.

Ben.Demystifier - High performance understanding for stack traces (Make error logs more productive)

  •    CSharp

.NET stack traces output the compiler transformed methods; rather than the source code methods, which make them slow to mentally parse and match back to the source code. The current output was good for C# 1.0; but has become progressively worse since C# 2.0 (iterators, generics) as new features are added to the .NET languages and at C# 7.1 the stack traces are esoteric (see: Problems with current stack traces).

longjohn - Long stack traces for node.js inspired by https://github.com/tlrobinson/long-stack-traces

  •    CoffeeScript

I wrote this while trying to add long-stack-traces to my server and realizing that there were issues with support of EventEmitter::removeListener. The node HTTP Server will begin to leak callbacks and any of your own code that relies on removing listeners would not work as anticipated. Longjohn collects a large amount of data in order to provide useful stack traces. While it is very helpful in development and testing environments, it is not recommended to use longjohn in production. The data collection puts a lot of strain on V8's garbage collector and can greatly slow down heavily-loaded applications.


errorx - A comprehensive error handling library for Go

  •    Go

Conventional approach towards errors in Go is quite limited.

TraceKit - Attempts to create stack traces for unhandled JavaScript exceptions in all major browsers

  •    Javascript

In order to get stack traces, you need to wrap your code in a try/catch block like above. Otherwise the error hits window.onerror handler and will only contain the error message, line number, and column number. You also need to throw errors with throw new Error('foo') instead of throw 'foo'.

node-stack-trace - Get v8 stack traces as an array of CallSite objects.

  •    Javascript

Get v8 stack traces as an array of CallSite objects.Please note that parsing the Error#stack property is not perfect, only certain properties can be retrieved with it as noted in the API docs below.

node-source-map-support - Adds source map support to node.js (for stack traces)

  •    Javascript

This module provides source map support for stack traces in node via the V8 stack trace API. It uses the source-map module to replace the paths and line numbers of source-mapped files with their original paths and line numbers. The output mimics node's stack trace format with the goal of making every compile-to-JS language more of a first-class citizen. Source maps are completely general (not specific to any one language) so you can use source maps with multiple compile-to-JS languages in the same node process. If multiple sourceMappingURL comments exist in one file, the last sourceMappingURL comment will be respected (e.g. if a file mentions the comment in code, or went through multiple transpilers). The path should either be absolute or relative to the compiled file.

go-torch - Stochastic flame graph profiler for Go programs

  •    Go

Tool for stochastically profiling Go programs. Collects stack traces and synthesizes them into a flame graph. Uses Go's built in pprof library.go-torch will pass through arguments to go tool pprof, which lets you take existing pprof commands and easily make them work with go-torch.

trycatch - An asynchronous domain-based exception handler with long stack traces for node.js

  •    Javascript

A domain-based asynchronous try/catch with (optional) long stack traces for node.js optimized for V8. WARNING: trycatch replaces the built-in global Error object.

Logrus - Structured, pluggable logging for Go.

  •    Go

Logrus is a structured logger for Go (golang), completely API compatible with the standard library logger. There is a support to add hooks for logging levels. For example to send errors to an exception tracking service on Error, Fatal and Panic, info to StatsD or log to multiple places simultaneously, e.g. syslog.

gdbgui - Browser-based frontend to gdb (gnu debugger)

  •    Javascript

A modern, browser-based frontend to gdb (gnu debugger). Add breakpoints, view stack traces, and more in C, C++, Go, and Rust! Simply run gdbgui from the terminal and a new tab will open in your browser. gdbgui is easy to get started with yet supports scripting, and has terminal access while keeping the user interface in lock step with the underlying gdb process.

ArxLibertatis - Cross-platform port of Arx Fatalis, a first-person role-playing game

  •    C++

Arx Libertatis is based on the publicly released Arx Fatalis source code. The source code is available under the GPLv3+ license with some additional terms - see the COPYING and LICENSE files for details. While the crash reporter can be run without GDB, it's main usefulness comes from generating and submitting detailed back-traces in the event of a crash. On non-window systems we use GDB, the GNU Debugger, to accomplish that. If you want to help out the arx project, please install GDB before running arx. GDB is however purely a run-time dependency and is not needed when building the crash reporter.

rex - Shellphish's automated exploitation engine, originally created for the Cyber Grand Challenge.

  •    Python

At the moment rex offers a couple of features, crash triaging, crash exploration, and exploitation for certain kinds of crashes. In the example below, we take a crashing input for legit_00003 discovered by AFL. The vulnerability is a simple buffer overflow on the stack, however, before the vulnerable function returns it calls memcpy with a destination parameter which was overwritten during the stack smash. While rex doesn't know how to exploit an arbitrary memcpy call (yet), it can be told to explore the crash until it finds an exploitation primitive which it knows how to exploit.

long-stack-traces - Long stacktraces for V8 implemented in user-land JavaScript

  •    Javascript

Long stacktraces for V8 implemented in user-land JavaScript. Supports Chrome/Chromium and Node.js. NOTE: there are various issues such as memory leaks (due to very long stack traces). This should not be used in production.

Lynx - Lynx is an Android library created to show a custom view with all the information Android logcat is printing, different traces of different levels will be rendererd to show from log messages to your application exceptions

  •    Java

Lynx is an Android library created to show a custom view with all the information logcat is printing, different traces of different levels will be rendererd to show from log messages to your application exceptions. You can filter this traces (using regular expressions if you want), share your logcat to other apps, configure the max number of traces to show or the sampling rate used by the library. The min Api Level supported is 10. To be able to show LynxActivity shaking your phone or starting it programatically you'll have to add LynxActivity to your AndroidManifest.

awesome-ios - A curated list of awesome iOS ecosystem, including Objective-C and Swift Projects

  •    Swift

A curated list of awesome iOS frameworks, libraries, tutorials, Xcode extensions and plugins, components and much more. The list is divided into categories such as Frameworks, Components, Testing and others, open source projects, free and paid services. There is no pre-established order of items in each category, the order is for contribution. If you want to contribute, please read the guide. Instabug has just released their visual repro steps feature to enable you to trace all the views that the user interacted with before a bug or a crash occured. This will help you reproduce bugs and fix them 10x faster. We highly recommend integrating Instabug’s framework as they compiled a lot of other great features like network logs and screen annotations, providing you with useful and rich data attached to each bug or crash report. Instabug is offering awesome-ios community an exclusive 15% discount on all paid plans. Go to 1 minute integration guide.

go-libp2p - libp2p implementation in Go

  •    Go

libp2p is a networking stack and library modularized out of The IPFS Project, and bundled separately for other tools to use. libp2p is the product of a long, and arduous quest of understanding -- a deep dive into the internet's network stack, and plentiful peer-to-peer protocols from the past. Building large scale peer-to-peer systems has been complex and difficult in the last 15 years, and libp2p is a way to fix that. It is a "network stack" -- a protocol suite -- that cleanly separates concerns, and enables sophisticated applications to only use the protocols they absolutely need, without giving up interoperability and upgradeability. libp2p grew out of IPFS, but it is built so that lots of people can use it, for lots of different projects.

NSLogger - A modern, flexible logging tool

  •    Objective-C

NSLogger is a high performance logging utility which displays traces emitted by client applications running on macOS, iOS and Android. It replaces traditional console logging traces (NSLog(), Java Log). The NSLogger Viewer runs on macOS and replaces Xcode, Android Studio or Eclipse consoles. It provides powerful additions like display filtering, defining log domain and level, image and binary logging, message coloring, traces buffering, timing information, link with source code, etc.