Changes between Version 5 and Version 6 of HBDBPlanning

Show
Ignore:
Timestamp:
08/06/11 21:52:05 (10 years ago)
Author:
soh_cah_toa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • HBDBPlanning

    v5 v6  
    1 This page exists to help plan out soh_cah_toa's GSoC project.  Unfortunately it turns out to depend heavily on parts of imcc which were substantially more broken than anyone realized.   Although imcc has gotten the attention of our developers, the GSoC project's schedule shouldn't make any assumptions as to whether imcc will improve. 
     1This page exists to help plan out soh_cah_toa's GSoC project.  Unfortunately it turns out to depend heavily on parts of imcc which were substantially more broken than anyone realized.  Although imcc has gotten the attention of our developers, the GSoC project's schedule shouldn't make any assumptions as to whether imcc will improve. 
     2 
    23My (cotto) plan is to rework hbdb's schedule so that it can be a maximally useful debugger by the end of GSoC within the limitations of what imcc can provide.  The first step is to break the original schedule into a list of discrete features and to divide those features into three groups: those that are completed, those that depend on imcc's broken line number annotations and those that don't.  From there, we can work out a new schedule that will show measurable progress and be completable while avoiding some of the more egregious landmines provided by imcc. 
    34 
    4 the original schedule (with some omissions unrelated to features) is included below as a starting point. 
    5  
     5Anything listed with a '?' means that the likelihood of making it into HBDB by the end of the summer is slim. 
    66 
    77FEATURES: 
    88 *  read HLL annotations 
    99 *  read data from debug segment 
    10  *  code instrumentation (steal from parrot-instrument) 
    11  *  code introspection (steal from parrot-instrument) 
     10 ?  code instrumentation (steal from parrot-instrument) 
     11 ?  code introspection (steal from parrot-instrument) 
     12 *  add debugee interactively with a gdb-like 'file' command 
    1213 *  enable/disable breakpoints 
    1314 *  breakpoints (line) 
    1415 *  breakpoints (function) 
    1516 *  watchpoints (registers) 
    16  *  reversible debugging 
     17 ?  reversible debugging 
    1718 *  execute until the next annotation change 
    1819 *  backtrace 
    1920 *  bytecode disassembly 
    20  *  debugger scripting 
     21 ?  debugger scripting 
     22 ?  repl 
    2123 *  trace open file handles (including children) 
    22  *  dynamic memory analysis (check for uninitialized values) 
    23  *  dynamic memory analysis (destruction-triggered watchpoints) 
     24 ?  dynamic memory analysis (check for uninitialized values) 
     25 ?  dynamic memory analysis (destruction-triggered watchpoints) 
    2426 *  print internal debugger state info 
    2527 *  start/continue execution 
     
    2830 *  help 
    2931 *  source listing 
    30  
    31  
    32 Specific Details 
    33  
    34     Create an extension that would open an interpreter and be able to run code within it one opcode at a time. 
    35  
    36     Implement a shell as a user interface. Will be able to able to interpret commands, display information about current location, etc. 
    37  
    38         This may as simple as an NQP eval loop with a global dispatch table for user commands. 
    39  
    40         Use the FileHandle PMC to make the command shell a little more friendly. We can also add command line editing, command history, and tab completion. 
    41  
    42     A basic command set would include things like: 
    43  
    44         Start and continue execution with the ability to add arguments if they're not specified on the command line. 
    45  
    46         Changing the current working directory of the program.