debug 1.3.2 → 1.3.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/debug/color.rb +1 -1
- data/lib/debug/server_cdp.rb +17 -1
- data/lib/debug/server_dap.rb +1 -1
- data/lib/debug/session.rb +30 -0
- data/lib/debug/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d2f3adfa33baa3d7ef0a8ff1924d4d148be909f8cbdfc1992efda7e4ef564a17
|
4
|
+
data.tar.gz: 43085e7bec187d698d42bf7a4fc7c3ee2f4cde387cf411b2648411dc6cbb1721
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5bafcaeeb661378a3696968655cfc9b24aadb6c0ada385d143406472db4cc1a51d55bb460431ef9679d8e6ffe846c269f731335380999256565b2d259139f2d9
|
7
|
+
data.tar.gz: 961d6a453a4f117af9e056658d31afc39e173668f32eb1745f0bdad842c4891a2b6bff0bfec45d6e17fc94108da3ac4a5274118a4f0213ae0a2a5a181de89f99
|
data/lib/debug/color.rb
CHANGED
data/lib/debug/server_cdp.rb
CHANGED
@@ -96,6 +96,7 @@ module DEBUGGER__
|
|
96
96
|
|
97
97
|
def process
|
98
98
|
bps = []
|
99
|
+
@src_map = {}
|
99
100
|
loop do
|
100
101
|
req = @web_sock.extract_data
|
101
102
|
$stderr.puts '[>]' + req.inspect if SHOW_PROTOCOL
|
@@ -106,6 +107,7 @@ module DEBUGGER__
|
|
106
107
|
when 'Page.getResourceTree'
|
107
108
|
abs = File.absolute_path($0)
|
108
109
|
src = File.read(abs)
|
110
|
+
@src_map[abs] = src
|
109
111
|
send_response req,
|
110
112
|
frameTree: {
|
111
113
|
frame: {
|
@@ -134,7 +136,7 @@ module DEBUGGER__
|
|
134
136
|
}
|
135
137
|
when 'Debugger.getScriptSource'
|
136
138
|
s_id = req.dig('params', 'scriptId')
|
137
|
-
src =
|
139
|
+
src = get_source_code s_id
|
138
140
|
send_response req, scriptSource: src
|
139
141
|
@q_msg << req
|
140
142
|
when 'Page.startScreencast', 'Emulation.setTouchEmulationEnabled', 'Emulation.setEmitTouchEventsForMouse',
|
@@ -168,6 +170,9 @@ module DEBUGGER__
|
|
168
170
|
when 'Debugger.getPossibleBreakpoints'
|
169
171
|
s_id = req.dig('params', 'start', 'scriptId')
|
170
172
|
line = req.dig('params', 'start', 'lineNumber')
|
173
|
+
src = get_source_code s_id
|
174
|
+
end_line = src.count("\n")
|
175
|
+
line = end_line if line > end_line
|
171
176
|
send_response req,
|
172
177
|
locations: [
|
173
178
|
{ scriptId: s_id,
|
@@ -178,6 +183,9 @@ module DEBUGGER__
|
|
178
183
|
line = req.dig('params', 'lineNumber')
|
179
184
|
path = req.dig('params', 'url').match('http://debuggee(.*)')[1]
|
180
185
|
cond = req.dig('params', 'condition')
|
186
|
+
src = get_source_code path
|
187
|
+
end_line = src.count("\n")
|
188
|
+
line = end_line if line > end_line
|
181
189
|
if cond != ''
|
182
190
|
bps << SESSION.add_line_breakpoint(path, line + 1, cond: cond)
|
183
191
|
else
|
@@ -200,6 +208,14 @@ module DEBUGGER__
|
|
200
208
|
end
|
201
209
|
end
|
202
210
|
|
211
|
+
def get_source_code path
|
212
|
+
return @src_map[path] if @src_map[path]
|
213
|
+
|
214
|
+
src = File.read(path)
|
215
|
+
@src_map[path] = src
|
216
|
+
src
|
217
|
+
end
|
218
|
+
|
203
219
|
## Called by the SESSION thread
|
204
220
|
|
205
221
|
def readline prompt
|
data/lib/debug/server_dap.rb
CHANGED
@@ -491,7 +491,7 @@ module DEBUGGER__
|
|
491
491
|
case type
|
492
492
|
when :backtrace
|
493
493
|
event! :dap_result, :backtrace, req, {
|
494
|
-
stackFrames: @target_frames.map.
|
494
|
+
stackFrames: @target_frames.map.{|frame|
|
495
495
|
path = frame.realpath || frame.path
|
496
496
|
ref = frame.file_lines unless path && File.exist?(path)
|
497
497
|
|
data/lib/debug/session.rb
CHANGED
@@ -1555,6 +1555,36 @@ module DEBUGGER__
|
|
1555
1555
|
@postmortem = false
|
1556
1556
|
end
|
1557
1557
|
|
1558
|
+
def capture_exception_frames *exclude_path
|
1559
|
+
postmortem_hook = TracePoint.new(:raise){|tp|
|
1560
|
+
exc = tp.raised_exception
|
1561
|
+
frames = DEBUGGER__.capture_frames(__dir__)
|
1562
|
+
|
1563
|
+
exclude_path.each{|ex|
|
1564
|
+
if Regexp === ex
|
1565
|
+
frames.delete_if{|e| ex =~ e.path}
|
1566
|
+
else
|
1567
|
+
frames.delete_if{|e| e.path.start_with? ex.to_s}
|
1568
|
+
end
|
1569
|
+
}
|
1570
|
+
exc.instance_variable_set(:@__debugger_postmortem_frames, frames)
|
1571
|
+
}
|
1572
|
+
postmortem_hook.enable
|
1573
|
+
|
1574
|
+
begin
|
1575
|
+
yield
|
1576
|
+
nil
|
1577
|
+
rescue Exception => e
|
1578
|
+
if e.instance_variable_defined? :@__debugger_postmortem_frames
|
1579
|
+
e
|
1580
|
+
else
|
1581
|
+
raise
|
1582
|
+
end
|
1583
|
+
ensure
|
1584
|
+
postmortem_hook.disable
|
1585
|
+
end
|
1586
|
+
end
|
1587
|
+
|
1558
1588
|
def postmortem=(is_enable)
|
1559
1589
|
if is_enable
|
1560
1590
|
unless @postmortem_hook
|
data/lib/debug/version.rb
CHANGED
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.3.
|
4
|
+
version: 1.3.3
|
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-10-
|
11
|
+
date: 2021-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: irb
|