runger_byebug 11.2.0

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.
Files changed (132) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +954 -0
  3. data/CONTRIBUTING.md +58 -0
  4. data/GUIDE.md +1806 -0
  5. data/LICENSE +23 -0
  6. data/README.md +199 -0
  7. data/exe/byebug +6 -0
  8. data/ext/byebug/breakpoint.c +521 -0
  9. data/ext/byebug/byebug.c +900 -0
  10. data/ext/byebug/byebug.h +145 -0
  11. data/ext/byebug/context.c +687 -0
  12. data/ext/byebug/extconf.rb +12 -0
  13. data/ext/byebug/locker.c +96 -0
  14. data/ext/byebug/threads.c +241 -0
  15. data/lib/byebug/attacher.rb +48 -0
  16. data/lib/byebug/breakpoint.rb +94 -0
  17. data/lib/byebug/command.rb +111 -0
  18. data/lib/byebug/command_list.rb +34 -0
  19. data/lib/byebug/commands/break.rb +114 -0
  20. data/lib/byebug/commands/catch.rb +78 -0
  21. data/lib/byebug/commands/condition.rb +55 -0
  22. data/lib/byebug/commands/continue.rb +68 -0
  23. data/lib/byebug/commands/debug.rb +38 -0
  24. data/lib/byebug/commands/delete.rb +55 -0
  25. data/lib/byebug/commands/disable/breakpoints.rb +42 -0
  26. data/lib/byebug/commands/disable/display.rb +43 -0
  27. data/lib/byebug/commands/disable.rb +33 -0
  28. data/lib/byebug/commands/display.rb +66 -0
  29. data/lib/byebug/commands/down.rb +45 -0
  30. data/lib/byebug/commands/edit.rb +69 -0
  31. data/lib/byebug/commands/enable/breakpoints.rb +42 -0
  32. data/lib/byebug/commands/enable/display.rb +43 -0
  33. data/lib/byebug/commands/enable.rb +33 -0
  34. data/lib/byebug/commands/finish.rb +57 -0
  35. data/lib/byebug/commands/frame.rb +57 -0
  36. data/lib/byebug/commands/help.rb +64 -0
  37. data/lib/byebug/commands/history.rb +39 -0
  38. data/lib/byebug/commands/info/breakpoints.rb +65 -0
  39. data/lib/byebug/commands/info/display.rb +49 -0
  40. data/lib/byebug/commands/info/file.rb +80 -0
  41. data/lib/byebug/commands/info/line.rb +35 -0
  42. data/lib/byebug/commands/info/program.rb +49 -0
  43. data/lib/byebug/commands/info.rb +37 -0
  44. data/lib/byebug/commands/interrupt.rb +34 -0
  45. data/lib/byebug/commands/irb.rb +50 -0
  46. data/lib/byebug/commands/kill.rb +45 -0
  47. data/lib/byebug/commands/list.rb +159 -0
  48. data/lib/byebug/commands/method.rb +53 -0
  49. data/lib/byebug/commands/next.rb +40 -0
  50. data/lib/byebug/commands/pry.rb +41 -0
  51. data/lib/byebug/commands/quit.rb +42 -0
  52. data/lib/byebug/commands/restart.rb +64 -0
  53. data/lib/byebug/commands/save.rb +72 -0
  54. data/lib/byebug/commands/set.rb +79 -0
  55. data/lib/byebug/commands/show.rb +45 -0
  56. data/lib/byebug/commands/skip.rb +85 -0
  57. data/lib/byebug/commands/source.rb +40 -0
  58. data/lib/byebug/commands/step.rb +40 -0
  59. data/lib/byebug/commands/thread/current.rb +37 -0
  60. data/lib/byebug/commands/thread/list.rb +43 -0
  61. data/lib/byebug/commands/thread/resume.rb +45 -0
  62. data/lib/byebug/commands/thread/stop.rb +43 -0
  63. data/lib/byebug/commands/thread/switch.rb +46 -0
  64. data/lib/byebug/commands/thread.rb +34 -0
  65. data/lib/byebug/commands/tracevar.rb +54 -0
  66. data/lib/byebug/commands/undisplay.rb +51 -0
  67. data/lib/byebug/commands/untracevar.rb +36 -0
  68. data/lib/byebug/commands/up.rb +45 -0
  69. data/lib/byebug/commands/var/all.rb +41 -0
  70. data/lib/byebug/commands/var/args.rb +39 -0
  71. data/lib/byebug/commands/var/const.rb +49 -0
  72. data/lib/byebug/commands/var/global.rb +37 -0
  73. data/lib/byebug/commands/var/instance.rb +39 -0
  74. data/lib/byebug/commands/var/local.rb +39 -0
  75. data/lib/byebug/commands/var.rb +37 -0
  76. data/lib/byebug/commands/where.rb +64 -0
  77. data/lib/byebug/commands.rb +40 -0
  78. data/lib/byebug/context.rb +157 -0
  79. data/lib/byebug/core.rb +115 -0
  80. data/lib/byebug/errors.rb +29 -0
  81. data/lib/byebug/frame.rb +185 -0
  82. data/lib/byebug/helpers/bin.rb +47 -0
  83. data/lib/byebug/helpers/eval.rb +134 -0
  84. data/lib/byebug/helpers/file.rb +63 -0
  85. data/lib/byebug/helpers/frame.rb +75 -0
  86. data/lib/byebug/helpers/parse.rb +80 -0
  87. data/lib/byebug/helpers/path.rb +40 -0
  88. data/lib/byebug/helpers/reflection.rb +19 -0
  89. data/lib/byebug/helpers/string.rb +33 -0
  90. data/lib/byebug/helpers/thread.rb +67 -0
  91. data/lib/byebug/helpers/toggle.rb +62 -0
  92. data/lib/byebug/helpers/var.rb +70 -0
  93. data/lib/byebug/history.rb +130 -0
  94. data/lib/byebug/interface.rb +146 -0
  95. data/lib/byebug/interfaces/local_interface.rb +63 -0
  96. data/lib/byebug/interfaces/remote_interface.rb +50 -0
  97. data/lib/byebug/interfaces/script_interface.rb +33 -0
  98. data/lib/byebug/interfaces/test_interface.rb +67 -0
  99. data/lib/byebug/option_setter.rb +95 -0
  100. data/lib/byebug/printers/base.rb +68 -0
  101. data/lib/byebug/printers/plain.rb +44 -0
  102. data/lib/byebug/printers/texts/base.yml +115 -0
  103. data/lib/byebug/printers/texts/plain.yml +33 -0
  104. data/lib/byebug/processors/command_processor.rb +173 -0
  105. data/lib/byebug/processors/control_processor.rb +24 -0
  106. data/lib/byebug/processors/post_mortem_processor.rb +18 -0
  107. data/lib/byebug/processors/script_processor.rb +49 -0
  108. data/lib/byebug/remote/client.rb +57 -0
  109. data/lib/byebug/remote/server.rb +47 -0
  110. data/lib/byebug/remote.rb +85 -0
  111. data/lib/byebug/runner.rb +198 -0
  112. data/lib/byebug/setting.rb +79 -0
  113. data/lib/byebug/settings/autoirb.rb +29 -0
  114. data/lib/byebug/settings/autolist.rb +29 -0
  115. data/lib/byebug/settings/autopry.rb +29 -0
  116. data/lib/byebug/settings/autosave.rb +17 -0
  117. data/lib/byebug/settings/basename.rb +16 -0
  118. data/lib/byebug/settings/callstyle.rb +20 -0
  119. data/lib/byebug/settings/fullpath.rb +16 -0
  120. data/lib/byebug/settings/histfile.rb +20 -0
  121. data/lib/byebug/settings/histsize.rb +20 -0
  122. data/lib/byebug/settings/linetrace.rb +22 -0
  123. data/lib/byebug/settings/listsize.rb +21 -0
  124. data/lib/byebug/settings/post_mortem.rb +27 -0
  125. data/lib/byebug/settings/savefile.rb +20 -0
  126. data/lib/byebug/settings/stack_on_error.rb +15 -0
  127. data/lib/byebug/settings/width.rb +20 -0
  128. data/lib/byebug/source_file_formatter.rb +71 -0
  129. data/lib/byebug/subcommands.rb +54 -0
  130. data/lib/byebug/version.rb +8 -0
  131. data/lib/byebug.rb +3 -0
  132. metadata +194 -0
