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