File: README.md

package info (click to toggle)
ruby-debug-inspector 1.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 140 kB
  • sloc: ruby: 96; ansic: 89; sh: 4; makefile: 4
file content (60 lines) | stat: -rw-r--r-- 2,190 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
[![Build Status](https://github.com/banister/debug_inspector/actions/workflows/test.yml/badge.svg)](https://github.com/banister/debug_inspector/actions/workflows/test.yml)
[![Gem Version](https://img.shields.io/gem/v/debug_inspector.svg)](https://rubygems.org/gems/debug_inspector)

debug_inspector
===============

_A Ruby wrapper for the Ruby 2.0+ debug_inspector C API_

The `debug_inspector` C extension and API were designed and built by [Koichi Sasada](https://github.com/ko1), this project
is just a gemification of his work.

**NOTES:**

* **Do not use this library outside of debugging situations**.
* This library makes use of the debug inspector API which was new in CRuby 2.0.0.
* Only works on CRuby 2+ and TruffleRuby. Requiring it on unsupported Rubies will result in a no-op.

Usage
-----

```ruby
require 'debug_inspector'

# Open debug context
# Passed `dc' is only active in a block
DebugInspector.open { |dc|
  # backtrace locations (returns an array of Thread::Backtrace::Location objects)
  locs = dc.backtrace_locations

  # you can get depth of stack frame with `locs.size'
  locs.size.times do |i|
    # binding of i-th caller frame (returns a Binding object or nil)
    p dc.frame_binding(i)

    # iseq of i-th caller frame (returns a RubyVM::InstructionSequence object or nil)
    p dc.frame_iseq(i)

    # class of i-th caller frame
    p dc.frame_class(i)
  end
}
```

Development
-----------

After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run `bundle exec rake install`.
To release a new version, update the version number in `version.rb` and in `debug_inspector.gemspec`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).

Contact
-------

Problems or questions contact me at [github](http://github.com/banister)

License
-------

The `debug_inspector` is released under the [MIT License](https://opensource.org/licenses/MIT).