This is the description of the package debug16.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 16-Bit Version of Minix. You can't start the programs or use the libs under the 16-Bit version. In the file README.PASDE32 a you find the description for the 32-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 is 20000. You can test it with size [path]qdebugger. In the debugger 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 debug16.tar ------ On your system do the following: Make a directory in /usr (cd /usr;mkdir debugger;cd debugger) Put the file debug16.tar there. Extract the tar file with tar xvf debug16.tar After extracting there are three directories: 1. debugger16 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