ddbg suggestion

Ary Manzana ary at esperanto.org.ar
Fri Apr 20 19:57:33 PDT 2007


bobef escribió:
> The debugee's output must be distinguished from the debuggers's output by prefix or something. Otherwise it is impossible for non-human to say which one is which. A single character would do nicely.

Another suggestions: a) allow the debugger to run in "for non-human" 
mode (with a flag), and b) to be able to specify two local ports on the 
machine, one to send requests, the other to recieve answers. This way:

a) The UI (or any program) can communicate with the debugger in a more 
"computer", efficient way. For example for a human the stack frame 
currently is shown like this:

#0  main.bla1 () at main.d:9
#1 0x004027a4 in _main () from dmain2
#2 0x0040ab05 in _mainCRTStartup () from constart
#3 0x7c816fd7 in ?? () from KERNEL32.dll

This is "hard" to parse (could be simpler). The #0 dosen't have an 
address, the last three don't have a line number or filename, etc.

In the "non-human" mode they could be shown like this:

// number, address, function, filename, line number (other parameters?)
0, , main.bla1, main.d, 9
1, 0x004027a4, _main, dmain2
2, 0x0040ab05, _mainCRTStartup,
3, 0x7c816fd7, ??,

(I currently don't use the other parameters, all of these would have to 
be defined properly, but you get the point)

Another example: when a breakpoint is set, you get the answer 
"Breakpoint set: main.d:9 0x402038"; when a breakpoint is hit, you get 
"Breakpoint 0 hit at main.d:9 0x402038". Again, they could be simpler to 
understand.

Yet another improvement: in the case of a breakpoint hit you just get:

Breakpoint 0 hit at main.d:9 0x402038
void bla1(int x) {

In the case of requesting the stack frame, the last line is "->". There 
is no "standard" way the debugger is saying "here ends my answer". Each 
kind of answer line should start with a different symbol or letter, and 
another symbol should be used for "answer end".

b) The debuggers output is *just* the program's output (it dosen't 
interfere with the commands sent to the debugger and recieved from it), 
which is very suitable for showing in a console.

The point b) is used in Eclipse for the Java debugger, as well as in 
their example "How to Write an Eclipse debugger": 
http://www.eclipse.org/articles/Article-Debugger/how-to.html

Well... just thoughts. :-)


More information about the Digitalmars-d-debugger mailing list