debug 1.0.0.rc2 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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:
|