debug 1.9.0 → 1.9.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d25f806f1fa474cea627e17003007f9e28a776244f25c24addae854005fd8d1
4
- data.tar.gz: 63a48b8aeee29d020a4d8fb6ec85ad337c42c0b83f32ca53ea83d767a6daadc5
3
+ metadata.gz: c242bce58b031f61da73507f6b42a26f1ed8322679d1f0b3460d8fbc8c4b7a23
4
+ data.tar.gz: 543feb5e53a2c99ba04583edae4a13378667c97b13662f5a4d456dd6bacb17b5
5
5
  SHA512:
6
- metadata.gz: 91f621ae09fb945590cb7ddd43b97401f27304326b49204ea0a17981fbd236e52e5e19bfa4cb158bd49943d04681e39ff51072f317a4d29368ccdaa50552cd86
7
- data.tar.gz: 9ab3a0a3509ad947ad62c70e10eedacd3fb299a5e2c1654f06ffd01f59de23d91cd99b80101fc13acd1e0b1192265821a2c5fbddf0dfbefccc69dfaf5748b63d
6
+ metadata.gz: b5f6c58f38114e3179c3d5c062294ac276b53533fc4a6543114a883198318b672a8506990064f1b40d9f9597d3e1a933cb7c2363ea4cdd4ba0e0571279a80c73
7
+ data.tar.gz: 142a78dcdc449df6e0148857f992500aa88375707af067f36f1e3391fe2adb7ac8ff0f66623806c5488e94292167a369ca901084475e97b8dc38e32257ccbba0
data/Gemfile CHANGED
@@ -7,3 +7,4 @@ gem "rake-compiler"
7
7
  gem "test-unit", "~> 3.0"
8
8
  gem "test-unit-rr"
9
9
  gem "json-schema"
10
+ gem "test-unit-launchable"
data/README.md CHANGED
@@ -13,10 +13,10 @@ New debug.rb has several advantages:
13
13
  * TCP/IP
14
14
  * Integration with rich debugger frontends
15
15
 
