needy_debugger 1.4.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 (187) hide show
  1. data/.gitignore +14 -0
  2. data/.travis.yml +8 -0
  3. data/AUTHORS +10 -0
  4. data/CHANGELOG.md +68 -0
  5. data/CONTRIBUTING.md +1 -0
  6. data/Gemfile +3 -0
  7. data/LICENSE +23 -0
  8. data/OLDER_CHANGELOG +334 -0
  9. data/OLD_CHANGELOG +5655 -0
  10. data/OLD_README +122 -0
  11. data/README.md +141 -0
  12. data/Rakefile +78 -0
  13. data/bin/rdebug +397 -0
  14. data/doc/.cvsignore +42 -0
  15. data/doc/Makefile.am +63 -0
  16. data/doc/emacs-notes.txt +38 -0
  17. data/doc/hanoi.rb +35 -0
  18. data/doc/primes.rb +28 -0
  19. data/doc/rdebug-emacs.texi +1030 -0
  20. data/doc/ruby-debug.texi +3791 -0
  21. data/doc/test-tri2.rb +18 -0
  22. data/doc/tri3.rb +8 -0
  23. data/doc/triangle.rb +12 -0
  24. data/emacs/Makefile.am +130 -0
  25. data/emacs/rdebug-annotate.el +385 -0
  26. data/emacs/rdebug-breaks.el +407 -0
  27. data/emacs/rdebug-cmd.el +92 -0
  28. data/emacs/rdebug-core.el +502 -0
  29. data/emacs/rdebug-dbg.el +62 -0
  30. data/emacs/rdebug-error.el +79 -0
  31. data/emacs/rdebug-fns.el +111 -0
  32. data/emacs/rdebug-frames.el +230 -0
  33. data/emacs/rdebug-gud.el +242 -0
  34. data/emacs/rdebug-help.el +104 -0
  35. data/emacs/rdebug-info.el +83 -0
  36. data/emacs/rdebug-layouts.el +180 -0
  37. data/emacs/rdebug-locring.el +118 -0
  38. data/emacs/rdebug-output.el +106 -0
  39. data/emacs/rdebug-regexp.el +118 -0
  40. data/emacs/rdebug-secondary.el +260 -0
  41. data/emacs/rdebug-shortkey.el +175 -0
  42. data/emacs/rdebug-source.el +568 -0
  43. data/emacs/rdebug-track.el +392 -0
  44. data/emacs/rdebug-varbuf.el +150 -0
  45. data/emacs/rdebug-vars.el +125 -0
  46. data/emacs/rdebug-watch.el +132 -0
  47. data/emacs/rdebug.el +326 -0
  48. data/emacs/test/elk-test.el +242 -0
  49. data/emacs/test/test-annotate.el +103 -0
  50. data/emacs/test/test-cmd.el +116 -0
  51. data/emacs/test/test-core.el +104 -0
  52. data/emacs/test/test-fns.el +65 -0
  53. data/emacs/test/test-frames.el +62 -0
  54. data/emacs/test/test-gud.el +35 -0
  55. data/emacs/test/test-indent.el +58 -0
  56. data/emacs/test/test-regexp.el +144 -0
  57. data/emacs/test/test-shortkey.el +61 -0
  58. data/ext/ruby_debug/192/breakpoint.c +586 -0
  59. data/ext/ruby_debug/192/ruby_debug.c +2645 -0
  60. data/ext/ruby_debug/192/ruby_debug.h +148 -0
  61. data/ext/ruby_debug/193/breakpoint.c +586 -0
  62. data/ext/ruby_debug/193/ruby_debug.c +2626 -0
  63. data/ext/ruby_debug/193/ruby_debug.h +148 -0
  64. data/ext/ruby_debug/200/breakpoint.c +586 -0
  65. data/ext/ruby_debug/200/ruby_debug.c +2692 -0
  66. data/ext/ruby_debug/200/ruby_debug.h +148 -0
  67. data/ext/ruby_debug/extconf.rb +94 -0
  68. data/lib/debugger.rb +5 -0
  69. data/lib/debugger/version.rb +5 -0
  70. data/lib/ruby-debug-base.rb +305 -0
  71. data/lib/ruby-debug.rb +177 -0
  72. data/lib/ruby-debug/command.rb +227 -0
  73. data/lib/ruby-debug/commands/breakpoints.rb +153 -0
  74. data/lib/ruby-debug/commands/catchpoint.rb +55 -0
  75. data/lib/ruby-debug/commands/condition.rb +49 -0
  76. data/lib/ruby-debug/commands/continue.rb +38 -0
  77. data/lib/ruby-debug/commands/control.rb +107 -0
  78. data/lib/ruby-debug/commands/display.rb +120 -0
  79. data/lib/ruby-debug/commands/edit.rb +48 -0
  80. data/lib/ruby-debug/commands/enable.rb +202 -0
  81. data/lib/ruby-debug/commands/eval.rb +176 -0
  82. data/lib/ruby-debug/commands/finish.rb +42 -0
  83. data/lib/ruby-debug/commands/frame.rb +301 -0
  84. data/lib/ruby-debug/commands/help.rb +56 -0
  85. data/lib/ruby-debug/commands/info.rb +467 -0
  86. data/lib/ruby-debug/commands/irb.rb +123 -0
  87. data/lib/ruby-debug/commands/jump.rb +66 -0
  88. data/lib/ruby-debug/commands/kill.rb +51 -0
  89. data/lib/ruby-debug/commands/list.rb +94 -0
  90. data/lib/ruby-debug/commands/method.rb +84 -0
  91. data/lib/ruby-debug/commands/quit.rb +50 -0
  92. data/lib/ruby-debug/commands/reload.rb +40 -0
  93. data/lib/ruby-debug/commands/save.rb +90 -0
  94. data/lib/ruby-debug/commands/set.rb +223 -0
  95. data/lib/ruby-debug/commands/show.rb +247 -0
  96. data/lib/ruby-debug/commands/skip.rb +35 -0
  97. data/lib/ruby-debug/commands/source.rb +36 -0
  98. data/lib/ruby-debug/commands/stepping.rb +81 -0
  99. data/lib/ruby-debug/commands/threads.rb +189 -0
  100. data/lib/ruby-debug/commands/tmate.rb +36 -0
  101. data/lib/ruby-debug/commands/trace.rb +57 -0
  102. data/lib/ruby-debug/commands/variables.rb +199 -0
  103. data/lib/ruby-debug/debugger.rb +5 -0
  104. data/lib/ruby-debug/helper.rb +69 -0
  105. data/lib/ruby-debug/interface.rb +232 -0
  106. data/lib/ruby-debug/processor.rb +474 -0
  107. data/man/rdebug.1 +241 -0
  108. data/needy_debugger.gemspec +31 -0
  109. data/old_scripts/Makefile.am +14 -0
  110. data/old_scripts/README.md +2 -0
  111. data/old_scripts/autogen.sh +4 -0
  112. data/old_scripts/configure.ac +12 -0
  113. data/old_scripts/rdbg.rb +33 -0
  114. data/old_scripts/runner.sh +7 -0
  115. data/old_scripts/svn2cl_usermap +3 -0
  116. data/test/.cvsignore +1 -0
  117. data/test/breakpoints_test.rb +365 -0
  118. data/test/conditions_test.rb +76 -0
  119. data/test/continue_test.rb +28 -0
  120. data/test/display_test.rb +141 -0
  121. data/test/edit_test.rb +55 -0
  122. data/test/eval_test.rb +92 -0
  123. data/test/examples/breakpoint1.rb +15 -0
  124. data/test/examples/breakpoint2.rb +7 -0
  125. data/test/examples/conditions.rb +4 -0
  126. data/test/examples/continue.rb +4 -0
  127. data/test/examples/display.rb +5 -0
  128. data/test/examples/edit.rb +3 -0
  129. data/test/examples/edit2.rb +3 -0
  130. data/test/examples/eval.rb +4 -0
  131. data/test/examples/finish.rb +20 -0
  132. data/test/examples/frame.rb +31 -0
  133. data/test/examples/help.rb +2 -0
  134. data/test/examples/info.rb +48 -0
  135. data/test/examples/info2.rb +3 -0
  136. data/test/examples/irb.rb +6 -0
  137. data/test/examples/jump.rb +14 -0
  138. data/test/examples/kill.rb +2 -0
  139. data/test/examples/list.rb +12 -0
  140. data/test/examples/method.rb +15 -0
  141. data/test/examples/post_mortem.rb +19 -0
  142. data/test/examples/quit.rb +2 -0
  143. data/test/examples/reload.rb +6 -0
  144. data/test/examples/restart.rb +6 -0
  145. data/test/examples/save.rb +3 -0
  146. data/test/examples/set.rb +3 -0
  147. data/test/examples/set_annotate.rb +12 -0
  148. data/test/examples/settings.rb +1 -0
  149. data/test/examples/show.rb +2 -0
  150. data/test/examples/source.rb +3 -0
  151. data/test/examples/stepping.rb +21 -0
  152. data/test/examples/thread.rb +32 -0
  153. data/test/examples/tmate.rb +10 -0
  154. data/test/examples/trace.rb +7 -0
  155. data/test/examples/trace_threads.rb +20 -0
  156. data/test/examples/variables.rb +26 -0
  157. data/test/finish_test.rb +48 -0
  158. data/test/frame_test.rb +140 -0
  159. data/test/help_test.rb +50 -0
  160. data/test/info_test.rb +325 -0
  161. data/test/irb_test.rb +81 -0
  162. data/test/jump_test.rb +70 -0
  163. data/test/kill_test.rb +47 -0
  164. data/test/list_test.rb +145 -0
  165. data/test/method_test.rb +70 -0
  166. data/test/post_mortem_test.rb +25 -0
  167. data/test/quit_test.rb +55 -0
  168. data/test/reload_test.rb +43 -0
  169. data/test/restart_test.rb +143 -0
  170. data/test/save_test.rb +92 -0
  171. data/test/set_test.rb +177 -0
  172. data/test/show_test.rb +292 -0
  173. data/test/source_test.rb +44 -0
  174. data/test/stepping_test.rb +118 -0
  175. data/test/support/breakpoint.rb +12 -0
  176. data/test/support/context.rb +14 -0
  177. data/test/support/matchers.rb +67 -0
  178. data/test/support/mocha_extensions.rb +71 -0
  179. data/test/support/processor.rb +7 -0
  180. data/test/support/test_dsl.rb +205 -0
  181. data/test/support/test_interface.rb +66 -0
  182. data/test/test_helper.rb +8 -0
  183. data/test/thread_test.rb +122 -0
  184. data/test/tmate_test.rb +43 -0
  185. data/test/trace_test.rb +154 -0
  186. data/test/variables_test.rb +114 -0
  187. metadata +352 -0
