charles wrote:what is a debugger ?
A debugger is a program that let you inspect the status of the program you want to debug. You can step through the code line by line, and watch the variables and data changing. You can define breakpoints in your code, i.e. points in your code where execution is halted and control is handed over to the debugger so you can inspect the state of variables and data, and either abort the program, continue running it or stepping through it line by line from the breakpoint.
Most debuggers for TOS works at the assembler level, you don't see your actual source code but the assembler code generated by the compiler. But there are source-level debuggers too, the best I have used on TOS is the PureC debugger. It lets you inspect the code both at the source level and at the assembler level, even at the same time. It's been a long time since I used any Pascal compiler but IIRC Pure Pascal has a similar debugger.
Source level debuggers are infinitely more useful than low level debuggers when using high-level languages, and the Pure debugger is the main reason why I mostly use PureC when programming on my Ataris.