readapt 1.2.0 → 1.4.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +16 -16
- data/.rspec +2 -2
- data/.travis.yml +19 -18
- data/CHANGELOG.md +97 -80
- data/Gemfile +4 -4
- data/LICENSE.txt +21 -21
- data/README.md +37 -37
- data/Rakefile +14 -14
- data/bin/console +14 -14
- data/bin/setup +8 -8
- data/exe/readapt +5 -5
- data/ext/readapt/breakpoints.c +83 -83
- data/ext/readapt/breakpoints.h +11 -11
- data/ext/readapt/extconf.rb +0 -0
- data/ext/readapt/frame.c +137 -137
- data/ext/readapt/frame.h +17 -17
- data/ext/readapt/inspector.c +51 -51
- data/ext/readapt/inspector.h +8 -8
- data/ext/readapt/lookup_table.c +211 -211
- data/ext/readapt/lookup_table.h +30 -30
- data/ext/readapt/monitor.c +2 -2
- data/ext/readapt/monitor.h +0 -0
- data/ext/readapt/normalize.c +62 -59
- data/ext/readapt/normalize.h +7 -7
- data/ext/readapt/readapt.c +18 -18
- data/ext/readapt/stack.c +86 -86
- data/ext/readapt/stack.h +20 -20
- data/ext/readapt/threads.c +13 -2
- data/ext/readapt/threads.h +2 -1
- data/lib/readapt.rb +21 -21
- data/lib/readapt/adapter.rb +98 -98
- data/lib/readapt/breakpoint.rb +21 -21
- data/lib/readapt/data_reader.rb +62 -62
- data/lib/readapt/debugger.rb +227 -220
- data/lib/readapt/error.rb +63 -63
- data/lib/readapt/finder.rb +34 -34
- data/lib/readapt/frame.rb +40 -40
- data/lib/readapt/input.rb +7 -7
- data/lib/readapt/message.rb +62 -62
- data/lib/readapt/message/attach.rb +11 -11
- data/lib/readapt/message/base.rb +32 -32
- data/lib/readapt/message/configuration_done.rb +11 -11
- data/lib/readapt/message/continue.rb +15 -15
- data/lib/readapt/message/disconnect.rb +13 -13
- data/lib/readapt/message/evaluate.rb +18 -18
- data/lib/readapt/message/initialize.rb +21 -13
- data/lib/readapt/message/launch.rb +11 -11
- data/lib/readapt/message/next.rb +12 -12
- data/lib/readapt/message/pause.rb +11 -11
- data/lib/readapt/message/scopes.rb +26 -26
- data/lib/readapt/message/set_breakpoints.rb +25 -25
- data/lib/readapt/message/set_exception_breakpoints.rb +11 -8
- data/lib/readapt/message/stack_trace.rb +38 -38
- data/lib/readapt/message/step_in.rb +11 -11
- data/lib/readapt/message/step_out.rb +11 -11
- data/lib/readapt/message/threads.rb +18 -18
- data/lib/readapt/message/variables.rb +53 -61
- data/lib/readapt/monitor.rb +0 -0
- data/lib/readapt/output.rb +25 -25
- data/lib/readapt/references.rb +27 -27
- data/lib/readapt/server.rb +22 -22
- data/lib/readapt/shell.rb +104 -104
- data/lib/readapt/snapshot.rb +0 -0
- data/lib/readapt/thread.rb +20 -25
- data/lib/readapt/variable.rb +0 -0
- data/lib/readapt/version.rb +3 -3
- data/readapt.gemspec +39 -39
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2768061679bfb54d8efa38d35341d19660f86bfecff00fc6e23afeedcdfce8e3
|
4
|
+
data.tar.gz: f7ac46c3924e0b326811655778f08424bada58e7f93e437efbd4e396f68465cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec506c8deb5503ed8ae0673bd35ee90fa9f40b2f809c6a7fae3c4c4b2722223d2cf9656e6832920a30e0a4e2ea1cd1963dba717afd051656d4db26bc4bc76d5e
|
7
|
+
data.tar.gz: 1a8168e900e4681dd72911025cde8fbf776f028d0b4fd7ad402ad3c26d3968f5f6c1cdb764cc60a647be57adf26a3ec99b7cbd703e7d2c8c47ae3e0713669046
|
data/.gitignore
CHANGED
@@ -1,16 +1,16 @@
|
|
1
|
-
/.bundle/
|
2
|
-
/.yardoc
|
3
|
-
/_yardoc/
|
4
|
-
/coverage/
|
5
|
-
/doc/
|
6
|
-
/pkg/
|
7
|
-
/spec/reports/
|
8
|
-
/tmp/
|
9
|
-
*.so
|
10
|
-
*.bundle
|
11
|
-
/.vscode/
|
12
|
-
.project
|
13
|
-
Gemfile.lock
|
14
|
-
|
15
|
-
# rspec failure tracking
|
16
|
-
.rspec_status
|
1
|
+
/.bundle/
|
2
|
+
/.yardoc
|
3
|
+
/_yardoc/
|
4
|
+
/coverage/
|
5
|
+
/doc/
|
6
|
+
/pkg/
|
7
|
+
/spec/reports/
|
8
|
+
/tmp/
|
9
|
+
*.so
|
10
|
+
*.bundle
|
11
|
+
/.vscode/
|
12
|
+
.project
|
13
|
+
Gemfile.lock
|
14
|
+
|
15
|
+
# rspec failure tracking
|
16
|
+
.rspec_status
|
data/.rspec
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
--color
|
2
|
-
--require spec_helper
|
1
|
+
--color
|
2
|
+
--require spec_helper
|
data/.travis.yml
CHANGED
@@ -1,18 +1,19 @@
|
|
1
|
-
---
|
2
|
-
sudo: false
|
3
|
-
language: ruby
|
4
|
-
rvm:
|
5
|
-
- 2.2
|
6
|
-
- 2.3
|
7
|
-
- 2.4
|
8
|
-
- 2.5
|
9
|
-
- 2.6
|
10
|
-
- 2.7
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
-
|
18
|
-
|
1
|
+
---
|
2
|
+
sudo: false
|
3
|
+
language: ruby
|
4
|
+
rvm:
|
5
|
+
- 2.2
|
6
|
+
- 2.3
|
7
|
+
- 2.4
|
8
|
+
- 2.5
|
9
|
+
- 2.6
|
10
|
+
- 2.7
|
11
|
+
- 3.0
|
12
|
+
matrix:
|
13
|
+
include:
|
14
|
+
- rvm: 2.7
|
15
|
+
os: osx
|
16
|
+
before_script:
|
17
|
+
- bundle install
|
18
|
+
- rake compile
|
19
|
+
script: rspec
|
data/CHANGELOG.md
CHANGED
@@ -1,80 +1,97 @@
|
|
1
|
-
# 1.
|
2
|
-
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
-
|
14
|
-
|
15
|
-
-
|
16
|
-
-
|
17
|
-
|
18
|
-
#
|
19
|
-
-
|
20
|
-
|
21
|
-
|
22
|
-
-
|
23
|
-
-
|
24
|
-
-
|
25
|
-
|
26
|
-
-
|
27
|
-
|
28
|
-
|
29
|
-
-
|
30
|
-
|
31
|
-
|
32
|
-
-
|
33
|
-
-
|
34
|
-
|
35
|
-
# 0.
|
36
|
-
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
-
|
41
|
-
|
42
|
-
|
43
|
-
-
|
44
|
-
|
45
|
-
# 0.
|
46
|
-
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
-
|
72
|
-
-
|
73
|
-
|
74
|
-
# 0.
|
75
|
-
-
|
76
|
-
|
77
|
-
-
|
78
|
-
|
79
|
-
|
80
|
-
-
|
1
|
+
# 1.4.3 - July 23, 2021
|
2
|
+
- Remove unneeded debug output
|
3
|
+
|
4
|
+
# 1.4.2 - July 23, 2021
|
5
|
+
- Fix path normalizing in Windows
|
6
|
+
|
7
|
+
# 1.4.1 - July 8, 2021
|
8
|
+
- Thread object handling
|
9
|
+
- Rescue StandardError instead of Exception
|
10
|
+
|
11
|
+
# 1.4.0 - June 14, 2021
|
12
|
+
- Configurable exception breakpoints
|
13
|
+
- Update backport gem
|
14
|
+
|
15
|
+
# 1.3.0 - June 3, 2021
|
16
|
+
- Variables message reads class/instance variables
|
17
|
+
|
18
|
+
# 1.2.0 - February 24, 2021
|
19
|
+
- Pause on exceptions
|
20
|
+
- Refactored lookup tables
|
21
|
+
|
22
|
+
# 1.1.1 - December 15, 2020
|
23
|
+
- Update rake
|
24
|
+
- Fix Encoding::UndefinedConversionError (#8)
|
25
|
+
|
26
|
+
# 1.1.0 - September 13, 2020
|
27
|
+
- Use 32-bit integers for variable and thread references (#6)
|
28
|
+
|
29
|
+
# 1.0.0 - February 9, 2020
|
30
|
+
- Refactor server and target process communication
|
31
|
+
- STDIO server support
|
32
|
+
- Fix zombie process bugs
|
33
|
+
- Sort variables alphabetically
|
34
|
+
|
35
|
+
# 0.8.1 - November 14, 2019
|
36
|
+
- Header name conflict in MacOS (#4)
|
37
|
+
|
38
|
+
# 0.8.0 - November 9, 2019
|
39
|
+
- Multiple frames
|
40
|
+
- Flush output on disconnect
|
41
|
+
- Use Ruby debug inspector for stack frames
|
42
|
+
- Faster line processing
|
43
|
+
- Monitor disables GC
|
44
|
+
|
45
|
+
# 0.7.1 - October 13, 2019
|
46
|
+
- Debugger sets program name
|
47
|
+
|
48
|
+
# 0.7.0 - October 12, 2019
|
49
|
+
- Conditional breakpoints
|
50
|
+
- Graceful shutdown (#2)
|
51
|
+
|
52
|
+
# 0.6.2 - September 10, 2019
|
53
|
+
- Monitor processes all new threads
|
54
|
+
- Discard buggy output redirection
|
55
|
+
|
56
|
+
# 0.6.1 - September 7, 2019
|
57
|
+
- Ignore nilable paths in thread events
|
58
|
+
|
59
|
+
# 0.6.0 - August 26, 2019
|
60
|
+
- Evaluate in REPL
|
61
|
+
|
62
|
+
# 0.5.0 - August 20, 2019
|
63
|
+
- Monitor stores paths as C strings
|
64
|
+
- Fixed malloc size for normalized paths
|
65
|
+
- Fixed table insertion before existing items
|
66
|
+
|
67
|
+
# 0.4.0 - August 19. 2019
|
68
|
+
- Breakpoints use C implementation of hash tables
|
69
|
+
- Simplified entry point detection
|
70
|
+
|
71
|
+
# 0.3.5 - August 16, 2019
|
72
|
+
- Variables message checks for null frames
|
73
|
+
|
74
|
+
# 0.3.4 - August 12, 2019
|
75
|
+
- Monitor normalizes paths.
|
76
|
+
|
77
|
+
# 0.3.3 - August 12, 2019
|
78
|
+
- Remove RB_NIL_P for backwards compatibility
|
79
|
+
|
80
|
+
# 0.3.2 - August 11, 2019
|
81
|
+
- Unnecessary thread in Backport.run
|
82
|
+
|
83
|
+
# 0.3.1 - August 10. 2019
|
84
|
+
- Require Ruby >= 2.2
|
85
|
+
|
86
|
+
# 0.3.0 - August 9. 2019
|
87
|
+
- Synchronized events
|
88
|
+
- Handle multiple paused threads
|
89
|
+
- Isolate the Backport machine
|
90
|
+
|
91
|
+
# 0.2.0 - August 7, 2019
|
92
|
+
- Find external programs
|
93
|
+
- Improved stdout/stderr redirects
|
94
|
+
- Individual thread control
|
95
|
+
|
96
|
+
# 0.1.0 - August 5, 2019
|
97
|
+
- First release
|
data/Gemfile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
source "https://rubygems.org"
|
2
|
-
|
3
|
-
# Specify your gem's dependencies in readapt.gemspec
|
4
|
-
gemspec
|
1
|
+
source "https://rubygems.org"
|
2
|
+
|
3
|
+
# Specify your gem's dependencies in readapt.gemspec
|
4
|
+
gemspec
|
data/LICENSE.txt
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
The MIT License (MIT)
|
2
|
-
|
3
|
-
Copyright (c) 2019 Fred Snyder
|
4
|
-
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
7
|
-
in the Software without restriction, including without limitation the rights
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
10
|
-
furnished to do so, subject to the following conditions:
|
11
|
-
|
12
|
-
The above copyright notice and this permission notice shall be included in
|
13
|
-
all copies or substantial portions of the Software.
|
14
|
-
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
-
THE SOFTWARE.
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2019 Fred Snyder
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,37 +1,37 @@
|
|
1
|
-
# Readapt
|
2
|
-
|
3
|
-
A Ruby debugger that supports the [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/specification).
|
4
|
-
|
5
|
-
*This gem is currently in early development*.
|
6
|
-
|
7
|
-
## Installation
|
8
|
-
|
9
|
-
Add this line to your application's Gemfile:
|
10
|
-
|
11
|
-
```ruby
|
12
|
-
gem 'readapt'
|
13
|
-
```
|
14
|
-
|
15
|
-
And then execute:
|
16
|
-
|
17
|
-
$ bundle
|
18
|
-
|
19
|
-
Or install it yourself as:
|
20
|
-
|
21
|
-
$ gem install readapt
|
22
|
-
|
23
|
-
## Usage
|
24
|
-
|
25
|
-
Run `readapt serve` to start the server. The default client connection is host 127.0.0.1, port 1234.
|
26
|
-
|
27
|
-
## Integrations
|
28
|
-
|
29
|
-
Plug-ins and extensions using Readapt are available for the following editors:
|
30
|
-
|
31
|
-
* **Visual Studio Code**
|
32
|
-
* Marketplace: https://marketplace.visualstudio.com/items?itemName=castwide.ruby-debug
|
33
|
-
* GitHub: https://github.com/castwide/vscode-ruby-debug
|
34
|
-
|
35
|
-
* **Eclipse**
|
36
|
-
* Marketplace: https://marketplace.eclipse.org/content/ruby-solargraph
|
37
|
-
* GitHub: https://github.com/PyvesB/eclipse-solargraph
|
1
|
+
# Readapt
|
2
|
+
|
3
|
+
A Ruby debugger that supports the [Debug Adapter Protocol](https://microsoft.github.io/debug-adapter-protocol/specification).
|
4
|
+
|
5
|
+
*This gem is currently in early development*.
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'readapt'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install readapt
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
Run `readapt serve` to start the server. The default client connection is host 127.0.0.1, port 1234.
|
26
|
+
|
27
|
+
## Integrations
|
28
|
+
|
29
|
+
Plug-ins and extensions using Readapt are available for the following editors:
|
30
|
+
|
31
|
+
* **Visual Studio Code**
|
32
|
+
* Marketplace: https://marketplace.visualstudio.com/items?itemName=castwide.ruby-debug
|
33
|
+
* GitHub: https://github.com/castwide/vscode-ruby-debug
|
34
|
+
|
35
|
+
* **Eclipse**
|
36
|
+
* Marketplace: https://marketplace.eclipse.org/content/ruby-solargraph
|
37
|
+
* GitHub: https://github.com/PyvesB/eclipse-solargraph
|
data/Rakefile
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
require "bundler/gem_tasks"
|
2
|
-
require "rspec/core/rake_task"
|
3
|
-
require "rake/extensiontask"
|
4
|
-
require 'readapt/version'
|
5
|
-
require 'tmpdir'
|
6
|
-
|
7
|
-
RSpec::Core::RakeTask.new(:spec)
|
8
|
-
|
9
|
-
task :default => :spec
|
10
|
-
|
11
|
-
# Compile tasks
|
12
|
-
Rake::ExtensionTask.new "readapt" do |ext|
|
13
|
-
ext.lib_dir = "lib/readapt"
|
14
|
-
end
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rspec/core/rake_task"
|
3
|
+
require "rake/extensiontask"
|
4
|
+
require 'readapt/version'
|
5
|
+
require 'tmpdir'
|
6
|
+
|
7
|
+
RSpec::Core::RakeTask.new(:spec)
|
8
|
+
|
9
|
+
task :default => :spec
|
10
|
+
|
11
|
+
# Compile tasks
|
12
|
+
Rake::ExtensionTask.new "readapt" do |ext|
|
13
|
+
ext.lib_dir = "lib/readapt"
|
14
|
+
end
|
data/bin/console
CHANGED
@@ -1,14 +1,14 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "readapt"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start(__FILE__)
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "readapt"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start(__FILE__)
|