264 lines
6.6 KiB
Plaintext
264 lines
6.6 KiB
Plaintext
This is the description of the package debug32.tar
|
|
|
|
Hello minixers and debuggerer,
|
|
here comes the first public pascal debugger.
|
|
It is developed for Minix 1.7.1 and later. Be careful, all you read
|
|
in this file is for the 32-Bit Version of Minix. You can't start
|
|
the programs or use the libs under the 32-Bit version. In the file
|
|
README.DEBUG16 you find the description for the 16-Bit version.
|
|
|
|
The programs in this package are copyrighted by Henrik Quintel,
|
|
1994, 1995, 1996. But you can feel free if you want to give them
|
|
away. That's no problem. Another point is that this package contains
|
|
no sourcecode. But in future all my publications will contain source-
|
|
code. At the moment I develop a programming language called TQ.
|
|
So, all my programs will be written in TQ. For more information please
|
|
read the file README.TQ or contact me about the internet. My e-mail
|
|
adress is quintel@worms.fh-rpl.de or quintel@nibelung.worms.fh-rpl.de
|
|
The address of my home page is www.worms.fh-rpl.de/~quintel. If you
|
|
have problems by reaching my home page, please send me a short mail.
|
|
|
|
This package contains the following files:
|
|
------------------------------------------
|
|
file what it is div.
|
|
------------------------------------------
|
|
qdebugger debugger executable
|
|
qdb driver shell script
|
|
qpascal_cpp preprocessor executable
|
|
physik.pas testprogram pascal-source
|
|
qdb.1 man page ascii-text
|
|
|
|
A very important thing is that the size of debugger/interpreter is 20000.
|
|
You can test it with size [path]qdebugger.
|
|
|
|
In the debugger/interpreter are the following features not
|
|
implemented:
|
|
Filehandling
|
|
Packed array
|
|
Packed records
|
|
'Set of'-construct
|
|
|
|
How can you get the package ?
|
|
Make a ftp to ftp.cs.vu.nl
|
|
Directory: pub/minix/contrib/pascal/
|
|
set bin
|
|
set hash
|
|
set prompt
|
|
get debug32.tar
|
|
------
|
|
On your system do the following:
|
|
Make a directory in /usr (cd /usr;mkdir debugger;cd debugger)
|
|
Put the file debug32.tar there.
|
|
Extract the tar file with tar xvf debug32.tar
|
|
|
|
After extracting there are three directories:
|
|
1. debugger32
|
|
2. testsuite
|
|
4. manpages
|
|
|
|
In the first directory is the debugger. In the second
|
|
directory you find a small testsuite and in the third directory you
|
|
find the manpages.
|
|
|
|
For installing the debugger do the following:
|
|
cd /usr;mkdir local;mkdir bin
|
|
Copy the the files as follows in the mentioned directories
|
|
file directory
|
|
-------------------------------
|
|
qdebug /usr/local/bin/
|
|
qdb /usr/local/bin/
|
|
qdb.1 /usr/man/man.1
|
|
|
|
You have to make the following changes in the file whatis in the
|
|
directory /usr/man. Add the line qdb (1).
|
|
|
|
Of course you can install the files where you want. But if you do
|
|
so, you have to make changes in the file qdb.
|
|
|
|
If you have problems with installing or problems with debugging
|
|
your pascal programs send me the pascal program.
|
|
|
|
If I have forgotten a file or if you have any questions feel free and
|
|
mail to me.
|
|
|
|
Example for the debugger by using the file physik.pas
|
|
Starting the debugger:
|
|
(The words in the brackets are only comments by me)
|
|
qdb physik.pas
|
|
(You will see the listing if the pascal program is ok)
|
|
Command ? break 15 (Press Enter)
|
|
Command ? (Press Enter)
|
|
|
|
Enter new number (0 to quit) : 9 (Press Enter)
|
|
|
|
Breakpoint
|
|
At 15: If number = 0
|
|
|
|
Command ?
|
|
9.00000 3.0000
|
|
|
|
5.000000 66.67%
|
|
3.400000 13.33%
|
|
3.023530 0.78%
|
|
3.000092 0.00%
|
|
3.000000 0.00%
|
|
|
|
Enter new number (0 to quit) : (Press CTRL-C)
|
|
(Now you see a heart)
|
|
(Press Enter)
|
|
(There are two error messages - ignore them :-))
|
|
|
|
Command ? assign number := 16
|
|
|
|
Command ? show sqrt(number)
|
|
4
|
|
|
|
Command ? pi/number
|
|
|
|
****Error : undefinded identifier.
|
|
|
|
****Error : Incompatible types.
|
|
|
|
Command ? where
|
|
|
|
At 15: if number = 0
|
|
|
|
Command ? step
|
|
|
|
Command ?
|
|
|
|
At 15 if number = 0
|
|
|
|
Command ?
|
|
|
|
At 18: if number < 0
|
|
|
|
Command ?
|
|
|
|
At 22: sqroot := sqrt(number)
|
|
|
|
Command ?
|
|
|
|
At 23: writeln (number : 12 : 6, sqroot: 12 : 6)
|
|
16.000000 4.0000000
|
|
|
|
Command ?
|
|
|
|
At 24 : writeln
|
|
|
|
Command ?
|
|
|
|
At 26 : root := 1
|
|
|
|
Command ? unstep
|
|
|
|
Command ? trace
|
|
|
|
Command ? (Here you will see a lot of information)
|
|
...
|
|
Enter new number (0 to quit) : <13> 36
|
|
|
|
Breakpoint
|
|
At 15 : If number = 0
|
|
|
|
(Press CTRL-C like at the beginning of the session. You will see a heart)
|
|
(Press Enter)
|
|
|
|
Command ? untrace
|
|
|
|
Command ? store root
|
|
|
|
Command ? watch
|
|
Variables being watched:
|
|
root (store)
|
|
|
|
Command ? break
|
|
Statement breakpoints at:
|
|
15
|
|
|
|
Command ?
|
|
36.000000 6.000000
|
|
..... (There are a lot of stores now)
|
|
|
|
Enter new number (0 to quit) : 0
|
|
(Exit...)
|
|
|
|
Here are the commands for the debugger:
|
|
|
|
Command: break (number)
|
|
breakpoint at each one of them.
|
|
|
|
Command: break
|
|
Print the line numbers of all the breakpoints.
|
|
|
|
Command: unbreak (number)
|
|
Remove the breakpoint from the statement beginning on line (number).
|
|
|
|
Command unbreak
|
|
Remove all breakpoints from all statements.
|
|
|
|
Command: trace
|
|
Turn on statement tracing.
|
|
|
|
Command: untrace
|
|
Turn off statement tracing.
|
|
|
|
Command: entry
|
|
Turn on tracing of procedure and function entries
|
|
|
|
Command: unentry
|
|
Turn off tracing of procedure and function entries.
|
|
|
|
Command: exit
|
|
Turn on tracing of procedure and function exits.
|
|
|
|
Command: unexit
|
|
Turn off tracing of procedure and function exits.
|
|
|
|
Command: step
|
|
Turn on single-stepping
|
|
|
|
Command: unstep
|
|
Turn off single stepping
|
|
|
|
Command: fetch (variable)
|
|
store (variable)
|
|
watch (variable)
|
|
|
|
Command: show (expression)
|
|
Print the value of expression.
|
|
|
|
Command: assign (variable) := (expression)
|
|
(See example)
|
|
|
|
Command: where
|
|
Print the line number followed by the text of the statement to be executed next.
|
|
|
|
Killing the program
|
|
The kill command terminates the program execution.
|
|
|
|
Command: kill
|
|
|
|
If you have questions about the commands or the usage, mail to me.
|
|
|
|
At the moment I program :
|
|
an ansi c compiler
|
|
a new assembler / loader
|
|
a new lib
|
|
a forth interpreter
|
|
a C++ to C compiler
|
|
TQ of course
|
|
|
|
BTW, I make some brainstorming sessions to produce a compiler/interpreter
|
|
which understands the concepts of an OOP-language.
|
|
|
|
If you have ideas or tips, feel free and mail to me.
|
|
|
|
If someone has ideas or something else please write to me !
|
|
|
|
Special thanks for supporting :
|
|
Prof. Dr. Andrew S. Tanenbaum ast@cs.vu.nl
|
|
Kees J. Bot kjb@cs.vu.nl
|
|
Nils Holm fs29@rummelplatz.uni-mannheim.de
|
|
Peter J. Holzer hjp@wsr.ac.at
|