New debugger for D!!!

John Colvin john.loughran.colvin at gmail.com
Mon Jan 27 09:13:04 PST 2014


On Monday, 27 January 2014 at 17:10:06 UTC, John Colvin wrote:
> On Monday, 27 January 2014 at 16:42:14 UTC, Sarath Kodali wrote:
>> I'm planning to release a new debugger for D sometime during 
>> end of February.  This is a heads up for all those who are 
>> eagerly looking for a good debugger for D.
>>
>> Here is a sample debug session:
>>
>> $ ./dbg ./dbg
>> New session s1 (./dbg) started
>> New process p1 (program dbg) created
>> p1.1 SUSPENDED  [D main in dbg.d]
>> 78:  main(string[] args)
>> dbg> list 175
>> Source listing for thread p1.1, program dbg
>> 175:      if (srcpath !is null)
>> 176:          dv_dbgSrcpath(srcpath);
>> 177:      if (sympath !is null)
>> 178:          dv_dbgSympath(sympath);
>> 179:      auto cmd = new Command(uiType);
>> 180:      cmd.rc_exec(GLOBAL_DBGRC_FILE);
>> 181:      if (dbgrc is null)
>> 182:      {
>> 183:          dbgrc = homedir ~ "/" ~ DBGRC_FILE;
>> 184:          cmd.rc_exec(dbgrc);    // home dir dbgrc
>> dbg> run -u 179
>> p1.1 SUSPENDED  [D main in dbg.d]
>> 179:      auto cmd = new Command(uiType);
>> dbg> step -o
>> p1.1 STEPPED  [D main in dbg.d]
>> 180:      cmd.rc_exec(GLOBAL_DBGRC_FILE);
>> dbg> help
>> Run help on the following topics to get additional help.
>> Start & Stop:
>>    create, grab, quit, release, %follow, %srcpath, %sympath
>> Execution:
>>    halt, jump, kill, run, step, wait, %thread
>> Events:
>>    events, onstop, signal, stop, syscall, %lastevent, 
>> %thisevent
>> View or Modify:
>>    dump, list, maps, print, regs, set, stack, status, symbols, 
>> vars, which
>>    %dbg_lang, %file, %frame, %func, %lang, %line, %list_file, 
>> %list_line,
>>    %loc, %num_lines
>> Convenience:
>>    !, alias, help, logoff, logon, script, %cwd, %logfile, 
>> %log_prefix,
>>    %prompt, %result, %verbose
>>
>> For a full list of help topics, run "help toc".
>> dbg> help create
>> SYNOPSIS:
>>    create [-f <follow>] [-l] [-s <srcpath>] [-S <sympath>] 
>> [<shell_cmd_string>]
>> DESCRIPTION:
>>    Create a new debugging session for <shell_cmd_string>. The 
>> existing debug
>>    sessions are not affected by this command. One could 
>> simultaneously
>>    have multiple debug sessions. If <shell_cmd_string> is not 
>> specified, the
>>    <shell_cmd_string> from previous create command is used and 
>> the previous
>>    create session is destroyed. After the session is created, 
>> this command
>>    runs all the processes till their 'start' function.
>> OPTIONS:
>>    -f    follow 'prog', 'proc', 'thread' or 'all' or 'none'
>>    -l    load only; do not run new program / thread till its 
>> 'start' function
>>    -s    paths for source files
>>    -S    paths for debug symbol files
>> NOTES:
>>    It is not possible to redirect or pipe the output of create 
>> command.
>> EXAMPLES:
>>    create test_prog1 arg1 arg2 2>/tmp/prog1.err | test_prog2
>>          # creates a new debug session for test_prog1 and 
>> test_prog2
>>    create MANPAGER=more man 1p man
>>    create xterm -e ./cmd
>> SEE ALSO:
>>    events, quit, kill, release, run, shell_cmd_string, status, 
>> step
>>    %dbg_follow, %dbg_srcpath, %dbg_sympath, %follow, %srcpath, 
>> %sympath
>> dbg>
>
> Without the nasty line-wrapping: http://pastebin.com/1Z4T4vep

woops, missed a couple: http://pastebin.com/t0sejnF9


More information about the Digitalmars-d-announce mailing list