debug 1.3.2 → 1.3.3
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/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
|