When a BASIC program is compiled, a symbol table is generated, unless the s (suppress table) option has been used with the compile or basic. The symbol table is used by the BASIC debugger to reference symbolic variables.
If a program calls an external subroutine, and the BASIC debugger has been entered previously, a complete symbol table is set up for the external subroutine. Breakpoints set up for a subroutine are independent from breakpoints set up in the main program or other subroutines. However, the execution counters e and n are global. That is, the breakpoint counters count both main program and subroutine breakpoints in the order in which they are encountered. Multiple symbol tables allow programmers to set up different breakpoints and/or variable traces for different subroutines.