@@ -0,0 +1,242 @@
1
+ ;;; rdebug-gud.el --- rdebug interface to gud.
2
+
3
+ ;; Copyright (C) 2007, 2008 Rocky Bernstein (rocky@gnu.org)
4
+ ;; Copyright (C) 2007, 2008 Anders Lindgren
5
+
6
+ ;; $Id: rdebug-gud.el 821 2008-04-25 02:54:44Z rockyb $
7
+
8
+ ;; This program is free software; you can redistribute it and/or modify
9
+ ;; it under the terms of the GNU General Public License as published by
10
+ ;; the Free Software Foundation; either version 2, or (at your option)
11
+ ;; any later version.
12
+
13
+ ;; This program is distributed in the hope that it will be useful,
14
+ ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ ;; GNU General Public License for more details.
17
+
18
+ ;; You should have received a copy of the GNU General Public License
19
+ ;; along with GNU Emacs; see the file COPYING. If not, write to the
20
+ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21
+ ;; Boston, MA 02111-1307, USA.
22
+
23
+ ;;; Commentary:
24
+
25
+ ;; See the manual and the file `rdebug.el' for more information.
26
+
27
+ ;; This file contains rdebug Emacs routines which interface with gud.
28
+
29
+ ;;; Code:
30
+
31
+ ;; -------------------------------------------------------------------
32
+ ;; Dependencies.
33
+ ;;
34
+
35
+ (require 'gud)
36
+ (require 'rdebug-error)
37
+ (require 'rdebug-fns)
38
+ (require 'rdebug-regexp)
39
+ (require 'rdebug-vars)
40
+
41
+
42
+ (defun gud-rdebug-massage-args (file args)
43
+ "Change FILE and list ARGS before running the debugger.
44
+
45
+ gud requires this routine to be defined."
46
+ args)
47
+
48
+
49
+ (defun gud-rdebug-find-file (file)
50
+ "`rdebug' and `gud' call this with FILE when they encounter a Ruby program file."
51
+
52
+ (find-file-noselect file 'nowarn))
53
+
54
+ (defun rdebug-display-line (file line &optional move-arrow)
55
+ "Arrange for marker to appear in at FILE and LINE.
56
+ The line marker might appear in the Emacs fringe or as an overlay arroe.
57
+ Optional argument MOVE-ARROW indicates whether to move any previous indicator."
58
+ (if file
59
+ (let ((oldpos (and gud-overlay-arrow-position
60
+ (marker-position gud-overlay-arrow-position)))
61
+ (oldbuf (and gud-overlay-arrow-position
62
+ (marker-buffer gud-overlay-arrow-position))))
63
+ (gud-display-line file line)
64
+ (unless move-arrow
65
+ (when gud-overlay-arrow-position
66
+ (set-marker gud-overlay-arrow-position oldpos oldbuf))))))
67
+
68
+ (defun rdebug-stepping (step-or-next &optional arg)
69
+ (or arg (setq arg 1))
70
+ ;;(if (not (member '('rdebug-next 'rdebug-step 'digit-argument) last-command))
71
+ ;; (setq rdebug-stepping-prefix ""))
72
+ (unless (member rdebug-stepping-prefix '("" "+" "-"))
73
+ (setq rdebug-stepping-prefix ""))
74
+ (rdebug-call (format "%s%s %d" step-or-next rdebug-stepping-prefix arg)))
75
+
76
+
77
+
78
+ ;; -------------------------------------------------------------------
79
+ ;; Rdebug commands.
80
+ ;;
81
+
82
+ (defun rdebug-call (cmd)
83
+ "Run a debugger command with some error checking."
84
+ (if (rdebug-dead-process-p)
85
+ (rdebug-errmsg
86
+ "Can't find a live debugger process buffer to feed the command to.")
87
+ (gud-call cmd)))
88
+
89
+ (defun rdebug-call-return (cmd &rest options)
90
+ "Register a debugger command whose output should be handled specially.
91
+
92
+ OPTIONS is zero or more indicators what should happen with the
93
+ output. The following are supported:
94
+ * :tooltip -- Show the result in a tool-tip.
95
+ * :info -- Show the result in the info secondary buffer."
96
+ (if (rdebug-dead-process-p)
97
+ (rdebug-errmsg
98
+ "Can't find a live debugger process buffer to feed the command to.")
99
+ (with-current-buffer gud-comint-buffer
100
+ (setq rdebug-call-queue
101
+ (append rdebug-call-queue (list (cons cmd options))))
102
+ (gud-call cmd))))
103
+
104
+ (defun rdebug-continue (&optional arg)
105
+ "Run a debugger \"continue\" command.
106
+
107
+ With a numeric ARG, continue to that line number of the current file."
108
+ (interactive "p")
109
+ (if arg
110
+ (rdebug-call (format "continue %d" arg))
111
+ (rdebug-call (format "continue"))))
112
+
113
+
114
+ (defun rdebug-next (&optional arg)
115
+ "Run a debugger \"next\" command, respecting `rdebug-stepping-prefix'.
116
+
117
+ With a numeric ARG, continue to that line number of the current file."
118
+ (interactive "p")
119
+ (rdebug-stepping "next" arg))
120
+
121
+ (defvar rdebug-stepping-prefix ""
122
+ "The kind of stepping modifier that is desired.
123
+
124
+ This variable will have a string value which is either \"\",
125
+ \"+\", or \"-\"; this string is be appended to the debugger
126
+ stepping commands (\"next\", or \"step\").")
127
+
128
+ (defun rdebug-print-cmd (expr &optional cmd)
129
+ "Run a debugger print (pl, ps, pp, p) command on `EXPR'; `CMD' is the command to run."
130
+ (interactive "s")
131
+ (unless cmd (setq cmd "pp"))
132
+ (rdebug-call-return (format "%s %s " cmd expr) :tooltip))
133
+
134
+ (defun rdebug-print-list-region (from to)
135
+ "Run a debugger \"pl\" command on the marked region."
136
+ (interactive "r")
137
+ (if (> from to)
138
+ (let ((tem to))
139
+ (setq to from from tem)))
140
+ (rdebug-print-cmd (buffer-substring from to) "pl"))
141
+
142
+ (defun rdebug-print-region (from to)
143
+ "Run a debugger \"p\" command on the marked region."
144
+ (interactive "r")
145
+ (if (> from to)
146
+ (let ((tem to))
147
+ (setq to from from tem)))
148
+ (rdebug-print-cmd (buffer-substring from to) "p"))
149
+
150
+ (defun rdebug-print-sorted-region (from to)
151
+ "Run a debugger \"ps\" command on the marked region."
152
+ (interactive "r")
153
+ (if (> from to)
154
+ (let ((tem to))
155
+ (setq to from from tem)))
156
+ (rdebug-print-cmd (buffer-substring from to) "ps"))
157
+
158
+ (defun rdebug-pretty-print-region (from to)
159
+ "Run a debugger \"pp\" command on the marked region."
160
+ (interactive "r")
161
+ (if (> from to)
162
+ (let ((tem to))
163
+ (setq to from from tem)))
164
+ (rdebug-print-cmd (buffer-substring from to) "pp"))
165
+
166
+
167
+ ;;
168
+ ;; The following two commands should be seen as proof-of-concept
169
+ ;; functions for the info buffer.
170
+ ;;
171
+
172
+ (defun rdebug-pretty-print-to-buffer (s)
173
+ "Pretty print expression to the info buffer."
174
+ (interactive "sPretty print: ")
175
+ (rdebug-call-return (format "pp %s" s) :info))
176
+
177
+ (defun rdebug-pretty-print-region-to-buffer (from to)
178
+ "Pretty print expression in region to the info buffer."
179
+ (interactive "r")
180
+ (rdebug-call-return (format "pp %s" (buffer-substring from to)) :info))
181
+
182
+
183
+
184
+ (defun rdebug-quit ()
185
+ "Kill the debugger process associated with the current buffer.
186
+
187
+ When `rdebug-many-windows' is active, the original window layout
188
+ is restored."
189
+ (interactive)
190
+ (if (yes-or-no-p "Really quit? ")
191
+ (rdebug-call "quit unconditionally")))
192
+
193
+ (defun rdebug-restart ()
194
+ "Restart the debugged Ruby script.
195
+
196
+ An exec restart is used."
197
+ (interactive)
198
+ (if (yes-or-no-p "Restart? ")
199
+ (rdebug-call "restart")))
200
+
201
+ (defun rdebug-set-stepping-prefix ()
202
+ "Set the granularity of stepping on the subsequent 'next' or 'step' command.
203
+ As long as repeated next or step commands are given, they inherit this setting."
204
+ (interactive)
205
+ (setq rdebug-stepping-prefix (this-command-keys)))
206
+
207
+ (defun rdebug-step (&optional arg)
208
+ "Run a debugger \"next\" command, respecting `rdebug-stepping-prefix'.
209
+
210
+ With a numeric ARG, continue to that line number of the current file."
211
+ (interactive "p")
212
+ (rdebug-stepping "step" arg))
213
+
214
+ (defun rdebug-newer-frame ()
215
+ "Run a debugger \"down\" command to an newer frame.
216
+
217
+ If we try to go down from frame 0, wrap to the end of the file"
218
+ (interactive)
219
+ (let* ((buf-name (rdebug-get-secondary-buffer-name "frame"))
220
+ (buf (or (get-buffer buf-name) (current-buffer))))
221
+ (with-current-buffer buf
222
+ ;; Should we add a mode to disable wrapping?
223
+ (if (equal rdebug-frames-current-frame-number 0)
224
+ (rdebug-call "frame -1")
225
+ (rdebug-call "down 1")))))
226
+
227
+ (defun rdebug-older-frame ()
228
+ "Run a debugger \"up\" command to an older frame."
229
+ (interactive)
230
+ (let* ((buf-name (rdebug-get-secondary-buffer-name "frame"))
231
+ (buf (or (get-buffer buf-name) (current-buffer))))
232
+ (with-current-buffer buf
233
+ ;; Should we add a mode to disable wrapping?
234
+ (rdebug-call "up 1"))))
235
+
236
+ (provide 'rdebug-gud)
237
+
238
+ ;;; Local variables:
239
+ ;;; eval:(put 'rdebug-debug-enter 'lisp-indent-hook 1)
240
+ ;;; End:
241
+
242
+ ;;; rdebug-gud.el ends here
@@ -0,0 +1,104 @@
1
+ ;;; rdebug-help.el --- Ruby debugger help
2
+
3
+ ;; Copyright (C) 2008 Rocky Bernstein (rocky@gnu.org)
4
+ ;; Copyright (C) 2008 Anders Lindgren
5
+
6
+ ;; $Id: rdebug-help.el 711 2008-02-20 07:09:17Z andersl $
7
+
8
+ ;; This program is free software; you can redistribute it and/or modify
9
+ ;; it under the terms of the GNU General Public License as published by
10
+ ;; the Free Software Foundation; either version 2, or (at your option)
11
+ ;; any later version.
12
+
13
+ ;; This program is distributed in the hope that it will be useful,
14
+ ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ ;; GNU General Public License for more details.
17
+
18
+ ;; You should have received a copy of the GNU General Public License
19
+ ;; along with GNU Emacs; see the file COPYING. If not, write to the
20
+ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21
+ ;; Boston, MA 02111-1307, USA.
22
+
23
+ ;;; Commentary:
24
+
25
+ ;; See the manual and the file `rdebug.el' for more information.
26
+
27
+ ;; This file contains code dealing with the help buffer.
28
+
29
+ ;;; Code:
30
+
31
+ (defvar rdebug-secondary-window-help-mode-map
32
+ (let ((map (make-sparse-keymap)))
33
+ (suppress-keymap map)
34
+ (rdebug-populate-secondary-buffer-map map)
35
+ map)
36
+ "Keymap used in the help buffer in the `rdebug' Ruby debugger.")
37
+
38
+ (defun rdebug-secondary-window-help-mode ()
39
+ "Major mode for the secondary buffer help text in the `rdebug' Ruby debugger.
40
+
41
+ \\{rdebug-secondary-window-help-mode-map}"
42
+ (interactive)
43
+ (kill-all-local-variables)
44
+ (setq major-mode 'rdebug-secondary-window-help-mode)
45
+ (setq mode-name "RDEBUG Help")
46
+ (setq buffer-read-only t)
47
+ (set (make-local-variable 'rdebug-secondary-buffer) t)
48
+ (setq mode-line-process 'rdebug-mode-line-process)
49
+ (use-local-map rdebug-secondary-window-help-mode-map)
50
+ (run-mode-hooks 'rdebug-secondary-window-help-mode-hook))
51
+
52
+ (defun rdebug-display-secondary-window-help-buffer ()
53
+ "Display the rdebug help buffer."
54
+ (interactive)
55
+ (rdebug-display-secondary-buffer "help"))
56
+
57
+ (defun rdebug-setup-secondary-window-help-buffer (buf comint-buffer)
58
+ (rdebug-debug-enter "rdebug-setup-secondary-window-help-buffer"
59
+ (with-current-buffer buf
60
+ (rdebug-secondary-window-help-mode)
61
+ (set (make-local-variable 'gud-comint-buffer) comint-buffer)
62
+ (insert "\
63
+
64
+ This is a rdebug secondary window, you can use it to watch a
65
+ number of help buffers. Use capital letters to switch between the
66
+ available buffers. Lower case letters (and other key
67
+ combinations) are used to issue buffer-specific commands.
68
+
69
+ Press `C-h m' for more help, when the individual buffers are visible.
70
+
71
+ B - Breakpoints buffer.
72
+ C - Command buffer (the debugger shell)
73
+ O - Output window
74
+ S - go to source frame
75
+ T - Stack trace buffer
76
+ V - Variables buffer
77
+ W - Watch buffer
78
+
79
+ SPC - step (into)
80
+ + - set for step+ and next+
81
+ - - set for step- and next-
82
+ _ - set to remove +/-
83
+ c - continue
84
+ f - finish (step out)
85
+ n - next (step over)
86
+ p - print
87
+ q - quit
88
+ r - run (restart)
89
+ R - run (restart)
90
+ s - step (into)
91
+
92
+ > - go down frame (with numeric argument goes down that many frames)
93
+ < - go up one frame (with numeric argument goes down that many frames)
94
+
95
+ ? - This help text.
96
+ "))))
97
+
98
+ (provide 'rdebug-help)
99
+
100
+ ;;; Local variables:
101
+ ;;; eval:(put 'rdebug-debug-enter 'lisp-indent-hook 1)
102
+ ;;; End:
103
+
104
+ ;;; rdebug-help.el ends here
@@ -0,0 +1,83 @@
1
+ ;;; rdebug-info.el --- This file contains code dealing with the Ruby
2
+ ;;; debugger's info secondary buffer.
3
+
4
+ ;; Copyright (C) 2008 Rocky Bernstein (rocky@gnu.org)
5
+ ;; Copyright (C) 2008 Anders Lindgren
6
+
7
+ ;; $Id: rdebug-breaks.el 670 2008-02-06 18:15:28Z rockyb $
8
+
9
+ ;; This program is free software; you can redistribute it and/or modify
10
+ ;; it under the terms of the GNU General Public License as published by
11
+ ;; the Free Software Foundation; either version 2, or (at your option)
12
+ ;; any later version.
13
+
14
+ ;; This program is distributed in the hope that it will be useful,
15
+ ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ ;; GNU General Public License for more details.
18
+
19
+ ;; You should have received a copy of the GNU General Public License
20
+ ;; along with GNU Emacs; see the file COPYING. If not, write to the
21
+ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
22
+ ;; Boston, MA 02111-1307, USA.
23
+
24
+ ;;; Commentary:
25
+
26
+ ;; See the manual and the file `rdebug.el' for more information.
27
+
28
+
29
+ ;;; Code:
30
+
31
+ (require 'rdebug-dbg)
32
+ (require 'rdebug-gud)
33
+ (require 'rdebug-regexp)
34
+ (require 'rdebug-secondary)
35
+ (require 'rdebug-source)
36
+ (require 'rdebug-vars)
37
+
38
+ (defun rdebug-display-info-buffer ()
39
+ "Display the rdebug breakpoints buffer."
40
+ (interactive)
41
+ (rdebug-display-secondary-buffer "info"))
42
+
43
+ (defvar rdebug-info-mode-map
44
+ (let ((map (make-sparse-keymap)))
45
+ (rdebug-populate-secondary-buffer-map map)
46
+ map)
47
+ "Keymap for the Rdebug info secondary buffer.")
48
+
49
+ (defun rdebug-info-mode ()
50
+ "Major mode for Ruby debugger info buffer.
51
+
52
+ \\{rdebug-info-mode-map}"
53
+ (kill-all-local-variables)
54
+ (setq major-mode 'rdebug-info-mode)
55
+ (setq mode-name "RDEBUG Info")
56
+ (use-local-map rdebug-info-mode-map)
57
+ (setq buffer-read-only t)
58
+ (set (make-local-variable 'rdebug-secondary-buffer) t)
59
+ (setq mode-line-process 'rdebug-mode-line-process)
60
+ (run-mode-hooks 'rdebug-info-mode-hook))
61
+
62
+ (defun rdebug-setup-info-buffer (buf comint-buffer)
63
+ "Setup the Rdebug debugger info buffer."
64
+ (rdebug-debug-enter "rdebug-setup-info-buffer"
65
+ (with-current-buffer buf
66
+ (let ((inhibit-read-only t)
67
+ (old-line-number (buffer-local-value 'rdebug-current-line-number
68
+ buf)))
69
+ (rdebug-info-mode)
70
+ (goto-line old-line-number)))))
71
+
72
+
73
+ ;; -------------------------------------------------------------------
74
+ ;; The end.
75
+ ;;
76
+
77
+ (provide 'rdebug-info)
78
+
79
+ ;;; Local variables:
80
+ ;;; eval:(put 'rdebug-debug-enter 'lisp-indent-hook 1)
81
+ ;;; End:
82
+
83
+ ;;; rdebug-info.el ends here
@@ -0,0 +1,180 @@
1
+ ;;; rdebug-layouts.el --- Ruby debugger window layouts.
2
+
3
+ ;; Copyright (C) 2008 Rocky Bernstein (rocky@gnu.org)
4
+ ;; Copyright (C) 2008 Anders Lindgren
5
+
6
+ ;; $Id: rdebug-layouts.el 723 2008-02-24 04:51:39Z rockyb $
7
+
8
+ ;; This program is free software; you can redistribute it and/or modify
9
+ ;; it under the terms of the GNU General Public License as published by
10
+ ;; the Free Software Foundation; either version 2, or (at your option)
11
+ ;; any later version.
12
+
13
+ ;; This program is distributed in the hope that it will be useful,
14
+ ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ ;; GNU General Public License for more details.
17
+
18
+ ;; You should have received a copy of the GNU General Public License
19
+ ;; along with GNU Emacs; see the file COPYING. If not, write to the
20
+ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21
+ ;; Boston, MA 02111-1307, USA.
22
+
23
+ ;;; Commentary:
24
+
25
+ ;; This is file contains the window layouts that come with rdebug; the
26
+ ;; code where can be consulted as a guide for creating other window
27
+ ;; layouts.
28
+
29
+ ;; See the manual and the file `rdebug.el' for overall information on
30
+ ;; the ruby debugger rdebug.
31
+
32
+ ;;; Code:
33
+
34
+ (defun rdebug-get-buffer (name script-name)
35
+ "Return a rdebug buffer for displaying NAME when debugging SCRIPT-NAME.
36
+ If the buffer doesn't exists it is created."
37
+ (get-buffer-create (format "*rdebug-%s-%s*" name script-name)))
38
+
39
+
40
+ (defun rdebug-get-existing-buffer (name script-name)
41
+ "Return a rdebug buffer for displaying NAME when debugging SCRIPT-NAME.
42
+ Return nil if the buffer doesn't exists."
43
+ (get-buffer (format "*rdebug-%s-%s*" name script-name)))
44
+
45
+
46
+ (defun rdebug-window-layout-conservative (src-buf name)
47
+ "A conservative rdebug window layout with three windows.
48
+
49
+ This window layout mimics the traditional debugger shell and
50
+ source window layout, it only add one secondary window.
51
+ Initially, the secondary window displays output of the debugged
52
+ process, but any secondary buffer can be displayed, press `?' in
53
+ the window for more details.
54
+ Argument SRC-BUF the buffer containing the Ruby source program that was initially run. NAME is the name of that buffer."
55
+ (delete-other-windows)
56
+ (split-window-horizontally)
57
+ (other-window 1)
58
+ (switch-to-buffer src-buf)
59
+ (other-window 1)
60
+ (when rdebug-use-separate-io-buffer
61
+ (split-window nil 20)
62
+ (set-window-buffer
63
+ (selected-window) (rdebug-get-buffer "output" name)))
64
+ (other-window 1))
65
+
66
+ (defun rdebug-window-layout-rocky (src-buf name)
67
+ "Rocky's window layout.
68
+
69
+ 3 windows. The source window is on top 4/5 of height. The
70
+ bottom is split between the command windows and a stack window.
71
+
72
+ See `rdebug' for more information.
73
+ Argument SRC-BUF the buffer containing the Ruby source program that was initially run. NAME is the name of that buffer."
74
+ (delete-other-windows)
75
+ (split-window nil ( / ( * (window-height) 4) 5))
76
+ (set-window-buffer
77
+ (selected-window) src-buf)
78
+ (other-window 1)
79
+ (set-window-buffer
80
+ (selected-window) (rdebug-get-buffer "frame" name))
81
+ (split-window-horizontally)
82
+ (set-window-buffer
83
+ (selected-window) (rdebug-get-buffer "cmd" name))
84
+ (goto-char (point-max)))
85
+
86
+ (defun rdebug-window-layout-rocky2 (src-buf name)
87
+ "This layout is standard window without the output window, see `rdebug'.
88
+ for more information.
89
+ Argument SRC-BUF is the NAME of the buffer containing the Ruby source program that was initially run."
90
+ (delete-other-windows)
91
+ (split-window nil ( / ( * (window-height) 3) 4))
92
+ (set-window-buffer
93
+ (selected-window) src-buf)
94
+ (split-window nil ( / (window-height) 3))
95
+ (split-window-horizontally)
96
+ (set-window-buffer
97
+ (selected-window) (rdebug-get-buffer "frame" name))
98
+ (other-window 1)
99
+ (set-window-buffer
100
+ (selected-window) (rdebug-get-buffer "variables" name))
101
+ (other-window 1)
102
+ (switch-to-buffer src-buf)
103
+ (other-window 1)
104
+ (set-window-buffer
105
+ (selected-window) (rdebug-get-buffer "cmd" name))
106
+ (goto-char (point-max)))
107
+
108
+ (defun rdebug-window-layout-stack-of-windows (src-buf name)
109
+ "A rdebug window layout with several secondary windows to the right.
110
+ The debugger shell and the source code window is to the left.
111
+ Argument SRC-BUF the buffer containing the Ruby source program that was initially run. NAME is the name of that buffer."
112
+ (delete-other-windows)
113
+ (split-window-horizontally)
114
+ (split-window nil 20)
115
+ (set-window-buffer
116
+ (selected-window) (rdebug-get-buffer "cmd" name))
117
+ (other-window 1)
118
+ (switch-to-buffer src-buf)
119
+ (other-window 1)
120
+ (split-window)
121
+ (split-window)
122
+ (set-window-buffer
123
+ (selected-window) (rdebug-get-buffer "variables" name))
124
+ (other-window 1)
125
+ (set-window-buffer
126
+ (selected-window) (rdebug-get-buffer "frame" name))
127
+ (when rdebug-use-separate-io-buffer
128
+ (other-window 1)
129
+ (split-window)
130
+ (set-window-buffer
131
+ (selected-window) (rdebug-get-buffer "output" name)))
132
+ (other-window 1)
133
+ (set-window-buffer
134
+ (selected-window) (rdebug-get-buffer "breakpoints" name))
135
+ (other-window 1))
136
+
137
+ ;; The default layout
138
+ (defun rdebug-window-layout-standard (src-buf name)
139
+ "The default rdebug window layout, see `rdebug' for more information.
140
+ Argument SRC-BUF the buffer containing the Ruby source program that was initially run. NAME is the name of that buffer."
141
+ (delete-other-windows)
142
+ (split-window nil ( / ( * (window-height) 3) 4))
143
+ (split-window nil ( / (window-height) 3))
144
+ (split-window-horizontally)
145
+ (other-window 1)
146
+ (set-window-buffer
147
+ (selected-window) (rdebug-get-buffer "variables" name))
148
+ (other-window 1)
149
+ (switch-to-buffer src-buf)
150
+ (when rdebug-use-separate-io-buffer
151
+ (split-window-horizontally)
152
+ (other-window 1)
153
+ (set-window-buffer
154
+ (selected-window) (rdebug-get-buffer "output" name)))
155
+ (other-window 1)
156
+ (set-window-buffer
157
+ (selected-window) (rdebug-get-buffer "frame" name))
158
+ (split-window-horizontally)
159
+ (other-window 1)
160
+ (set-window-buffer
161
+ (selected-window) (rdebug-get-buffer "breakpoints" name))
162
+ (other-window 1)
163
+ (goto-char (point-max)))
164
+
165
+
166
+ (defun rdebug-window-layout-no-shell (src-buf name)
167
+ "A rdebug window layout without a shell window.
168
+ Argument SRC-BUF the buffer containing the Ruby source program that was initially run. NAME is the name of that buffer."
169
+ (delete-other-windows)
170
+ (set-window-buffer
171
+ (selected-window) (rdebug-get-buffer "watch" name))
172
+ (rdebug-window-layout-standard src-buf name))
173
+
174
+ (provide 'rdebug-layouts)
175
+
176
+ ;;; Local variables:
177
+ ;;; eval:(put 'rdebug-debug-enter 'lisp-indent-hook 1)
178
+ ;;; End:
179
+
180
+ ;;; rdebug-layouts.el ends here