|
| 1 | +0.10.3 |
| 2 | +11/17/08 |
| 3 | + |
| 4 | + - a backtrace now warns when it thinks the callstack is truncated which it |
| 5 | + gets by comparing with caller() |
| 6 | + - fix setting $0. |
| 7 | + - fix bug in showing variables in post-mortem |
| 8 | + - Document how Debugger.start with a block is intended to be used. |
| 9 | + - Move Kernel#debugger from ruby-debug-base into ruby-debug |
| 10 | + - Get regression tests working again |
| 11 | + - Warn and add a "confirmation" when setting a breakpoint on a |
| 12 | + file that is not loaded. |
| 13 | + |
| 14 | +0.10.2 |
| 15 | + - debugger(steps=0) breaks inside of debugger rather than wait for a line event. |
| 16 | + - trace var varname (stop|nostop) added which issues trace_var. |
| 17 | + - start method is now properly defined in Debugger module |
| 18 | + - fixed 'finish' command |
| 19 | + - rdebug script now works with Ruby 1.8.7 |
| 20 | + |
| 21 | +0.10.1 |
| 22 | +4/10/08 - in honor of the 30th Birthday of Kate Schwarz |
| 23 | + |
| 24 | +- bin/rdebug |
| 25 | + |
| 26 | + * "rdebug --post-mortem" now really catches uncaught exceptions and |
| 27 | + brings you to post-mortem handling. "info program" shows the exception. |
| 28 | + |
| 29 | + * rdebug now searches using ENV['PATH'] for a Ruby program to debug |
| 30 | + if the program name is not found and doesn't have any path |
| 31 | + characters in it. |
| 32 | + |
| 33 | + * Use ~/.rdboptrc (rdbopt.ini on MS Windows) to change default options. |
| 34 | + |
| 35 | + * --emacs is now --emacs-basic while --emacs 3 now implies emacs-basic |
| 36 | + ---annotate=3 --post-mortem --no-control --no-start --no-quit |
| 37 | + |
| 38 | +- rdebug (CLI) |
| 39 | + |
| 40 | + * "info" command additions and changes: |
| 41 | + o fix bug in "info variables" when string had embedded %s' |
| 42 | + o "info program" now shows uncaught exception information |
| 43 | + o "info files" show what Ruby files are loaded |
| 44 | + o "info file <f>" specific file information of <f> (e.g. time, # of lines, SHA1) |
| 45 | + o "info catch" - Exceptions that can be caught in the current stack frame. |
| 46 | + o "info "variables" shows "self" and class variables |
| 47 | + o "info threads verbose" shows stack trace of all threads |
| 48 | + o "info thread <t> verbose" shows stack trace of thread <t>. |
| 49 | + |
| 50 | + * "frame" command now accepts an optional thread number argument |
| 51 | + |
| 52 | + * Long information added to commands with subcommands: show, set, |
| 53 | + info, enable, and disable. For example "help info <xxx>" will give |
| 54 | + more detailed information about the "info <xxx>" command. |
| 55 | + |
| 56 | + * columnize now pulled in from a separate package. |
| 57 | + |
| 58 | + * add "var cl[ass]" command. Note "var const" can no longer be |
| 59 | + abbreviated "var c"; use "var co" (or const or constant). |
| 60 | + |
| 61 | + * add "condition" command. Allow removal of condition. |
| 62 | + |
| 63 | + * $0 == __FILE__ when running rdebug should work -- most of the |
| 64 | + time. See comments in code for a better solution. |
| 65 | + |
| 66 | + * rdebug command history can be displayed with "show commands". Fix a bug |
| 67 | + in history saving. |
| 68 | + |
| 69 | + * INCOMPATIBLE CHANGE: "finish" works like gdb - stop just before the most |
| 70 | + recent method finishes. Will now accept a number which stops that many |
| 71 | + frames completed. (Note that return line numbers will be funny, the |
| 72 | + first line of the method until Ruby 1.8.7.) |
| 73 | + |
| 74 | + * fix bug in 'list' command when wrapping off the end. |
| 75 | + |
| 76 | +- Emacs interaction drastically reworked, expanded, and improved. |
| 77 | + |
| 78 | +- rdebug base |
| 79 | + * allow catching multiple exceptions. |
| 80 | + INCOMPATIBLE CHANGE: variable "Debugger.catchpoint", a String, was turned |
| 81 | + into "Debugger.catchpoints", a Hash. Method "Debugger.catchpoint=" no |
| 82 | + longer exists. Debugger.set_catchpoint was turned into |
| 83 | + Debugger.add_catchpoint |
| 84 | + |
| 85 | + * Add Debugger.last_exception which is set in post-mortem. |
| 86 | + |
| 87 | + * remove Debugger.stop() when an exception is raised that would terminate the |
| 88 | + debugged program. This may allow catchpoints to work and allow tracing user |
| 89 | + code which handles "Exit" exceptions |
| 90 | + |
| 91 | + * split off breakpoint code in ruby_debug.c. |
| 92 | + |
| 93 | + * preface ruby_debug global Ruby variables with rdebug_. |
| 94 | + |
| 95 | + * Change Debugger.start() to accept an optional options argument |
| 96 | + :init => true saves things (like $0 and ARGV) necessary to |
| 97 | + allow restart. Default: true |
| 98 | + :post_mortem => true runs post-mortem on an uncaught exception |
| 99 | + Default: false |
| 100 | + |
| 101 | + The old Debugger.start() is now renamed to Debugger.start_() |
| 102 | + |
| 103 | + * split of line caching to an external gem. We now only allow setting |
| 104 | + breakpoints on lines where it makes sense to do so. |
| 105 | + |
| 106 | + * Incompatible enhancement: even return/end will now call event handler |
| 107 | + |
| 108 | + See ChangeLog for full details, and the reference guide for more complete |
| 109 | + documentation of these changes. |
| 110 | + |
| 111 | +0.10.0 |
| 112 | +12/25/07 |
| 113 | + |
| 114 | +- '-r' option can be used to require additional libraries. |
| 115 | +- --noquit option added to stay in debugger when the program exits |
| 116 | +- gdb-like --annotate option added. Can be used by front-ends to get information |
| 117 | + without polling |
| 118 | +- Fixed 'var const' command. Issue #10847. |
| 119 | +- Using pretty-print for all var commands. |
| 120 | +- Better error reporting for commands that require a numeric argument. |
| 121 | +- Fixed Kernel#binding_n method |
| 122 | +- Add option -d ($DEBUG = true) and --verbose. Make -v work like ruby. |
| 123 | +- Remove debugger messages caused when warnings are turned on. |
| 124 | +- "info" and "show" commands added. "set" made more like gdb's |
| 125 | + set. subcommands can be abbreviated and are case insensitive. |
| 126 | +- restart program if it terminates normally and we've got a tty and |
| 127 | + we stop on the first statement. |
| 128 | +- help is in tidy column format. method lists are shown that way as well. |
| 129 | + the "width" setting ("set/show width") is used for the line width |
| 130 | +- stack traces now show parameter names and types. "info args" lists just |
| 131 | + the parameters (with the most recent values, not the values at call time). |
| 132 | +- post-mortem "exit" bug fixed. |
| 133 | +- More Emacs-friendly: rdebug-track.el will track location inside an Emacs |
| 134 | + shell. Emacs position information is shown in breakpoints and catchpoints |
| 135 | + similar to gdba. Commands to position in another window a unit test traceback |
| 136 | + or ruby traceback. Much more work invisioned for Emacs. |
| 137 | +- INCOMPATIBLE CHANGE: "break" now sets a breakpoint on the current line |
| 138 | + (same as gdb). Use "info break" for a list of breakpoints. |
| 139 | +- INCOMPATIBLE CHANGE: "script" command removed. Use "source" command instead |
| 140 | + (same as gdb). |
| 141 | +- Run .rdebugrc on Debugger.start. Look for a file in the current directory and |
| 142 | + run that instead of the one in $HOME if that exists. Again, inspired by and compatible |
| 143 | + with gdb. |
| 144 | +- Changes compatible with Ruby 1.9. NOTE: this debugger will NOT work with |
| 145 | + Ruby 1.9 |
| 146 | +- leaving irb shows position same as entering debugger; "list" position |
| 147 | + is also cleared when leaving irb |
| 148 | +- help "foo" gives message "Undefined command "foo" rather than a list |
| 149 | + of help commands. (Message test is gdb's) |
| 150 | +- Add set linetrace+ - similar to step+ for linetrace |
| 151 | +- Start unit tests. |
| 152 | +- Start a reference guide. |
| 153 | + |
| 154 | +0.9.3 |
| 155 | +- Fixed if..elsif..end stepping. |
| 156 | +- From irb session Ctrl-C or 'cont' command continues execution without showing the debugger prompt. |
| 157 | +- Added Debugger.settings method to programatically modify command settings. |
| 158 | +- Added Kernel#breakpoint as alias to Kernel#debugger is the former is not already defined. |
| 159 | + |
| 160 | +0.9.2 |
| 161 | +- Fixed file comparison in Windows platform. |
| 162 | +- Added setter methods to Breakpoint properties |
| 163 | +- Added breakpoint hit condition functionality (not available via CLI yet) and methods: |
| 164 | + Breakpoint:hit_count |
| 165 | + Breakpoint:hit_value[=] |
| 166 | + Breakpoint:hit_condition[=] |
| 167 | + |
| 168 | +0.9.1 |
| 169 | +- Fixed incorrect stack calculation. |
| 170 | +- Context#stop_next= method aliased as Context#step. |
| 171 | +- Added the 'force' parameter to Context#step_over. |
| 172 | +- Added the 'force' parameter to Context#step. |
| 173 | +- 'next+/step+' commands forces to move to another line |
| 174 | +- Added a new 'forcestep' setting. |
| 175 | + |
| 176 | +0.9 |
| 177 | +- Kernel#debugger method will start the debugger if it's not running. |
| 178 | +- Added Context#stop_reason method. |
| 179 | +- Calling a method with a block will create a new frame. This changes the behavior of 'next' command. So in order to step into a block, 'step' command must be used. That fixes bug #9629. |
| 180 | +- Added the possibility to add a temporary context-specific breakpoint. Context#breakpoint and Context#set_breakpoint methods are added. |
| 181 | +- 'cont' command now accepts a numerical parameter which implements 'Continue until line' behavior. |
| 182 | +- Added new Context.frame_class method |
| 183 | +- Added new 'framefullpath' setting. |
| 184 | +- Added new 'frameclassname' setting. |
| 185 | +- All Ruby's 'eval' and require/load methods create a new frame. Fixes bug #9686. |
| 186 | + |
| 187 | +0.8.1 |
| 188 | +- Added a shortcut module 'debugger'. require "ruby-debug/debugger" will start the debugger and stop at the next line (similar to require 'debug'). |
| 189 | +- Fixed remote debugging. |
| 190 | + |
| 191 | +0.8 |
| 192 | +- Extract the base debugger API into a separate gem (ruby-debug-base), so it will be easier to add a new interface. |
| 193 | +- Added 'set autoirb' setting. |
| 194 | +- Bugfixes. |
| 195 | + |
| 196 | +0.7.5 |
| 197 | +- Fixed 'reload on' command |
| 198 | +- 'reload on' command is removed in favor of 'set autoreload' |
| 199 | +- rdebug will evaluate ~/.rdebugrc script on startup |
| 200 | + |
| 201 | +0.7.4 |
| 202 | +- Added a workaround of the Ruby interpreter problem where a method created with Module#define_method |
| 203 | + and which raises an exception doesn't trigger a :return event, this way screwing the stack trace. |
| 204 | +- Fixed a situation of an array 'out of bounds' access. |
| 205 | +- Fixed the help for 'where' command. |
| 206 | + |
| 207 | +0.7.3 |
| 208 | +- Fixed a case when a frame is not popped up properly. |
| 209 | +- Removed Context.ignore= method, since it can result with the segmentation fault error. |
| 210 | +- Fixed the case when Context#suspend may effect the state of the thread on Context#resume |
| 211 | +- Fixed several cases of seg faults when accessing dyna_vars structure. |
| 212 | + |
| 213 | +0.7.2 |
| 214 | +- Fixed Context#resume (a thread should be waked up only when it was running when it was suspended). |
| 215 | +- When handling post-mortem exception, all threads must be suspended. |
| 216 | + |
| 217 | +0.7.1 |
| 218 | +- Fixed 'delete' command |
| 219 | + |
| 220 | +0.7 |
| 221 | +- Eliminated explicit Frame object. Use Context.frame_[binding,file,line] instead. |
| 222 | +- Fixed help command. |
| 223 | +- Renamed Debugger.keep_frame_info to Debugger.keep_frame_binding |
| 224 | +- 'eval' command is available, even when keep_frame_binding is not used. |
| 225 | +- New 'set' command is available. |
| 226 | + |
| 227 | +0.6.2 |
| 228 | +- Added thread lookup cache. |
| 229 | +- Control thread is always started by rdebug script. |
| 230 | +- Ability to specify negative frame number to frame commands. Patch from R. Bernstein. |
| 231 | + |
| 232 | +0.6.1 |
| 233 | +- Another performance optimization. |
| 234 | + |
| 235 | +0.6 |
| 236 | +- Added option to exclude collecting of frame bindings. |
| 237 | +- Several performance optimizations. |
| 238 | + |
| 239 | +0.5.4 |
| 240 | +- Added -x/--trace option to rdebug script. Patch from R. Bernstein. |
| 241 | +- Removed a live thread reference from the context's structure avoiding memory leakage. |
| 242 | + |
| 243 | +0.5.3 |
| 244 | +- Added Module#post_mortem_method method, which wraps any method with Debugger.post_mortem block. |
| 245 | +- Added breakpoint id, which is not dependent on the breakpoint position in Debugger.breakpoints array. |
| 246 | + |
| 247 | +0.5.2 |
| 248 | +- Fixes interoperability problems with rspec. |
| 249 | +- Made 'exit' as an alias to 'quit' |
| 250 | +- Added 'restart' command. Patch from R. Bernstein. |
| 251 | + |
| 252 | +0.5.1 |
| 253 | +- Bugfixes. |
| 254 | + |
| 255 | +0.5 |
| 256 | +- Added post-mortem debugging |
| 257 | +- Added 'irb' command. |
| 258 | + |
| 259 | +0.4.5 |
| 260 | +- Fixed debug_method when applied to setter. |
| 261 | +- Added 'reload' command which can be used to reload source code in case it's been changed. |
| 262 | +- Added Debugger.reload_source_on_change option (true, by default) which controls whether ruby-debug should keep |
| 263 | + track of the source files modification times and reload them if they've been changed. |
| 264 | + |
| 265 | +0.4.4 |
| 266 | +- Renamed Context#set_suspend and Context#clear_suspend methods to Context#suspend and Context#resume respectively. |
| 267 | +- Context#resume method not only clears suspend flag, but also resumes the thread execution. |
| 268 | +- Bugfixes. |
| 269 | + |
| 270 | +0.4.3 |
| 271 | +- Added Debugger.skip method which allows escaping a block from the debugger reach. |
| 272 | +- Bugfixes. |
| 273 | + |
| 274 | +0.4.2 |
| 275 | +- Module#deubg_method added. |
| 276 | +- Added rdoc. |
| 277 | +- Bugfixes. |
| 278 | + |
| 279 | +0.4.1 |
| 280 | +- New binding_n method for Kernel module. |
| 281 | +- Bugfixes. |
| 282 | + |
| 283 | +0.4 |
| 284 | +- Debugger.start method takes a block. If a block is specified, this method starts debugger, yields to the block |
| 285 | + and stops debugger at the end. |
| 286 | +- 'tm[ate]' command accepts a frame number now. |
| 287 | +- 'list' command accepts on/off parameter which controls whether listing will be displayed on every stop. |
| 288 | +- 'eval on/off' controls the evaluation of unknown command. |
| 289 | +- Debugger reads readline history file .rdebug_hist at startup and saves it at exit. |
| 290 | +- 'sa[ve] <file>' command can be used to save current breackpoints and catchpoint if any |
| 291 | +- 'sc[ript] <file>' command can be used to run script file. Script files can contain only control commands. |
| 292 | +- rdebug script accepts '--script FILE' parameter. |
| 293 | +- thread commands are available for the control port. |
| 294 | + |
| 295 | +0.3 (2006-08-07) |
| 296 | +- Renamed Debugger.start_server to Debugger.start_remote. |
| 297 | +- Debugger.start_remote activates debugger by calling Debugger.start. |
| 298 | +- Debugger.start_remote starts a control thread which listen on port 8990 and accepts control |
| 299 | + commands, such as adding/deleting breakpoints, assigning catchpoint, etc. (Useful for GUI integration) |
| 300 | +- New Debugger.wait_connection option. When it's true, Debugger.start_remote waits until |
| 301 | + a remote connection is made. |
| 302 | +- New Debugger.stop_on_connect option. When a remote connection is established, debugger |
| 303 | + stops the main thread (Thread.main). |
| 304 | +- 'interrupt' command is available for the control thread. |
| 305 | + |
| 306 | +0.2.1 (2006-07-29) |
| 307 | +- 'f[rame] nn' command selects a numbered frame. Frame numbers can be obtained by running frame |
| 308 | + command without parameters. |
| 309 | +- 'l[ist] =' show code in the context of the current line. |
| 310 | +- 'tm[ate]' opens the current file in TextMate. Available only on Mac OSX. |
| 311 | + |
| 312 | +0.2 (2006-07-17) |
| 313 | +- Added the remote debugging. It should be activated by calling Debugger#start_server method. |
| 314 | +- CHANGED: In order to activate the debugger, it's not enough to require 'ruby-debug'. |
| 315 | + Debugger#start method must be called explicitly. |
| 316 | +- Debugger used to evaluate anything you enter as long as it's not a command. Starting from |
| 317 | + this version the 'eval' command must be used to evaluate an expression. |
| 318 | + |
| 319 | +0.1.5 (2006-07-13) |
| 320 | +- Now the check for a breakpoint uses base filename of the source file. |
| 321 | +- Removed compilation warnings when compiling with -Wall |
| 322 | + |
| 323 | +0.1.4 (2006-07-12) |
| 324 | +- Remembers the previous command. Invoke it by typing a carriage return |
| 325 | + at the command prompt. |
| 326 | + |
| 327 | +0.1.3 (2006-07-11) |
| 328 | +- Conditional breakpoints |
| 329 | +- Bugfixes |
| 330 | + |
| 331 | +0.1.2 (2006-07-16) |
| 332 | +======================== |
| 333 | + |
| 334 | +- Initial release. |
0 commit comments