@@ -0,0 +1,145 @@
1
+ #ifndef BYEBUG
2
+ #define BYEBUG
3
+
4
+ #include <ruby.h>
5
+ #include <ruby/debug.h>
6
+
7
+ /* To prevent unused parameter warnings */
8
+ #define UNUSED(x) (void)(x)
9
+
10
+ /* flags */
11
+ #define CTX_FL_DEAD (1 << 1) /* this context belonged to a dead thread */
12
+ #define CTX_FL_IGNORE (1 << 2) /* this context belongs to ignored thread */
13
+ #define CTX_FL_SUSPEND (1 << 3) /* thread currently suspended */
14
+ #define CTX_FL_TRACING (1 << 4) /* call at_tracing method */
15
+ #define CTX_FL_WAS_RUNNING (1 << 5) /* thread was previously running */
16
+ #define CTX_FL_STOP_ON_RET (1 << 6) /* can stop on method 'end' */
17
+ #define CTX_FL_IGNORE_STEPS (1 << 7) /* doesn't countdown steps to break */
18
+
19
+ /* macro functions */
20
+ #define CTX_FL_TEST(c, f) ((c)->flags & (f))
21
+ #define CTX_FL_SET(c, f) \
22
+ do \
23
+ { \
24
+ (c)->flags |= (f); \
25
+ } while (0)
26
+ #define CTX_FL_UNSET(c, f) \
27
+ do \
28
+ { \
29
+ (c)->flags &= ~(f); \
30
+ } while (0)
31
+
32
+ /* types */
33
+ typedef enum
34
+ {
35
+ CTX_STOP_NONE,
36
+ CTX_STOP_STEP,
37
+ CTX_STOP_BREAKPOINT,
38
+ CTX_STOP_CATCHPOINT
39
+ } ctx_stop_reason;
40
+
41
+ typedef struct
42
+ {
43
+ int calced_stack_size;
44
+ int flags;
45
+ ctx_stop_reason stop_reason;
46
+
47
+ VALUE thread;
48
+ int thnum;
49
+
50
+ int dest_frame; /* next stop's frame if stopped by next */
51
+ int lines; /* # of lines in dest_frame before stopping */
52
+ int steps; /* # of steps before stopping */
53
+ int steps_out; /* # of returns before stopping */
54
+
55
+ VALUE backtrace; /* [[loc, self, klass, binding], ...] */
56
+ } debug_context_t;
57
+
58
+ typedef enum
59
+ {
60
+ LOCATION,
61
+ SELF,
62
+ CLASS,
63
+ BINDING
64
+ } frame_part;
65
+
66
+ struct call_with_inspection_data
67
+ {
68
+ debug_context_t *dc;
69
+ VALUE ctx;
70
+ ID id;
71
+ int argc;
72
+ VALUE *argv;
73
+ };
74
+
75
+ typedef struct
76
+ {
77
+ st_table *tbl;
78
+ } threads_table_t;
79
+
80
+ enum bp_type
81
+ {
82
+ BP_POS_TYPE,
83
+ BP_METHOD_TYPE
84
+ };
85
+
86
+ enum hit_condition
87
+ {
88
+ HIT_COND_NONE,
89
+ HIT_COND_GE,
90
+ HIT_COND_EQ,
91
+ HIT_COND_MOD
92
+ };
93
+
94
+ typedef struct
95
+ {
96
+ int id;
97
+ enum bp_type type;
98
+ VALUE source;
99
+ union
100
+ {
101
+ int line;
102
+ ID mid;
103
+ } pos;
104
+ VALUE expr;
105
+ VALUE enabled;
106
+ int hit_count;
107
+ int hit_value;
108
+ enum hit_condition hit_condition;
109
+ } breakpoint_t;
110
+
111
+ /* functions from locker.c */
112
+ extern void byebug_add_to_locked(VALUE thread);
113
+ extern VALUE byebug_pop_from_locked();
114
+ extern void byebug_remove_from_locked(VALUE thread);
115
+
116
+ /* functions from threads.c */
117
+ extern void Init_threads_table(VALUE mByebug);
118
+ extern VALUE create_threads_table(void);
119
+ extern void thread_context_lookup(VALUE thread, VALUE *context);
120
+ extern int is_living_thread(VALUE thread);
121
+ extern void acquire_lock(debug_context_t *dc);
122
+ extern void release_lock(void);
123
+
124
+ /* global variables */
125
+ extern VALUE threads;
126
+ extern VALUE next_thread;
127
+
128
+ /* functions from context.c */
129
+ extern void Init_byebug_context(VALUE mByebug);
130
+ extern VALUE byebug_context_create(VALUE thread);
131
+ extern VALUE context_dup(debug_context_t *context);
132
+ extern void byebug_reset_stepping_stop_points(debug_context_t *context);
133
+ extern VALUE call_with_debug_inspector(struct call_with_inspection_data *data);
134
+ extern VALUE context_backtrace_set(const rb_debug_inspector_t *inspector,
135
+ void *data);
136
+
137
+ /* functions from breakpoint.c */
138
+ extern void Init_byebug_breakpoint(VALUE mByebug);
139
+ extern VALUE find_breakpoint_by_pos(VALUE breakpoints, VALUE source, VALUE pos,
140
+ VALUE bind);
141
+
142
+ extern VALUE find_breakpoint_by_method(VALUE breakpoints, VALUE klass,
143
+ VALUE mid, VALUE bind, VALUE self);
144
+
145
+ #endif