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 36 37 38 39 40 41 42 43 44 45 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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656
|
Version 4.0-0.4
2009-10-27
- Handle file names with embedded blanks. More parameters in calls are now
quoted properly
- Add "set force", "step+", and "step-" commands.
- Preface more variable names with _Dbg_. Missed a use with "i" which
wreaked havoc in debugging some programs which used variable i.
- Use builtin readarray if bash 4 (or greater) detected.
- Fix bug in stepping inside a subshell
- Remove the triplicate banner when running bash --debugger
- Tolerate bash 4.1
Version 4.0-0.3
2009-04-10
- Allow arbitrary number of aliases
- Bug fix for bash 4.x don't try to return negative values in functions
- Allow building on bash 3.1
- Fix bug in alternating between "step" and "next" commands
- Some other small doc and bug fixes.
Version 4.0-0.2
2008-11-17
- Minor bug fixes
Version 4.0-0.1
2008-10-27
- Major rewrite and reorganization of code.
- compatible with bash 4.0
- "alias" command added, short commands names are now aliases and not
hard-coded in
- autoeval mode added: if set, commands that aren't debugger commands are
eval'd
- Add step+, step-, and "set force": force stepping to go to another line.
- Add builtin set0. Debugger will $0 (program name) if possible.
- "help" now shows lists of commands in columns
- Add set/show annotate. Add Emacs support for this
- Add gdb-like "edit" command to edit source where stopped.
- Dbg_set_trace -> Dbg_debugger more often
- Add unit tests via Kate Ward's shunit2.
- add trace/untrace to add xtrace to a function.
- Portable long options support via Stéphane Chazelas
- More (most?) debugger variables now start with _Dbg_.
- Greatly improve GNU Emacs support via gdba.
- Many bug fixes.
Version 3.1 0.09
2007-10-27
- Add set/show trace-commands to make the same as gdb 6.6
- show commands now allows for a starting number and +, same as gdb
- Reduce assumption that undefined means '' - initialize more variables.
Working towards inserting "set -u".
- variable and tilde expansion now occurs in cd command. Note gdb
does tilde expansion but not variable expansion like $HOME.
- add linetrace delay
- make FreeBSD tests work, cygwin signals are working so test are run there
- documentation updates
- emacs code improved
- some installation bugs fixed
- file name was sometimes incorrectly reported when debugged script set IFS
Version 3.1 0.08
2007-1-20
- Files coming from function line-specifications should be read in.
Debian Bug #40336
- add a gdb-like "load" command to force reading in a file.
- negative numbers allowed in "frame" (and "up" and "down") commands.
In particular "frame -1" refers to the oldest frame. Some
refactoring of this code.
- Note setting $PS4 in doc.
- Help, manual-page and documentation fixes.
Version 3.1 0.07
2006-12-10
- Add gdb-like "signal" command
- Add "kill" command for those cases where "quit" doesn't work.
- Add mechanism to set up signal handlers so debugger is entered,
or we just print the signal.
- document how to do call line tracing from within a program, i.e.
like the above signal handling setup, the debugger is not entered
first.
- Allow an optional line-spec on "continue" debugger command.
- Add --enable-getopt option to disable GNU getopt for systems that have
non-GNU getopt like NetBSD
- Fix bug in tracking parameters $1, $2, etc
- Emacs interface bug fixes
- readarray builtin internal changes
- Document updates
- Make sure we don't complain about bash 3.2. This debugger works on both.
Version 3.1 0.06
2006-07-21
- Add gdb 'commands' command:
runs debugger commands at a specified breakpoint
- Add gdb 'info program'. (Shows program status)
- Add ability to invoke from inside a running program rather than
at the outset (set_trace)
- Add a better line tracing:
* shows bash nesting,
* bash subshell nesting
* function nesting
* source line preserving initial indentation
- Add line tracing command-line option in bashdb: -X, and long option --trace
- add ability to turn on and off line tracing from inside a program
- Revise sample sessions in bashdb document
- Sourcing a debugger command file now prints the
command before executing it.
- Executing a string (option -c or --command) shows the command
to be run in the call stack.
- Attempt to get documentation on GNU Emacs section in order. Describe
bashdbtrack.
- Go over documentation yet again. When will I ever get this right?
Version 3.1 0.05
2006-03-24
- Add complete (command completion),
- Add cd, pwd
- Add gdb-style set/show logging.
- Better checking to see if we have bash 3.1 (as opposed to 3.0)
- GNU Emacs debugging improvements, including...
- Add shell prompt tracking in GNU Emacs (bashdbtrack - like
Python's pdbtrack)
- Patches to allow VPATH (or build outside of source tree)
- Numerous documentation changes
- Break out command files even more.
Version 3.1 0.04 (initial 3.1 release)
2006-01-16
- Showing which command on a line with multiple commmands works again.
Reinstate regression tests which use that.
- Add a loadable routine to read a script into an array fast. This
speeds up the startup on reading large scripts very much.
- Install compiled GNU emacs lisp
- We were reporting script line sizes as one larger than the actual size
- Bash location matches installation in bashdb documentation
Version 3.00 0.03 (bugfix and palindromic-version-number release)
2005-12-10
- Changes to make ddd work better
* "info args" works correctly
* "help run" works
* Do all the directory removing/creating/symbolic linking so that bash
finds the include file it needs. This was real ugly. I couldn't have
undertaken to try to figure this out without my GNU Makefile debugger
and the "write" command.
Version 3.00 0.02 (cleanup release)
2005-07-24
- if texi2html isn't installed, don't give an error on "make"
- allow regression tests to be run using the Bourne shell's /bin/sh
- removing failed tests on bash 3.0
- "make distcheck" now works
- go over INSTALL instructions
Version 3.00 0.01
2004-11-11
- First release for bash 3.0
Version 0.44
- Show progress bar during reading target scripts.
Version 0.43
2004-05-15
- Add "file" command
- Expand bash.1 to include more rebash extensions, e.g. variable names
- Improve documentation
- Fix bug listing line numbers and restarting when debugged program has
done a cd. Save initial cwd.
- don't install gud unless we have emacs version 21.0 to 21.3.
- reduce spurious warnings in bash and rebash regression tests.
- test for null filename in reading in source.
- Lots of gcc -Wall compiler warnings removed. There were some potential
uses of uninitalized variables (if not one outright bug).
- fix mis-configuration for OSs that have both GNU gettext and one in libc
Version 0.42
2003-09-20
- Autostuff improvements
- fixes to make Cygwin, OS X and AIX builds
- configurable package and executable names
- Allow modification the philosophical parts the bashdb reference
manual to placate Matthias Klose and presumably Debian folks
- Bug: a comment line in the history was taken as a timestamp and we
dumped core. Non-timestamp comment lines should appear in the history now.
- Bug: was not expanding source filename in debugger the correct way.
- Mention HISTTIMEFORMAT in bash.1
- Add bashdb manual page.
- Changes to allow building outside of source tree.
- Add Debian bash 2.05b patches provided by Matthias Klose.
Version 0.41
2003-08-08
- The line number in multi-line assignments had been the line number where
the assignment ends, not the beginning. Thus assignments with
back-ticked subshells gave the wrong line number.
- V (info variables) command working thanks to Mikael Andersson
- Add "help show <command>" and "help info <command>"
- More global variables start out _Dbg_ now (e.g. source_ -> _Dbg_source_)
- Add long overdue THANKS
Version 0.40
2003-6-13
- "make distcheck" from debugger directory works
- bashdb doc moved under debugger directory
- Make portability changes for cygwin and OS's that don't have wcwidth
- Install public bash 2.05b patches 005-007
- use diff -u if that's available on regression tests
Version 0.39
2003-5-27
- history now is timestamped. Use environment variable HISTTIMEFORMAT
to customize using strftime specifiers.
- tty detection made less more generic
+ The timestamp patch is was posted to bug-readline@gnu.org; there is no
response.
Version 0.38
2003-4-29
- Was not finding source file if we did a cd in the debugged script
and the source file name was relative. Expand source file names.
Version 0.37
April Fool's Day 2003
- As a result of the below ddd's break/clear icon/buttons should work:
* Add "set annotate".
* Make breakpoint output more like gdb's. make show output more like gdb's
* Canonicalize filenames on breakpoints, actions, lists.
* add gdb "show dir" and do lookup based on source name and $cdir:$cwd
- _bashdb_ -> _Dbg_
- Add ~ to filename translation characters
Version 0.36
- Bug: if IFS set character in filename: the filename would be truncated.
Handle IFS save/restore more pervasively by saving on DEBUG handler
entry.
- Bug/Feature fix: Restart now quits all subshells before issuing its
restart (exec) command.
- Mechanism for having variables set in a subshell persist in a parent
shell worked out. Some of the global debugger settings (like
listsize, history) use this.
- debugger "print" command now uses double quote expansion rules.
(So print *** will expand filenames). We were having evaluation problems
in printing strings like "This won't work" (the single quote).
- Bug: setting shell variables with double/single quotes other
meta characters now works.
- Bug: caller() returned mismatched functions for line numbers/filenames.
Also now returns null string if no caller.
- Add + to list of filename translation characters.
+ Patches for this version is posted to bash maintainer; word March 31st
2003, that bash debugger patches have been integrated in a modified
form into "mainline bash code".
Version 0.35
- Bug: if IFS was not blank setting _bashdb_old_set_opts might fail.
Save and restore IFS before using "set"
- Bug: (parse.y) line number was not updated properly when in a here
documented with an unquoted delimiter and containing backslash newline.
- Bug, sort of: now set BASH_COMMAND to for head (for i in x y z ...)
in case head (case x in ), and in select head (select s in).
- Feature: "restart" now saves debugger environment. Environment variable
BASHDB_RESTART give the state file to read.
- Add environment variable BASHDB_INPUT to have a debugger command
file get read. This can be a space-separated list of files. Allow
-x many times in bashdb.
- Patches: Install public bash 2.05b patches 001-004.
- When reading large fileswhich takes a long time (e.g. "configure"
scripts), print out status every 1000 lines.
Version 0.34
- Bug: if no script we were running "set" to dump environment.
- Bug: "H count" was broken due to typo.
- We now keep track of the subshell level: dynamic variable
BASH_SUBSHELL and the debugger prints these as ()'s inside of the
prompt.
- "quit" leaves nested subshells more properly. Now takes an optional
argument to specify how many subshells to leave.
- Update gud.el (Masatake YAMATO), remove examples/bashdb/bashdb.el which may
cause confusion and set expectations for examples/bashdb (via README)
Version 0.33
- Regression tests work on FreeBSD, OSX (as well as Linux and Solaris)
- Fix following bugs:
* exit handler was getting called each time we exited a subshell.
* "bash --debugger script args" was not setting args properly.
* (configure) remove --with-debugger-start which are for
packages. Is variable DEBUGGER_START_FILE now. Versions are more
automatically picked up from a central setting. (More could be done
though). Thanks to c_thomps@ecolinux.no-ip.com.
* not setting fntrace correctly on debugger exit.
* wrong line number on case selector statement. Was esac rather than case.
* was getting max line number for some files properly
* (makefile) man2html.o not removed on clean
- Be able to handle EXIT like other signals (stop/nostop stack/nostack).
- Add provision for finding out which command is going to be executed.
Useful on multi-statement lines, conditional tests, for-loop headers a
eval (since the statement might be first "eval $foo" and then
"echo this is my life."
- Display command in debugger session we are on the same line/file and this
command changed.
- Canonicalize filevars via a file-expand routine. Allows many ways to
refer to the same file.
- Add option to have files show only short (basename) names, useful in testing
- Add set/show of these (basename, debugging debugger).
- Add -c option on bashdb. Analogous to "bash -c string"
- correct releases automatically put in "bash -v" and debugger M commands.
- Clean up signal handling code some. No longer need to pass LINENO.
Add routine to do some of the common entry/exit things.
Version 0.32
- Line number reporting improved.
- Fix bug in using trap line numbers inside traps. BASH_LINENO had
been wrong for the parts inside of a trap.
- Fix bug in case line numbers reporting line number of "esac" rather than case clause
- Fix bug in "down" command
- Bug in regression test run-all not picking up right shell sometimes.
- Make command "x" (display variable) much more useful and smarter
and more like perl5db's "x" command: show variable attributes (via
declare -p) or function body (via declare -f) evaluates an expression if
those fail and if *that* fails do what good ol' "print" would do.
- Add gdb's:
"condition" command.
"info break <n>".
"handle" command
"info signal"
- Signal handling more like gdb.
- bashdb patches for ddd
- Change help be more like gdb to facilitate ddd support.
- Improve bashdb.el and patches for gud.el
- Missing "finish" help info.
Version 0.31
- Fix bug where stack trace current line entry was sometimes wrong.
No longer mangle line number in stack changing commands.
- Implement gdb "finish" (some line number weirdnesses though.)
- Don't clobber debugged script's INT or ERR trap signal if set, but
do change them inside the debugger.
- All debugger functions now start _bashdb
- Expand history commands: "H -n" and "! n" work like perl5db.
- short command v (versions) changed to M to match perl5db.
Version 0.30
- Fix bugs in debugger output when debugged program redirects I/O
- Fix bug in setting $# via the way we set $1, $2 and so on. We now
also handle an arbitrary number of parameters.
- Fix/change history. Numbers now match prompt numbers. Can use !n, !-n as
well as hi [-]n. Also ![-]n:p instead of H n. Can limit the number
of history items listed on the H command.
- Add GDB's "set args" command.
- Add GDB's "set editing" command.
- Add GDB's set/show prompt and allow for more flexible prompt customization.
- Add GDB-like tty command and bashdb option -t for this.
Unlike GDB though, you can redirect debugger output to a file.
- Minor tweaks to "help" and "show". "show subtopic" works.
Version 0.29
- Fix bug in "make uninstall"
- $? is saved and preserved for use inside "eval", "print", "watch",
"display", "break" and "action" expressions.
- Can also refer to $1, $2, ... in commands mentioned above.
- debug-level nesting (the number of times we are nested in debugger)
is now shown in prompt via new exported variable BASHDB_LEVEL.
- Implement "skip" command. (Don't run next command.) Integrate this into
"debug" command.
- First cut at gdb-type "return" (premature return from function or
sourced program).
- Document caller() builtin function and "debug" debugger command.
- "Search" now works like gdb and perl5db. Fix a small bug in search
forward: was not resetting line to search location.
Version 0.28
- Can refer to parameters $1 $2, ... in "print", "eval" and breakpoint
conditions.
- Parameters appear in call stack. To do this:
- BASH_ARGC and BASH_ARGV arrays added. One is a stack of the count of
the parameters and the other a stack of the parameters.
Version 0.27
- Add forward and backward search.
- Add Perl "a" and "A" (action) commands.
- Add builtin caller().
Version 0.26
- Document "break" command.
- Change "line" to "linespec" in online help where
appropriate.
- Add commands "tbreak" (one-time break) and "display" (automatic display).
- Add provision to debug into a script ("debug" command), and leave
script without going back into debugger command loop
(BASHDB_QUIT_ON_QUIT environment variable).
- Document command "tbreak", "enable" and "disable" in manual.
Version 0.25
- Fix core dump on error (when no source file).
- Fix bug where "watche x > 24" was creating output to file 24.
- "restart" now picks up full bash name from BASH environment variable.
- bash --debugger -c "..." now works.
To accomplish the above, environment variable BASH_EXECUTION_STRING
was added which contains the contents what was passed after -c.
- Command files now nest and pick up where they left off in between
script execution.
- save "set" parameters on debugger entry and restore them. Inside the
debugger: set +xv.
- add ARG array for $1, $2 and so on. "info args" now shows these.
- Revise and update doc for above and (hopefully) better overall
organization.
- Better installation instructions.
Revise bash's top-level README and INSTALL's (debugger and top
level) to note debugger changes.
Version 0.24
- Line numbers of initial "for var in..." and "select" listed or stopped.
Error messages on those lines should print correctly.
- Rename debugger variables so as not to conflict with possible user
variables (such as "i").
- Don't allow stepping into debugger on program exit.
loop on command loop in "exit" handler.
- Function names now supported. breakpoints can be set on them. "list" now
allows a function name.
To add function name support, the semantics of "declare -F" have
changed: the source file and line number is now added in the output.
However in non-interactive mode, the line number is wrong. It is the
caller line.
- These commands have been extended to include linespecs
"continue", "break" (tbreak), "list".
Version 0.23
- More work on breakpoints and watchpoints, error checking
* Allow breaking on file:line.
* Give counts on number of times hit
* Allow enabling/disabling/clearing watchpoints via "w" suffix
- fix bugs
handling break/watch conditions
eval without a tty
"-" command size wrong
#comment handling
make cmd_loop read safe from tampering with IFS
- More texinfo manual revisions
- Separate debugger tests from bash tests
Version 0.22
- More complete texinfo manual
- Automake improvements to install Emacs lisp (Masatake YAMATO)
- Set/show started
- List with no arguments works like gdb and Perl's debugger
list regression test added
- Add frame command
- Add signal handler for exit so we don't exit debugger when exiting program
- case statements now indicate line number of "case WORD".
Initial release -
Initial release of something that's worthy of being called a debugger!
In contrast to earlier ksh/bash debuggers, this release has:
Line numbers and source text are reported correctly
- through loops
- through conditionals
- inside functions
- inside sourced files
A change in source file is now tracked - we don't assume one script
file nor do we create a fake script file with a funny name and run
that.
Emacs support via GUD (grand-unified debugger)
Step/next (to step inside a function or ignore it) now work
- even works on "source"
Call stack display.
- Since "source" is a builtin function that shows up in the call stack
- function names, filenames and line numbers appear in call stack
Command arguments to debugged routine are left intact (if using bash
--debugger). In particular $0 is the program name.
Debugging interface similar (and largely a subset of) Perl's debugger
interface with gdb long mnemonics. (Well, okay: where - but perhaps
more in the future like "up" and "down").
Even without using *our* debugging script, there are changes to bash
that make other debugging (or writing other debuggers) more
amenable. In particular, line numbers of command substitution ``,
$(), and {}, now gives the absolute line number in the file rather
than relative to the beginning of the substitution. (So error
reporting you generally see that an unhelpful message that error
occurred on line 1.) Also support for call stacks with source files
and line numbers can be helpful for stand-alone debugging and error
reporting
$Id: NEWS,v 1.39 2009/04/10 10:24:30 rockyb Exp $
|