All Projects → janlelis → debugging

janlelis / debugging

Licence: MIT license
Improve your Print Debugging

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to debugging

Icecream Cpp
🍦 Never use cout/printf to debug again
Stars: ✭ 225 (+448.78%)
Mutual labels:  debugging, print
pydbg
Python implementation of the Rust `dbg` macro
Stars: ✭ 85 (+107.32%)
Mutual labels:  debugging, print
Traceback with variables
Adds variables to python traceback. Simple, lightweight, controllable. Debug reasons of exceptions by logging or pretty printing colorful variable contexts for each frame in a stacktrace, showing every value. Dump locals environments after errors to console, files, and loggers. Works in Jupyter and IPython. Install with pip or conda.
Stars: ✭ 509 (+1141.46%)
Mutual labels:  debugging, print
Icecream
🍦 Never use print() to debug again.
Stars: ✭ 5,601 (+13560.98%)
Mutual labels:  debugging, print
Godbg
Go implementation of the Rust `dbg` macro
Stars: ✭ 172 (+319.51%)
Mutual labels:  debugging, print
Opencl Intercept Layer
Intercept Layer for Debugging and Analyzing OpenCL Applications
Stars: ✭ 189 (+360.98%)
Mutual labels:  debugging
Clean logs
A better console.log for the browser
Stars: ✭ 229 (+458.54%)
Mutual labels:  debugging
Claws
Awesome WebSocket CLient - an interactive command line client for testing websocket servers
Stars: ✭ 187 (+356.1%)
Mutual labels:  debugging
Objectexporter
Object Exporter lets you export out an object while debugging in Visual Studio, the object can be serialized in either C#, JSON or XML.
Stars: ✭ 240 (+485.37%)
Mutual labels:  debugging
Timber Elixir
🌲 Great Elixir logging made easy
Stars: ✭ 226 (+451.22%)
Mutual labels:  debugging
Reactotron
A desktop app for inspecting your React JS and React Native projects. macOS, Linux, and Windows.
Stars: ✭ 13,337 (+32429.27%)
Mutual labels:  debugging
Hrdevhelper
Context-sensitive HexRays decompiler plugin that visualizes the ctree of decompiled functions.
Stars: ✭ 193 (+370.73%)
Mutual labels:  debugging
Darkon
Toolkit to Hack Your Deep Learning Models
Stars: ✭ 231 (+463.41%)
Mutual labels:  debugging
Python Remote Pdb
Remote vanilla PDB (over TCP sockets).
Stars: ✭ 186 (+353.66%)
Mutual labels:  debugging
Utern
Multi group and stream log tailing for AWS CloudWatch Logs.
Stars: ✭ 241 (+487.8%)
Mutual labels:  debugging
Fakepdb
Tool for PDB generation from IDA Pro database
Stars: ✭ 186 (+353.66%)
Mutual labels:  debugging
Cli Debugging Cheatsheets
🔥 Collection of command-line debugging cheatsheets for multiple languages and runtimes
Stars: ✭ 239 (+482.93%)
Mutual labels:  debugging
Bugsnag Ruby
Bugsnag error monitoring & reporting software for rails, sinatra, rack and ruby
Stars: ✭ 211 (+414.63%)
Mutual labels:  debugging
Debug Recipes
My notes collected while debugging various .NET and Windows problems.
Stars: ✭ 204 (+397.56%)
Mutual labels:  debugging
Best Of Python Dev
🏆 A ranked list of awesome python developer tools and libraries. Updated weekly.
Stars: ✭ 243 (+492.68%)
Mutual labels:  debugging

Ruby Print Debugging version

Helps you to introspect and debug your code.

Setup

Install gem:

$ gem install debugging

In Ruby:

require 'debugging/all'

Instead of requiring all, you can also require only one function, e.g:

require 'debugging/q'

In a bundler project, you will need to add the gem to your project's Gemfile:

gem 'debugging', require: 'debugging/all'

Methods

at(label = nil)

Prints out that a specific point in a script has been reached.

[label] @ method `...', line ... of file ....

beep

Lets your terminal bell ring.

callstack

Prints out your current callstack. For example:

<main>
  start
    catch
      block in start
        eval_input
          each_top_level_statement
            catch
              block in each_top_level_statement
                loop
                  block (2 levels) in each_top_level_statement
                    block in eval_input
                      signal_status
                        block (2 levels) in eval_input
                          evaluate
                            evaluate
                              eval
                                irb_binding

howtocall(obj = self, method_or_proc)

Displays parameter names and types for a proc or method (identified by a symbol):

def function(a, b = 3, &c)
end
howtocall :function #=> function(a, b, &c)

What is not visible in the example above: All optional parameters are displayed underlined.

If you want to access a function that is defined on an other object than the current one, you can pass it as an optional parameter:

howtocall FileUtils, :cd #=> cd(dir, options, &block)
howtocall Open3, :popen3 #=> popen3(*cmd, **opts, &block)

An example with lambdas and keyword arguments:

a = ->(filter: /\A.*\z/, string:){ string[filter] }
howtocall a #=> call(string:, filter:)

q(*args)

Like Kernel#p, but with colors on one line:

q :is_like, ?p, "but on one line"

re(string, regex, groups = nil)

Assists you when matching regexes againts strings. Try this one:

re "[email protected]", /\b([A-Z0-9._%+-]+)@([A-Z0-9.-]+\.[A-Z]{2,10})\b/i, 0..2

J-_-L

Copyright (c) 2010-2022 Jan Lelis. MIT License. Originated from the zucker gem.

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].