- remove shared variables (our ())
- use strict 'refs' in DB/DbgrProperties.pm and perl5db.pl
- breakpoint on error
- breakpoint on return should break before the function
  returns, otherwise they're not that useful
- breakpoint on return don't work for lvalue subroutines when using
  the pure-Perl debugger
  (probably not possible with pure Perl)
- review breakpoint_list logic for file breakpoints,
  it can probably be simplified
- make stop not exit
- check if it is possible to remove the eval() from context_get,
  also move all context-related code to an helper module
- fix stack depth/context id handling in properrty_get
  - stack depth > 0 for anything but function arguments
  - if there is both a lexical $foo and a package $foo, there is no
    way of fetching the package variable
  - kill evalArgument, it can be emulated via aliasing + eval, or
    kill the eval for everything else, and use evalArgument
- fix breakpoint_set return value
- fix the fact that breakpoint_set can set multiple breakpoints
- fix breakpoint_update -n option
- watchpoints do not distinguish undef from empty string
  (because of eval)
- sub eval {} goes to great lenghts to always produce at least one value
  which looks suspicious
- breakpoint_update to disable does not work with watchpoints
- breakpoints with dbgp:// URIs don'work (t/128_eval_breakpoint.t)
- add extended_properties feature
- aggressively disable DB::DB/DB::sub
  - when entering DB::DB
  - when evaluating breakpoint conditions
  - when calling DB::RedirectStdOutput methods
- try very hard not to reset iterator state on arrays/hashes,
  or at least try to restore it afterwards
- source command on Perl 5.8 and 5.10 does not return POD
  check in-memory and on-disk source match and get the POD from the disk file
- property_set
  - implement data page, context id, stack depth
  - get rid of the special case that tries to manually quote strings
- cleanup _getFullPropertyInfoByValue and kill analyzeVal
  they can use Scalar::Util::reftype()/blessed() instead of performing
  string operations on types, also, analyzeVal re-does some of the
  checks already performed by _getFullPropertyInfoByValue
- test
  - test using function arguments in conditional breakpoints
  - more thorough tests for function arguments in eval:
    they don't work (at least) in the case of recursion depth check
  - interactive mode (prints banner when used with -e, maybe it does
    other stuff as well)
  - that eval can see function arguments
  - feature_set/feature_get
    - individual features
  - breakpoints
    - breakpoint_get/update/remove/list for all breakpoint types
      (line/call/return/conditional/watch)
    - temporary breakpoints for all breakpoint types, plus
      interaction with enable/disable
  - context_get (combinations of stack depth and context)
  - property_get/property_value
    - stck depth/context combination
    - max size
    - long names
    - paging for arrays/hashes
  - break
- (maybe) replace DB::Data::Dump with a trampoline that loads data dumper
