All Projects → massemanet → Redbug

massemanet / Redbug

Licence: mit
erlang tracing debugger

Programming Languages

erlang
1774 projects

Projects that are alternatives of or similar to Redbug

Postmortem
A simple debug library for Clojure(Script) that features data-oriented logging and tracing
Stars: ✭ 143 (-10.06%)
Mutual labels:  debugging, tracing
iopipe-go
Go agent for AWS Lambda metrics, tracing, profiling & analytics
Stars: ✭ 18 (-88.68%)
Mutual labels:  debugging, tracing
iopipe-js
Build and run serverless apps with confidence on AWS Lambda with Tracing, Profiling, Metrics, Monitoring, and more.
Stars: ✭ 33 (-79.25%)
Mutual labels:  debugging, tracing
Elinux
嵌入式 Linux 知识库 (elinux.org) 中文翻译计划;本项目发起人发布了《360° 剖析 Linux ELF》视频课程,欢迎订阅:https://www.cctalk.com/m/group/88089283
Stars: ✭ 193 (+21.38%)
Mutual labels:  tracing, debugging
Re Frame 10x
A debugging dashboard for re-frame. X-ray vision as tooling.
Stars: ✭ 491 (+208.81%)
Mutual labels:  tracing, debugging
elixir-fire-brigade-workshop
Workshop "Join the Elixir Fire Brigade - Level-up Your Elixir Debugging Skills" (ElixirConf US 2017)
Stars: ✭ 14 (-91.19%)
Mutual labels:  debugging, tracing
serverless-lumigo-plugin
Serverless monitoring and troubleshooting plugin to easily apply distributed tracing
Stars: ✭ 59 (-62.89%)
Mutual labels:  debugging, tracing
Ghostwheel
Hassle-free inline clojure.spec with semi-automatic generative testing and side effect detection
Stars: ✭ 556 (+249.69%)
Mutual labels:  tracing, debugging
Icebox
Virtual Machine Introspection, Tracing & Debugging
Stars: ✭ 422 (+165.41%)
Mutual labels:  tracing, debugging
Tapping device
TappingDevice makes objects tell you what they do, so you don't need to track them yourself.
Stars: ✭ 296 (+86.16%)
Mutual labels:  tracing, debugging
Tensor Sensor
The goal of this library is to generate more helpful exception messages for numpy/pytorch matrix algebra expressions.
Stars: ✭ 532 (+234.59%)
Mutual labels:  tracing, debugging
Rexbug
A thin Elixir wrapper for the redbug Erlang tracing debugger.
Stars: ✭ 126 (-20.75%)
Mutual labels:  tracing, debugging
Gdb Frontend
☕ GDBFrontend is an easy, flexible and extensionable gui debugger.
Stars: ✭ 2,104 (+1223.27%)
Mutual labels:  debugging
Inappviewdebugger
A UIView debugger (like Reveal or Xcode) that can be embedded in an app for on-device view debugging
Stars: ✭ 1,805 (+1035.22%)
Mutual labels:  debugging
Pdt
PHP Development Tools project (PDT)
Stars: ✭ 135 (-15.09%)
Mutual labels:  debugging
Simple Go Server
A simple golang web server with basic logging, tracing, health check, graceful shutdown and zero dependencies
Stars: ✭ 136 (-14.47%)
Mutual labels:  tracing
Java Specialagent
Automatic instrumentation for 3rd-party libraries in Java applications with OpenTracing.
Stars: ✭ 156 (-1.89%)
Mutual labels:  tracing
Wonolog
Monolog-based logging package for WordPress.
Stars: ✭ 142 (-10.69%)
Mutual labels:  debugging
Cargo Flash
a cargo extension for programming microcontrollers
Stars: ✭ 134 (-15.72%)
Mutual labels:  debugging
Android Remote Debugger
A library for remote logging, database debugging, shared preferences and network requests
Stars: ✭ 132 (-16.98%)
Mutual labels:  debugging

Build Status

DESCRIPTION

redbug is a tool to interact with the Erlang trace facility. It will instruct the Erlang VM to generate so-called 'trace messages' when certain events (such as a particular function being called) occur. It uses a safe subset of the tracing functionality, and exits if it feels overloaded, e.g. if it gets flooded by trace messages. It runs in the background, collecting trace messages, until it reaches one of its termination criteria (number of messages/file size or elapsed time).

The trace messages are either printed (i.e. human readable) to a file or to the screen; or written to a trc file. Using a trc file puts less stress on the system, but there is no way to count the messages (so the 'msgs' opt is ignored), and the files can only be read by special tools (such as 'bread'). Printing and trc files cannot be combined. By default (i.e. if the 'file' opt is not given), messages are printed.

DOCUMENTATION

Run reba3 edoc or check the online docs at hexdocs.

EXAMPLES

Basic call trace

  1> redbug:start("erlang:demonitor").

  % 18:27:21 <0.188.0>({erlang,apply,2})
  % erlang:demonitor(#Ref<0.2419348116.2832203778.12948>)

  % 18:27:21 <0.188.0>({erlang,apply,2})
  % erlang:demonitor(#Ref<0.2419348116.2832203777.10938>, [flush])

  % 18:27:21 <0.188.0>({erlang,apply,2})
  % erlang:demonitor(#Ref<0.2419348116.2832203777.10939>, [flush])

  % 18:27:21 <0.188.0>({erlang,apply,2})
  % erlang:demonitor(#Ref<0.2419348116.2832203777.10940>, [flush])
  redbug done, timeout - 4

As above, but also print return value. The return value is a separate message.

  2> redbug:start("erlang:demonitor->return",[{msgs,2}]).
  {75,2}

  % 18:31:15 <0.188.0>({erlang,apply,2})
  % erlang:demonitor(#Ref<0.2419348116.2832203780.10535>)

  % 18:31:15 <0.188.0>({erlang,apply,2})
  % erlang:demonitor/1 -> true
  redbug done, msg_count - 1

As above, also print the call stack. Note that not all functions in the call chain are on the stack, only functions we will return to (this is a consequence of tail call optimization.)

  3> redbug:start("erlang:demonitor->return,stack",[{msgs,2}]).
  {75,2}

  % 18:32:54 <0.188.0>({erlang,apply,2})
  % erlang:demonitor(#Ref<0.2419348116.2832203778.13012>)
  %   redbug:block_a_little/0 
  %   redbug:start/2 
  %   erl_eval:do_apply/6 
  %   shell:exprs/7 
  %   shell:eval_exprs/7 
  %   shell:eval_loop/3 

  % 18:32:54 <0.188.0>({erlang,apply,2})
  % erlang:demonitor/1 -> true
  redbug done, msg_count - 1
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].