https://github.com/abargnesi/devtools
Ruby dev tools
https://github.com/abargnesi/devtools
Last synced: 3 months ago
JSON representation
Ruby dev tools
- Host: GitHub
- URL: https://github.com/abargnesi/devtools
- Owner: abargnesi
- License: other
- Created: 2014-05-30T17:45:22.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2014-05-30T19:07:01.000Z (about 11 years ago)
- Last Synced: 2025-01-12T17:47:37.625Z (5 months ago)
- Language: Ruby
- Homepage:
- Size: 152 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE
Awesome Lists containing this project
README
devtools
--------Gem containing ruby development tools.
**Tools**
*srctrace.rb*
Trace through method execution of your program.
Features:
- Uses TracePoint API to provide return values
- Environment variable control (run ``srctrace`` for options)
- Terminal colors (``gem install term-ansicolor``).. code-block:: bash
# run gem executable
srctrace your-program.rb# require via ruby
ruby -rsrctrace your-program.rb# show only line, call, and return event types
SOURCE_TRACER_FILTERS="line,call,return" bin/srctrace your-program.rbexample output:
``ruby -rsrctrace prog1.rb``
.. code-block:: bash
...
b_return kernel_require.rb:0 Kernel#require ?
c_call test.rb:0 IO#set_encoding ?
c_return test.rb:0 IO#set_encoding ?
c_call test.rb:0 IO#set_encoding ?
c_return test.rb:0 IO#set_encoding ?
line test.rb:1 n/a 1.times do
c_call test.rb:1 Integer#times 1.times do
b_call test.rb:1 n/a 1.times do
line test.rb:2 n/a "cool".to_sym
c_call test.rb:2 String#to_sym "cool".to_sym
c_return test.rb:2 String#to_sym "cool".to_sym
b_return test.rb:3 n/a end
c_return test.rb:1 Integer#times 1.times do``SOURCE_TRACER_FILTERS="line,return" SOURCE_TRACER_RETURNS=1 ruby -rsrctrace prog2.rb``
.. code-block:: bash
line kernel_require.rb:137 Kernel#require RUBYGEMS_ACTIVATION_MONITOR.enter
line monitor.rb:184 MonitorMixin#mon_enter if @mon_owner != Thread.current
line monitor.rb:185 MonitorMixin#mon_enter @mon_mutex.lock
line monitor.rb:186 MonitorMixin#mon_enter @mon_owner = Thread.current
line monitor.rb:188 MonitorMixin#mon_enter @mon_count += 1
return monitor.rb:189 MonitorMixin#mon_enter end
↳ Fixnum: 1
line kernel_require.rb:143 Kernel#require RUBYGEMS_ACTIVATION_MONITOR.exit
line monitor.rb:195 MonitorMixin#mon_exit mon_check_owner
line monitor.rb:245 MonitorMixin#mon_check_owner if @mon_owner != Thread.current
return monitor.rb:248 MonitorMixin#mon_check_owner end
↳ NilClass: nil
line monitor.rb:196 MonitorMixin#mon_exit @mon_count -=1
line monitor.rb:197 MonitorMixin#mon_exit if @mon_count == 0
line monitor.rb:198 MonitorMixin#mon_exit @mon_owner = nil
line monitor.rb:198 MonitorMixin#mon_exit @mon_owner = nil
line monitor.rb:199 MonitorMixin#mon_exit @mon_mutex.unlock
return monitor.rb:201 MonitorMixin#mon_exit end
↳ Mutex: #
line test.rb:1 n/a 1.times do
line test.rb:2 n/a "cool".to_sym