byebug 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +10 -0
- data/.travis.yml +8 -0
- data/AUTHORS +10 -0
- data/CHANGELOG.md +2 -0
- data/CONTRIBUTING.md +1 -0
- data/Gemfile +3 -0
- data/LICENSE +20 -0
- data/README.md +5 -0
- data/Rakefile +28 -0
- data/bin/byebug +395 -0
- data/byebug.gemspec +29 -0
- data/doc/hanoi.rb +35 -0
- data/doc/primes.rb +28 -0
- data/doc/rdebug-emacs.texi +1030 -0
- data/doc/test-tri2.rb +18 -0
- data/doc/tri3.rb +8 -0
- data/doc/triangle.rb +12 -0
- data/ext/byebug/breakpoint.c +476 -0
- data/ext/byebug/byebug.c +512 -0
- data/ext/byebug/byebug.h +131 -0
- data/ext/byebug/context.c +424 -0
- data/ext/byebug/extconf.rb +21 -0
- data/ext/byebug/locker.c +53 -0
- data/lib/byebug.rb +404 -0
- data/lib/byebug/command.rb +232 -0
- data/lib/byebug/commands/breakpoints.rb +153 -0
- data/lib/byebug/commands/catchpoint.rb +56 -0
- data/lib/byebug/commands/condition.rb +49 -0
- data/lib/byebug/commands/continue.rb +38 -0
- data/lib/byebug/commands/control.rb +110 -0
- data/lib/byebug/commands/display.rb +122 -0
- data/lib/byebug/commands/edit.rb +48 -0
- data/lib/byebug/commands/enable.rb +202 -0
- data/lib/byebug/commands/eval.rb +176 -0
- data/lib/byebug/commands/finish.rb +43 -0
- data/lib/byebug/commands/frame.rb +303 -0
- data/lib/byebug/commands/help.rb +56 -0
- data/lib/byebug/commands/info.rb +462 -0
- data/lib/byebug/commands/irb.rb +123 -0
- data/lib/byebug/commands/jump.rb +66 -0
- data/lib/byebug/commands/kill.rb +51 -0
- data/lib/byebug/commands/list.rb +94 -0
- data/lib/byebug/commands/method.rb +84 -0
- data/lib/byebug/commands/quit.rb +39 -0
- data/lib/byebug/commands/reload.rb +40 -0
- data/lib/byebug/commands/save.rb +90 -0
- data/lib/byebug/commands/set.rb +210 -0
- data/lib/byebug/commands/show.rb +246 -0
- data/lib/byebug/commands/skip.rb +35 -0
- data/lib/byebug/commands/source.rb +36 -0
- data/lib/byebug/commands/stepping.rb +83 -0
- data/lib/byebug/commands/threads.rb +189 -0
- data/lib/byebug/commands/tmate.rb +36 -0
- data/lib/byebug/commands/trace.rb +56 -0
- data/lib/byebug/commands/variables.rb +199 -0
- data/lib/byebug/context.rb +58 -0
- data/lib/byebug/helper.rb +69 -0
- data/lib/byebug/interface.rb +223 -0
- data/lib/byebug/processor.rb +468 -0
- data/lib/byebug/version.rb +3 -0
- data/man/rdebug.1 +241 -0
- data/test/breakpoints_test.rb +357 -0
- data/test/conditions_test.rb +77 -0
- data/test/continue_test.rb +44 -0
- data/test/display_test.rb +141 -0
- data/test/edit_test.rb +56 -0
- data/test/eval_test.rb +92 -0
- data/test/examples/breakpoint1.rb +15 -0
- data/test/examples/breakpoint2.rb +7 -0
- data/test/examples/conditions.rb +4 -0
- data/test/examples/continue.rb +4 -0
- data/test/examples/display.rb +5 -0
- data/test/examples/edit.rb +3 -0
- data/test/examples/edit2.rb +3 -0
- data/test/examples/eval.rb +4 -0
- data/test/examples/finish.rb +20 -0
- data/test/examples/frame.rb +20 -0
- data/test/examples/frame_threads.rb +31 -0
- data/test/examples/help.rb +2 -0
- data/test/examples/info.rb +38 -0
- data/test/examples/info2.rb +3 -0
- data/test/examples/info_threads.rb +48 -0
- data/test/examples/irb.rb +6 -0
- data/test/examples/jump.rb +14 -0
- data/test/examples/kill.rb +2 -0
- data/test/examples/list.rb +12 -0
- data/test/examples/method.rb +15 -0
- data/test/examples/post_mortem.rb +19 -0
- data/test/examples/quit.rb +2 -0
- data/test/examples/reload.rb +6 -0
- data/test/examples/restart.rb +6 -0
- data/test/examples/save.rb +3 -0
- data/test/examples/set.rb +3 -0
- data/test/examples/set_annotate.rb +12 -0
- data/test/examples/settings.rb +1 -0
- data/test/examples/show.rb +2 -0
- data/test/examples/source.rb +3 -0
- data/test/examples/stepping.rb +21 -0
- data/test/examples/thread.rb +32 -0
- data/test/examples/tmate.rb +10 -0
- data/test/examples/trace.rb +7 -0
- data/test/examples/trace_threads.rb +20 -0
- data/test/examples/variables.rb +26 -0
- data/test/finish_test.rb +48 -0
- data/test/frame_test.rb +143 -0
- data/test/help_test.rb +50 -0
- data/test/info_test.rb +313 -0
- data/test/irb_test.rb +81 -0
- data/test/jump_test.rb +70 -0
- data/test/kill_test.rb +48 -0
- data/test/list_test.rb +145 -0
- data/test/method_test.rb +70 -0
- data/test/post_mortem_test.rb +27 -0
- data/test/quit_test.rb +56 -0
- data/test/reload_test.rb +44 -0
- data/test/restart_test.rb +164 -0
- data/test/save_test.rb +92 -0
- data/test/set_test.rb +177 -0
- data/test/show_test.rb +293 -0
- data/test/source_test.rb +45 -0
- data/test/stepping_test.rb +130 -0
- data/test/support/breakpoint.rb +13 -0
- data/test/support/context.rb +14 -0
- data/test/support/matchers.rb +67 -0
- data/test/support/mocha_extensions.rb +72 -0
- data/test/support/processor.rb +7 -0
- data/test/support/test_dsl.rb +206 -0
- data/test/support/test_interface.rb +68 -0
- data/test/test_helper.rb +10 -0
- data/test/tmate_test.rb +44 -0
- data/test/trace_test.rb +159 -0
- data/test/variables_test.rb +119 -0
- metadata +265 -0
@@ -0,0 +1,31 @@
|
|
1
|
+
byebug
|
2
|
+
|
3
|
+
@should_break = false
|
4
|
+
|
5
|
+
t = Thread.new do
|
6
|
+
while !@should_break
|
7
|
+
A.new.a
|
8
|
+
sleep 0.1
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
class A
|
13
|
+
def a
|
14
|
+
b
|
15
|
+
end
|
16
|
+
def b
|
17
|
+
c
|
18
|
+
2
|
19
|
+
end
|
20
|
+
def c
|
21
|
+
d('a')
|
22
|
+
3
|
23
|
+
end
|
24
|
+
def d(e)
|
25
|
+
5
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
A.new.a
|
30
|
+
@should_break = true
|
31
|
+
t.join
|
@@ -0,0 +1,38 @@
|
|
1
|
+
byebug
|
2
|
+
def bla(a, b)
|
3
|
+
a + b
|
4
|
+
end
|
5
|
+
2
|
6
|
+
3
|
7
|
+
4
|
8
|
+
5
|
9
|
+
6
|
10
|
+
bla("a" * 30, "b")
|
11
|
+
|
12
|
+
class A
|
13
|
+
def initialize
|
14
|
+
@foo = "bar"
|
15
|
+
@bla = "blabla"
|
16
|
+
end
|
17
|
+
|
18
|
+
def a
|
19
|
+
a = "1" * 30
|
20
|
+
b = 2
|
21
|
+
@foo
|
22
|
+
end
|
23
|
+
|
24
|
+
def c
|
25
|
+
a = BasicObject.new
|
26
|
+
a
|
27
|
+
end
|
28
|
+
|
29
|
+
def b
|
30
|
+
a
|
31
|
+
e = "%.2f"
|
32
|
+
e
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
A.new.b
|
37
|
+
A.new.a
|
38
|
+
A.new.c
|
@@ -0,0 +1,48 @@
|
|
1
|
+
byebug
|
2
|
+
def bla(a, b)
|
3
|
+
a + b
|
4
|
+
end
|
5
|
+
2
|
6
|
+
3
|
7
|
+
4
|
8
|
+
5
|
9
|
+
6
|
10
|
+
bla("a" * 30, "b")
|
11
|
+
|
12
|
+
class A
|
13
|
+
def initialize
|
14
|
+
@foo = "bar"
|
15
|
+
@bla = "blabla"
|
16
|
+
end
|
17
|
+
|
18
|
+
def a
|
19
|
+
a = "1" * 30
|
20
|
+
b = 2
|
21
|
+
@foo
|
22
|
+
end
|
23
|
+
|
24
|
+
def c
|
25
|
+
a = BasicObject.new
|
26
|
+
a
|
27
|
+
end
|
28
|
+
|
29
|
+
def b
|
30
|
+
a
|
31
|
+
e = "%.2f"
|
32
|
+
e
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
@break = false
|
37
|
+
t1 = Thread.new do
|
38
|
+
while true
|
39
|
+
break if @break
|
40
|
+
sleep 0.02
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
A.new.b
|
45
|
+
A.new.a
|
46
|
+
A.new.c
|
47
|
+
@break = true
|
48
|
+
t1.join
|
@@ -0,0 +1 @@
|
|
1
|
+
byebug
|
@@ -0,0 +1,32 @@
|
|
1
|
+
byebug
|
2
|
+
class ThreadExample
|
3
|
+
def initialize
|
4
|
+
Thread.main[:should_break] = false
|
5
|
+
end
|
6
|
+
|
7
|
+
def launch
|
8
|
+
@t1 = Thread.new do
|
9
|
+
while true
|
10
|
+
break if Thread.main[:should_break]
|
11
|
+
sleep 0.02
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
@t2 = Thread.new do
|
16
|
+
while true
|
17
|
+
sleep 0.02
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
@t1.join
|
22
|
+
Thread.main[:should_break]
|
23
|
+
end
|
24
|
+
|
25
|
+
def kill
|
26
|
+
@t2.kill
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
t = ThreadExample.new
|
31
|
+
t.launch
|
32
|
+
t.kill
|
@@ -0,0 +1,26 @@
|
|
1
|
+
byebug
|
2
|
+
class VariablesExample
|
3
|
+
SOMECONST = 'foo' unless defined?(SOMECONST)
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
$glob = 100
|
7
|
+
@inst_a = 1
|
8
|
+
@inst_b = 2
|
9
|
+
@inst_c = "1" * 40
|
10
|
+
@inst_d = BasicObject.new
|
11
|
+
@@class_c = 3
|
12
|
+
end
|
13
|
+
|
14
|
+
def run
|
15
|
+
a = 4
|
16
|
+
b = [1, 2, 3].map do |i|
|
17
|
+
a * i
|
18
|
+
end
|
19
|
+
b
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
v = VariablesExample.new
|
25
|
+
v.run
|
26
|
+
v
|