16
- Frontend | [Console](https://github.com/ruby/debug#invoke-as-a-remote-debuggee) | [VSCode](https://github.com/ruby/debug#vscode-integration) | [Chrome DevTool](#chrome-devtool-integration) |
17
- ---|---|---|---|
18
- Connection | UDS, TCP/IP | UDS, TCP/IP | TCP/IP |
19
- Requirement | No | [vscode-rdbg](https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg) | Chrome |
16
+ | Frontend | [Console](https://github.com/ruby/debug#invoke-as-a-remote-debuggee) | [VSCode](https://github.com/ruby/debug#vscode-integration) | [Chrome DevTool](#chrome-devtool-integration) |
17
+ | ----------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | --------------------------------------------- |
18
+ | Connection | UDS, TCP/IP | UDS, TCP/IP | TCP/IP |
19
+ | Requirement | No | [vscode-rdbg](https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg) | Chrome |
20
20
 
21
21
  * Extensible: application can introduce debugging support in several ways:
22
22
  * By `rdbg` command
@@ -289,10 +289,10 @@ You can run your application as a remote debuggee, and the remote debugger conso
289
289
 
290
290
  There are multiple ways to run your program as a debuggee:
291
291
 
292
- Stop at program start | [`rdbg` option](https://github.com/ruby/debug#rdbg---open-or-rdbg--o-for-short) | [require](https://github.com/ruby/debug#require-debugopen-in-a-program) | [debugger API](https://github.com/ruby/debug#start-by-method)
293
- ---|---|---|---|
294
- Yes | `rdbg --open` | `require "debug/open"` | `DEBUGGER__.open`
295
- No | `rdbg --open --nonstop` | `require "debug/open_nonstop"` | `DEBUGGER__.open(nonstop: true)`
292
+ | Stop at program start | [`rdbg` option](https://github.com/ruby/debug#rdbg---open-or-rdbg--o-for-short) | [require](https://github.com/ruby/debug#require-debugopen-in-a-program) | [debugger API](https://github.com/ruby/debug#start-by-method) |
293
+ | --------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------- |
294
+ | Yes | `rdbg --open` | `require "debug/open"` | `DEBUGGER__.open` |
295
+ | No | `rdbg --open --nonstop` | `require "debug/open_nonstop"` | `DEBUGGER__.open(nonstop: true)` |
296
296
 
297
297
  #### `rdbg --open` (or `rdbg -O` for short)
298
298
 
@@ -713,7 +713,7 @@ The `<...>` notation means the argument.
713
713
  * `eval <expr>`
714
714
  * Evaluate `<expr>` on the current frame.
715
715
  * `irb`
716
- * Invoke `irb` on the current frame.
716
+ * Activate and switch to `irb:rdbg` console
717
717
 
718
718
  ### Trace
719
719
 
@@ -784,6 +784,30 @@ The `<...>` notation means the argument.
784
784
  * Show help for the given command.
785
785
 
786
786
 
787
+ ### Using IRB as the Debug Console
788
+
789
+ Starting from version `v1.9`, you can now use IRB as the debug console. This integration brings additional features such as:
790
+
791
+ * Autocompletion
792
+ * Support for multi-line input
793
+ * Access to commands not available in `debug`, like `show_source` or `show_doc`
794
+ * [Configurable command aliases](https://docs.ruby-lang.org/en/master/IRB.html#module-IRB-label-Command+Aliases)
795
+
796
+ To switch to the IRB console, simply use the `irb` command in the debug console.
797
+
798
+ Once activated, you'll notice the prompt changes to:
799
+
800
+ ```txt
801
+ irb:rdbg(main):001>
802
+ ```
803
+
804
+ If you want to make IRB the default console for all sessions, configure the `irb_console` setting by either:
805
+
806
+ * Setting the `RUBY_DEBUG_IRB_CONSOLE=true` environment variable
807
+ * Or adding `config set irb_console 1` to your `~/.rdbgrc`
808
+
809
+ To disable the IRB console in the current session, execute `config set irb_console 0` in the console.
810
+
787
811
  ## Debugger API
788
812
 
789
813
  ### Start debugging
data/ext/debug/debug.c CHANGED
@@ -8,13 +8,13 @@ static VALUE rb_mDebugger;
8
8
 
9
9
  // iseq
10
10
  typedef struct rb_iseq_struct rb_iseq_t;
11
+ const rb_iseq_t *rb_iseqw_to_iseq(VALUE iseqw);
11
12
  VALUE rb_iseq_realpath(const rb_iseq_t *iseq);
12
13
 
13
14
  static VALUE
14
15
  iseq_realpath(VALUE iseqw)
15
16
  {
16
- rb_iseq_t *iseq = DATA_PTR(iseqw);
17
- return rb_iseq_realpath(iseq);
17
+ return rb_iseq_realpath(rb_iseqw_to_iseq(iseqw));
18
18
  }
19
19
 
20
20
  static VALUE rb_cFrameInfo;
@@ -62,15 +62,23 @@ di_body(const rb_debug_inspector_t *dc, void *ptr)
62
62
  long i;
63
63
 
64
64
  for (i=1; i<len; i++) {
65
- VALUE loc, e;
65
+ VALUE e;
66
66
  VALUE iseq = rb_debug_inspector_frame_iseq_get(dc, i);
67
+ VALUE loc = RARRAY_AREF(locs, i);
68
+ VALUE path;
67
69
 
68
70
  if (!NIL_P(iseq)) {
69
- VALUE path = iseq_realpath(iseq);
70
- if (!NIL_P(path) && !NIL_P(skip_path_prefix) && str_start_with(path, skip_path_prefix)) continue;
71
+ path = iseq_realpath(iseq);
72
+ }
73
+ else {
74
+ // C frame
75
+ path = rb_funcall(loc, rb_intern("path"), 0);
76
+ }
77
+
78
+ if (!NIL_P(path) && !NIL_P(skip_path_prefix) && str_start_with(path, skip_path_prefix)) {
79
+ continue;
71
80
  }
72
81
 
73
- loc = RARRAY_AREF(locs, i);
74
82
  e = di_entry(loc,
75
83
  rb_debug_inspector_frame_self_get(dc, i),
76
84
  rb_debug_inspector_frame_binding_get(dc, i),
@@ -113,26 +121,26 @@ frame_depth(VALUE self)
113
121
 
114
122
  // iseq
115
123
 
116
- const struct rb_iseq *rb_iseqw_to_iseq(VALUE iseqw);
124
+ const rb_iseq_t *rb_iseqw_to_iseq(VALUE iseqw);
117
125
 
118
126
  #ifdef HAVE_RB_ISEQ_TYPE
119
- VALUE rb_iseq_type(const struct rb_iseq *);
127
+ VALUE rb_iseq_type(const rb_iseq_t *);
120
128
 
121
129
  static VALUE
122
130
  iseq_type(VALUE iseqw)
123
131
  {
124
- const struct rb_iseq *iseq = rb_iseqw_to_iseq(iseqw);
132
+ const rb_iseq_t *iseq = rb_iseqw_to_iseq(iseqw);
125
133
  return rb_iseq_type(iseq);
126
134
  }
127
135
  #endif
128
136
 
129
137
  #ifdef HAVE_RB_ISEQ_PARAMETERS
130
- VALUE rb_iseq_parameters(const struct rb_iseq *, int is_proc);
138
+ VALUE rb_iseq_parameters(const rb_iseq_t *, int is_proc);
131
139
 
132
140
  static VALUE
133
141
  iseq_parameters_symbols(VALUE iseqw)
134
142
  {
135
- const struct rb_iseq *iseq = rb_iseqw_to_iseq(iseqw);
143
+ const rb_iseq_t *iseq = rb_iseqw_to_iseq(iseqw);
136
144
  VALUE params = rb_iseq_parameters(iseq, 0);
137
145
  VALUE ary = rb_ary_new();
138
146
 
@@ -159,12 +167,12 @@ iseq_parameters_symbols(VALUE iseqw)
159
167
  #endif
160
168
 
161
169
  #ifdef HAVE_RB_ISEQ_CODE_LOCATION
162
- void rb_iseq_code_location(const struct rb_iseq *, int *first_lineno, int *first_column, int *last_lineno, int *last_column);
170
+ void rb_iseq_code_location(const rb_iseq_t *, int *first_lineno, int *first_column, int *last_lineno, int *last_column);
163
171
 
164
172
  static VALUE
165
173
  iseq_first_line(VALUE iseqw)
166
174
  {
167
- const struct rb_iseq *iseq = rb_iseqw_to_iseq(iseqw);
175
+ const rb_iseq_t *iseq = rb_iseqw_to_iseq(iseqw);
168
176
  int line;
169
177
  rb_iseq_code_location(iseq, &line, NULL, NULL, NULL);
170
178
  return INT2NUM(line);
@@ -173,7 +181,7 @@ iseq_first_line(VALUE iseqw)
173
181
  static VALUE
174
182
  iseq_last_line(VALUE iseqw)
175
183
  {
176
- const struct rb_iseq *iseq = rb_iseqw_to_iseq(iseqw);
184
+ const rb_iseq_t *iseq = rb_iseqw_to_iseq(iseqw);
177
185
  int line;
178
186
  rb_iseq_code_location(iseq, NULL, NULL, &line, NULL);
179
187
  return INT2NUM(line);
data/lib/debug/config.rb CHANGED
@@ -158,6 +158,22 @@ module DEBUGGER__
158
158
  SESSION.set_no_sigint_hook old, new
159
159
  end
160
160
  end
161
+
162
+ if_updated old_conf, conf, :irb_console do |old, new|
163
+ if defined?(SESSION) && SESSION.active?
164
+ # irb_console is switched from true to false
165
+ if old
166
+ SESSION.deactivate_irb_integration
167
+ # irb_console is switched from false to true
168
+ else
169
+ if CONFIG[:open]
170
+ SESSION.instance_variable_get(:@ui).puts "\nIRB is not supported on the remote console."
171
+ else
172
+ SESSION.activate_irb_integration
173
+ end
174
+ end
175
+ end
176
+ end
161
177
  end
162
178
 
163
179
  private def if_updated old_conf, new_conf, key
data/lib/debug/console.rb CHANGED
@@ -143,7 +143,7 @@ module DEBUGGER__
143
143
  rescue LoadError
144
144
  def readline prompt
145
145
  print prompt
146
- gets
146
+ $stdin.gets
147
147
  end
148
148
 
149
149
  def history
@@ -24,4 +24,14 @@ module DEBUGGER__
24
24
  IRB::Context.prepend(IrbPatch)
25
25
  end
26
26
  end
27
+
28
+ class Session
29
+ def deactivate_irb_integration
30
+ Reline.completion_proc = nil
31
+ Reline.output_modifier_proc = nil
32
+ Reline.autocompletion = false
33
+ Reline.dig_perfect_match_proc = nil
34
+ reset_ui UI_LocalConsole.new
35
+ end
36
+ end
27
37
  end
data/lib/debug/prelude.rb CHANGED
@@ -5,7 +5,7 @@ return if defined?(::DEBUGGER__::Session)
5
5
 
6
6
  # Put the following line in your login script (e.g. ~/.bash_profile) with modified path:
7
7
  #
8
- # export RUBYOPT="-r /path/to/debug/prelude $(RUBYOPT)"
8
+ # export RUBYOPT="-r /path/to/debug/prelude ${RUBYOPT}"
9
9
  #
10
10
  module Kernel
11
11
  def debugger(*a, up_level: 0, **kw)
@@ -2,7 +2,6 @@
2
2
 
3
3
  require 'json'
4
4
  require 'digest/sha1'
5
- require 'base64'
6
5
  require 'securerandom'
7
6
  require 'stringio'
8
7
  require 'open3'
@@ -131,7 +130,7 @@ module DEBUGGER__
131
130
  stdout.close
132
131
  data = stderr.readpartial 4096
133
132
  stderr.close
134
- if data.match /DevTools listening on ws:\/\/127.0.0.1:(\d+)(.*)/
133
+ if data.match(/DevTools listening on ws:\/\/127.0.0.1:(\d+)(.*)/)
135
134
  port = $1
136
135
  path = $2
137
136
  end
@@ -158,7 +157,7 @@ module DEBUGGER__
158
157
  raise NotFoundChromeEndpointError
159
158
  end
160
159
  stderr.close
161
- if data.match /DevTools listening on ws:\/\/127.0.0.1:(\d+)(.*)/
160
+ if data.match(/DevTools listening on ws:\/\/127.0.0.1:(\d+)(.*)/)
162
161
  port = $1
163
162
  path = $2
164
163
  end
@@ -190,7 +189,7 @@ module DEBUGGER__
190
189
  while i < ITERATIONS
191
190
  i += 1
192
191
  if File.exist?(tf) && data = File.read(tf)
193
- if data.match /DevTools listening on ws:\/\/127.0.0.1:(\d+)(.*)/
192
+ if data.match(/DevTools listening on ws:\/\/127.0.0.1:(\d+)(.*)/)
194
193
  port = $1
195
194
  path = $2
196
195
  return [port, path]
@@ -297,8 +296,8 @@ module DEBUGGER__
297
296
  res = @sock.readpartial 4092
298
297
  show_protocol :<, res
299
298
 
300
- if res.match /^Sec-WebSocket-Accept: (.*)\r\n/
301
- correct_key = Base64.strict_encode64 Digest::SHA1.digest "#{key}==258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
299
+ if res.match(/^Sec-WebSocket-Accept: (.*)\r\n/)
300
+ correct_key = Digest::SHA1.base64digest "#{key}==258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
302
301
  raise "The Sec-WebSocket-Accept value: #{$1} is not valid" unless $1 == correct_key
303
302
  else
304
303
  raise "Unknown response: #{res}"
@@ -378,8 +377,8 @@ module DEBUGGER__
378
377
  req = @sock.readpartial 4096
379
378
  show_protocol '>', req
380
379
 
381
- if req.match /^Sec-WebSocket-Key: (.*)\r\n/
382
- accept = Base64.strict_encode64 Digest::SHA1.digest "#{$1}258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
380
+ if req.match(/^Sec-WebSocket-Key: (.*)\r\n/)
381
+ accept = Digest::SHA1.base64digest "#{$1}258EAFA5-E914-47DA-95CA-C5AB0DC85B11"
383
382
  res = "HTTP/1.1 101 Switching Protocols\r\nUpgrade: websocket\r\nConnection: Upgrade\r\nSec-WebSocket-Accept: #{accept}\r\n\r\n"
384
383
  @sock.print res
385
384
  show_protocol :<, res
@@ -658,7 +657,7 @@ module DEBUGGER__
658
657
 
659
658
  def activate_bp bps
660
659
  bps.each_key{|k|
661
- if k.match /^\d+:(\d+):(.*)/
660
+ if k.match(/^\d+:(\d+):(.*)/)
662
661
  line = $1
663
662
  path = $2
664
663
  SESSION.add_line_breakpoint(path, line.to_i + 1)
data/lib/debug/session.rb CHANGED
@@ -202,11 +202,6 @@ module DEBUGGER__
202
202
  end
203
203
  @tp_thread_end.enable
204
204
 
205
- if CONFIG[:irb_console] && !CONFIG[:open]
206
- require_relative "irb_integration"
207
- thc.activate_irb_integration
208
- end
209
-
210
205
  # session start
211
206
  q << true
212
207
  session_server_main
@@ -214,6 +209,12 @@ module DEBUGGER__
214
209
  first_q << :ok
215
210
 
216
211
  q.pop
212
+
213
+ # For activating irb:rdbg with startup config like `RUBY_DEBUG_IRB_CONSOLE=1`
214
+ # Because in that case the `Config#if_updated` callback would not be triggered
215
+ if CONFIG[:irb_console] && !CONFIG[:open]
216
+ activate_irb_integration
217
+ end
217
218
  end
218
219
 
219
220
  def deactivate
@@ -938,14 +939,15 @@ module DEBUGGER__
938
939
  end
939
940
 
940
941
  # * `irb`
941
- # * Invoke `irb` on the current frame.
942
+ # * Activate and switch to `irb:rdbg` console
942
943
  register_command 'irb' do |arg|
943
944
  if @ui.remote?
944
945
  @ui.puts "\nIRB is not supported on the remote console."
945
- :retry
946
946
  else
947
- request_eval :irb, nil
947
+ config_set :irb_console, true
948
948
  end
949
+
950
+ :retry
949
951
  end
950
952
 
951
953
  ### Trace
@@ -1876,6 +1878,12 @@ module DEBUGGER__
1876
1878
  end
1877
1879
  end
1878
1880
 
1881
+ def activate_irb_integration
1882
+ require_relative "irb_integration"
1883
+ thc = get_thread_client(@session_server)
1884
+ thc.activate_irb_integration
1885
+ end
1886
+
1879
1887
  def enter_postmortem_session exc
1880
1888
  return unless exc.instance_variable_defined? :@__debugger_postmortem_frames
1881
1889
 
@@ -989,7 +989,7 @@ module DEBUGGER__
989
989
  true
990
990
  else
991
991
  true if depth >= DEBUGGER__.frame_depth - 3 &&
992
- caller_locations(2, 1).first.label == target_location_label
992
+ caller_locations(2, 1).first.base_label == target_location_label
993
993
  # TODO: imcomplete condition
994
994
  end
995
995
  end
@@ -1005,7 +1005,7 @@ module DEBUGGER__
1005
1005
  true if pat === tp.callee_id.to_s
1006
1006
  else # :return, :b_return
1007
1007
  true if depth >= DEBUGGER__.frame_depth - 3 &&
1008
- caller_locations(2, 1).first.label == target_location_label
1008
+ caller_locations(2, 1).first.base_label == target_location_label
1009
1009
  # TODO: imcomplete condition
1010
1010
  end
1011
1011
  end
@@ -1056,9 +1056,6 @@ module DEBUGGER__
1056
1056
  end
1057
1057
  when :call
1058
1058
  result = frame_eval(eval_src)
1059
- when :irb
1060
- require_relative "irb_integration"
1061
- activate_irb_integration
1062
1059
  when :display, :try_display
1063
1060
  failed_results = []
1064
1061
  eval_src.each_with_index{|src, i|
data/lib/debug/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DEBUGGER__
4
- VERSION = "1.9.0"
4
+ VERSION = "1.9.2"
5
5
  end
data/misc/README.md.erb CHANGED
@@ -13,10 +13,10 @@ New debug.rb has several advantages:
13
13
  * TCP/IP
14
14
  * Integration with rich debugger frontends
15
15
 
16
- Frontend | [Console](https://github.com/ruby/debug#invoke-as-a-remote-debuggee) | [VSCode](https://github.com/ruby/debug#vscode-integration) | [Chrome DevTool](#chrome-devtool-integration) |
17
- ---|---|---|---|
18
- Connection | UDS, TCP/IP | UDS, TCP/IP | TCP/IP |
19
- Requirement | No | [vscode-rdbg](https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg) | Chrome |
16
+ | Frontend | [Console](https://github.com/ruby/debug#invoke-as-a-remote-debuggee) | [VSCode](https://github.com/ruby/debug#vscode-integration) | [Chrome DevTool](#chrome-devtool-integration) |
17
+ | ----------- | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | --------------------------------------------- |
18
+ | Connection | UDS, TCP/IP | UDS, TCP/IP | TCP/IP |
19
+ | Requirement | No | [vscode-rdbg](https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg) | Chrome |
20
20
 
21
21
  * Extensible: application can introduce debugging support in several ways:
22
22
  * By `rdbg` command
@@ -289,10 +289,10 @@ You can run your application as a remote debuggee, and the remote debugger conso
289
289
 
290
290
  There are multiple ways to run your program as a debuggee:
291
291
 
292
- Stop at program start | [`rdbg` option](https://github.com/ruby/debug#rdbg---open-or-rdbg--o-for-short) | [require](https://github.com/ruby/debug#require-debugopen-in-a-program) | [debugger API](https://github.com/ruby/debug#start-by-method)
293
- ---|---|---|---|
294
- Yes | `rdbg --open` | `require "debug/open"` | `DEBUGGER__.open`
295
- No | `rdbg --open --nonstop` | `require "debug/open_nonstop"` | `DEBUGGER__.open(nonstop: true)`
292
+ | Stop at program start | [`rdbg` option](https://github.com/ruby/debug#rdbg---open-or-rdbg--o-for-short) | [require](https://github.com/ruby/debug#require-debugopen-in-a-program) | [debugger API](https://github.com/ruby/debug#start-by-method) |
293
+ | --------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------- |
294
+ | Yes | `rdbg --open` | `require "debug/open"` | `DEBUGGER__.open` |
295
+ | No | `rdbg --open --nonstop` | `require "debug/open_nonstop"` | `DEBUGGER__.open(nonstop: true)` |
296
296
 
297
297
  #### `rdbg --open` (or `rdbg -O` for short)
298
298
 
@@ -509,6 +509,30 @@ The `<...>` notation means the argument.
509
509
 
510
510
  <%= DEBUGGER__.help %>
511
511
 
512
+ ### Using IRB as the Debug Console
513
+
514
+ Starting from version `v1.9`, you can now use IRB as the debug console. This integration brings additional features such as:
515
+
516
+ * Autocompletion
517
+ * Support for multi-line input
518
+ * Access to commands not available in `debug`, like `show_source` or `show_doc`
519
+ * [Configurable command aliases](https://docs.ruby-lang.org/en/master/IRB.html#module-IRB-label-Command+Aliases)
520
+
521
+ To switch to the IRB console, simply use the `irb` command in the debug console.
522
+
523
+ Once activated, you'll notice the prompt changes to:
524
+
525
+ ```txt
526
+ irb:rdbg(main):001>
527
+ ```
528
+
529
+ If you want to make IRB the default console for all sessions, configure the `irb_console` setting by either:
530
+
531
+ * Setting the `RUBY_DEBUG_IRB_CONSOLE=true` environment variable
532
+ * Or adding `config set irb_console 1` to your `~/.rdbgrc`
533
+
534
+ To disable the IRB console in the current session, execute `config set irb_console 0` in the console.
535
+
512
536
  ## Debugger API
513
537
 
514
538
  ### Start debugging
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debug
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.0
4
+ version: 1.9.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Koichi Sasada
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2023-12-10 00:00:00.000000000 Z
10
+ date: 2024-03-29 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: irb
@@ -90,7 +89,6 @@ licenses:
90
89
  metadata:
91
90
  homepage_uri: https://github.com/ruby/debug
92
91
  source_code_uri: https://github.com/ruby/debug
93
- post_install_message:
94
92
  rdoc_options: []
95
93
  require_paths:
96
94
  - lib
@@ -105,8 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
103
  - !ruby/object:Gem::Version
106
104
  version: '0'
107
105
  requirements: []
108
- rubygems_version: 3.5.0.dev
109
- signing_key:
106
+ rubygems_version: 3.6.0.dev
110
107
  specification_version: 4
111
108
  summary: Debugging functionality for Ruby
112
109
  test_files: []