Mail Archives: djgpp/1994/02/17/04:35:52
Hi!
I have uploaded the file fsdb090.zip to
omnigate.clarkson.edu:/pub/msdos/djgpp/pub
It is version 0.90 (beta) of my new full screen debugger inspired
by Borland's Turbo Debugger. It is distributed as the changed and
new source files to djgpp's default debugger; you must compile it
yourself. Don't forget to backup your copy of "ed" before you
install this.
Have fun!
Morten Welinder
terra AT diku DOT dk
The manual...
-------------------------------------------------------------------------
Sally Full Screen Debugger version 0,90 beta
-------------------------------------------------------------------------
This is a quick-and-dirty manual for the Sally Full Screen Debugger,
a new user interface to the old djgpp debugger. The interface was
inspired by Turbo Debugger, the very best debugger that I have ever
seen. Too bad it doesn't work for 32 bit programs.
The debugger has been tested under the following conditions only, but
I expect no problems in other environments except as noted below:
* Cpu: 486 (i.e., with fpu)
* Colour Vga screen, text mode.
* Vcpi mode of the extender.
I think it will work on a mono screen also, but I'm not sure. It seems
to be working with 43 or 50 lines displays, but this is not fully tested.
Graphics mode does not work -- a little work in get_screen() and
put_screen() could fix that, but it might be slow. I expect no problems
when used with the 387 emulator, but without that or a fpu you should
not call up the npx window. Finally, I don't know about Dpmi.
I have no problems with speed, even on large programs like Gnu Emacs,
but some of the redisplay routines are greedy. A few caches might help,
but I don't feel like doing it right now.
Yet to do, but did not feel like it right now:
* Alt-S to swap in the source in place of the disassembly.
* Alt-M to swap in a memory status display somewhere.
* Handle screen mode switch gracefully.
* Handle graphics modes.
* Entry of strings or multiple bytes in the data pane.
* Display of data in different formats.
* More than three breakpoints by patching with `Int 3'.
* F4/F8/F9 should step over breakpoint at cursor like F7 does.
* Conditional breakpoints.
* Breakpoint on data change, or port i/o.
* Improve precision of npx manipulations.
* Enhance expression evaluator.
* Debug logs.
* Restart capability.
* On-line help.
* Ctrl-Break catch.
Some keys have been assigned aliases; these aliases are not shown
in the key descriptions here.
Global Keys:
-----------
The following keys are defined no matter where the current focus
is pointed at.
Tab Goto next pane (clockwise).
BackTab Goto previous pane.
Alt-C Replace npx pane with code pane.
Alt-N Replace code pane with npx pane.
Alt-X Exit.
Alt-F5 Show user program screen.
F7 Single step program.
F8 Single step program, but step over calls.
F9 Run or continue program.
Code Pane Keys:
--------------
Up One instruction backwards (only 99% perfect).
Down One instruction forwards.
PgUp A screenful of instructions backwards.
PgDn A screenful of instructions forwards.
Ctrl-Left Start instruction display one byte before.
Ctrl-Right Start instruction display one byte later.
Ctrl-G Goto specified address.
Ctrl-N Set eip to instruction under cursor -- careful!
Ctrl-O Goto current eip.
F2 Set/reset breakpoint. Only three can be set at any time.
F4 Set temporary breakpoint at cursor and run.
Register Pane Keys:
------------------
Up/Down What you expect.
Other Enter new value for register.
Flag Pane Keys:
--------------
Up/Down What you expect.
Space Toggle flag.
S Set flags.
R Reset flag.
Breakpoint Pane Keys:
--------------------
Up/Down What you expect.
Delete Reset breakpoint.
Return Go to breakpoint.
Data Pane Keys:
--------------
Up/Down What you expect.
Left/Right What you expect.
PgUp/PgDn What you expect.
Ctrl-G Goto specified address.
Other Enter new byte value.
Npx Pane Keys:
-------------
Up/Down What you expect.
Ctrl-C Clear register.
Ctrl-Z Zero register.
Ctrl-N Negate register.
Other Enter new value for register.
- Raw text -