debug 1.0.0.rc2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +9 -4
- data/TODO.md +3 -8
- data/exe/rdbg +1 -1
- data/lib/debug/session.rb +16 -3
- data/lib/debug/thread_client.rb +1 -1
- data/lib/debug/version.rb +1 -1
- data/misc/README.md.erb +8 -3
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a3e49208dc5aafac57624c1bfb06a1f1d4975bc1a3ea1739b170cd97b4805f80
|
4
|
+
data.tar.gz: 631bb42bb4bb78cb6bda141e062e317edfb49fc01bbf6e4ca65036efc5175c12
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03d36a4f2ba792570d77206897e112e74947cf951f36dbd62b94f6faefbc431735b92da833682b1e768368e9393051cc7efea784daf853ab6d927b57780ca780
|
7
|
+
data.tar.gz: 837963016cb3d8cb932796706323761ecbcdda55d9c8da0cc68d1d324ad92018e06959489273edbb7a3f0fadc817d699dd744266a3e48ce6ce1647370a77cd1d
|
data/README.md
CHANGED
@@ -25,7 +25,7 @@ New debug.rb has several advantages:
|
|
25
25
|
# Installation
|
26
26
|
|
27
27
|
```
|
28
|
-
$ gem install debug
|
28
|
+
$ gem install debug
|
29
29
|
```
|
30
30
|
|
31
31
|
or specify `-Ipath/to/debug/lib` in `RUBYOPT` or each ruby command-line option, especially for debug this gem development.
|
@@ -33,7 +33,7 @@ or specify `-Ipath/to/debug/lib` in `RUBYOPT` or each ruby command-line option,
|
|
33
33
|
If you use Bundler, write the following line to your Gemfile.
|
34
34
|
|
35
35
|
```
|
36
|
-
gem "debug", ">= 1.0.0
|
36
|
+
gem "debug", ">= 1.0.0"
|
37
37
|
```
|
38
38
|
|
39
39
|
# HOW TO USE
|
@@ -397,7 +397,12 @@ If there are `~/.rdbgrc.rb` is available, it is also loaded as a ruby script at
|
|
397
397
|
|
398
398
|
On the debug console, you can use the following debug commands.
|
399
399
|
|
400
|
-
|
400
|
+
There are additional features:
|
401
|
+
|
402
|
+
* `<expr>` without debug command is almost same as `pp <expr>`.
|
403
|
+
* If the input line `<expr>` does *NOT* start with any debug command, the line `<expr>` will be evaluated as a Ruby expression and the result will be printed with `pp` method. So that the input `foo.bar` is same as `pp foo.bar`.
|
404
|
+
* If `<expr>` is recognized as a debug command, of course it is not evaluated as a Ruby expression, but is executed as debug command. For example, you can not evaluate such single letter local variables `i`, `b`, `n`, `c` because they are single letter debug commands. Use `p i` instead.
|
405
|
+
* `Enter` without any input repeats the last command (useful when repeating `step`s).
|
401
406
|
* `Ctrl-D` is equal to `quit` command.
|
402
407
|
* [debug command compare sheet - Google Sheets](https://docs.google.com/spreadsheets/d/1TlmmUDsvwK4sSIyoMv-io52BUUz__R5wpu-ComXlsw0/edit?usp=sharing)
|
403
408
|
|
@@ -529,7 +534,7 @@ The `<...>` notation means the argument.
|
|
529
534
|
* Evaluate like `p <expr>` on the current frame.
|
530
535
|
* `pp <expr>`
|
531
536
|
* Evaluate like `pp <expr>` on the current frame.
|
532
|
-
* `
|
537
|
+
* `eval <expr>`
|
533
538
|
* Evaluate `<expr>` on the current frame.
|
534
539
|
* `irb`
|
535
540
|
* Invoke `irb` on the current frame.
|
data/TODO.md
CHANGED
@@ -3,11 +3,13 @@
|
|
3
3
|
## Basic functionality
|
4
4
|
|
5
5
|
* Support Ractors
|
6
|
-
* Signal (SIGINT)
|
6
|
+
* Signal (SIGINT) trap handling
|
7
7
|
|
8
8
|
## UI
|
9
9
|
|
10
|
+
* Completion for Ruby's code
|
10
11
|
* Interactive breakpoint setting
|
12
|
+
* Interactive record & play debugging
|
11
13
|
* irb integration
|
12
14
|
* Web browser integrated UI
|
13
15
|
|
@@ -15,13 +17,6 @@
|
|
15
17
|
|
16
18
|
* Breakpoints
|
17
19
|
* Lightweight pending method break points with Ruby 3.1 feature (TP:method_added)
|
18
|
-
* Non-stop breakpoint but runs some code.
|
19
20
|
* Watch points
|
20
21
|
* Lightweight watchpoints for instance variables with Ruby 3.1 features (TP:ivar_set)
|
21
22
|
* Faster `next`/`finish` command by specifying target code.
|
22
|
-
* `set`/`show` configurations
|
23
|
-
* In-memory line traces
|
24
|
-
* Timemachine debugging
|
25
|
-
|
26
|
-
## Tests
|
27
|
-
|
data/exe/rdbg
CHANGED
@@ -9,7 +9,7 @@ when :start
|
|
9
9
|
|
10
10
|
libpath = File.join(File.expand_path(File.dirname(__dir__)), 'lib/debug')
|
11
11
|
start_mode = config[:remote] ? "open" : 'start'
|
12
|
-
cmd = config[:command] ? ARGV.shift : RbConfig.ruby
|
12
|
+
cmd = config[:command] ? ARGV.shift : (ENV['RUBY'] || RbConfig.ruby)
|
13
13
|
|
14
14
|
env = ::DEBUGGER__::Config.config_to_env_hash(config)
|
15
15
|
env['RUBYOPT'] = "-r #{libpath}/#{start_mode}"
|
data/lib/debug/session.rb
CHANGED
@@ -303,7 +303,9 @@ module DEBUGGER__
|
|
303
303
|
if @preset_command.commands.empty?
|
304
304
|
if @preset_command.auto_continue
|
305
305
|
@preset_command = nil
|
306
|
+
|
306
307
|
@tc << :continue
|
308
|
+
restart_all_threads
|
307
309
|
return
|
308
310
|
else
|
309
311
|
@preset_command = nil
|
@@ -702,10 +704,16 @@ module DEBUGGER__
|
|
702
704
|
when 'pp'
|
703
705
|
@tc << [:eval, :pp, arg.to_s]
|
704
706
|
|
705
|
-
# * `
|
707
|
+
# * `eval <expr>`
|
706
708
|
# * Evaluate `<expr>` on the current frame.
|
707
|
-
when '
|
708
|
-
|
709
|
+
when 'eval', 'call'
|
710
|
+
if arg == nil || arg.empty?
|
711
|
+
show_help 'eval'
|
712
|
+
@ui.puts "\nTo evaluate the variable `#{cmd}`, use `pp #{cmd}` instead."
|
713
|
+
return :retry
|
714
|
+
else
|
715
|
+
@tc << [:eval, :call, arg]
|
716
|
+
end
|
709
717
|
|
710
718
|
# * `irb`
|
711
719
|
# * Invoke `irb` on the current frame.
|
@@ -1145,6 +1153,11 @@ module DEBUGGER__
|
|
1145
1153
|
add_bp bp
|
1146
1154
|
end
|
1147
1155
|
|
1156
|
+
def add_catch_breakpoint pat
|
1157
|
+
bp = CatchBreakpoint.new(pat)
|
1158
|
+
add_bp bp
|
1159
|
+
end
|
1160
|
+
|
1148
1161
|
def add_check_breakpoint expr
|
1149
1162
|
bp = CheckBreakpoint.new(expr)
|
1150
1163
|
add_bp bp
|
data/lib/debug/thread_client.rb
CHANGED
data/lib/debug/version.rb
CHANGED
data/misc/README.md.erb
CHANGED
@@ -25,7 +25,7 @@ New debug.rb has several advantages:
|
|
25
25
|
# Installation
|
26
26
|
|
27
27
|
```
|
28
|
-
$ gem install debug
|
28
|
+
$ gem install debug
|
29
29
|
```
|
30
30
|
|
31
31
|
or specify `-Ipath/to/debug/lib` in `RUBYOPT` or each ruby command-line option, especially for debug this gem development.
|
@@ -33,7 +33,7 @@ or specify `-Ipath/to/debug/lib` in `RUBYOPT` or each ruby command-line option,
|
|
33
33
|
If you use Bundler, write the following line to your Gemfile.
|
34
34
|
|
35
35
|
```
|
36
|
-
gem "debug", ">= 1.0.0
|
36
|
+
gem "debug", ">= 1.0.0"
|
37
37
|
```
|
38
38
|
|
39
39
|
# HOW TO USE
|
@@ -370,7 +370,12 @@ If there are `~/.rdbgrc.rb` is available, it is also loaded as a ruby script at
|
|
370
370
|
|
371
371
|
On the debug console, you can use the following debug commands.
|
372
372
|
|
373
|
-
|
373
|
+
There are additional features:
|
374
|
+
|
375
|
+
* `<expr>` without debug command is almost same as `pp <expr>`.
|
376
|
+
* If the input line `<expr>` does *NOT* start with any debug command, the line `<expr>` will be evaluated as a Ruby expression and the result will be printed with `pp` method. So that the input `foo.bar` is same as `pp foo.bar`.
|
377
|
+
* If `<expr>` is recognized as a debug command, of course it is not evaluated as a Ruby expression, but is executed as debug command. For example, you can not evaluate such single letter local variables `i`, `b`, `n`, `c` because they are single letter debug commands. Use `p i` instead.
|
378
|
+
* `Enter` without any input repeats the last command (useful when repeating `step`s).
|
374
379
|
* `Ctrl-D` is equal to `quit` command.
|
375
380
|
* [debug command compare sheet - Google Sheets](https://docs.google.com/spreadsheets/d/1TlmmUDsvwK4sSIyoMv-io52BUUz__R5wpu-ComXlsw0/edit?usp=sharing)
|
376
381
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: debug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Koichi Sasada
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-09-
|
11
|
+
date: 2021-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: irb
|
@@ -102,9 +102,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
102
|
version: 2.6.0
|
103
103
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
104
|
requirements:
|
105
|
-
- - "
|
105
|
+
- - ">="
|
106
106
|
- !ruby/object:Gem::Version
|
107
|
-
version:
|
107
|
+
version: '0'
|
108
108
|
requirements: []
|
109
109
|
rubygems_version: 3.1.6
|
110
110
|
signing_key:
|