How does it work?

RamDebugger instruments the source code TCL files in order to make the debugging. Instrumenting means to add additional lines to the TCL code so as to be able to stop it whereever is desired. Depending on the context, it instruments all the file or only the proc's.

To see the instrumentation of a file, use Utilities->View instrumented file.

When RamDebugger makes local debugging, it sends the instrumented codes to a slave interp. Then, it its executed there and can communicate easily.

When Ramdebugger makes remote debugging, it needs some kind of communication between itself and the debugged program. In UNIX, the command send is used. In Windows, the package comm is used.

Some comments on communication on Windows:

  • DDE: This communication mode is totally broken. It is unpossible to make it work except for very simple examples. It just crashes RamDebugger or the full Windows.
  • Windsend: This package uses COM objects to communicate. It is nice and seems to work but has a very very slow startup time.
  • comm: This package emulates the UNIX send by using sockets. It has some problems in speed when trying connections. Also, it has been necessary to make some trick in order to identify the interps. This is the package chosen in Windows.

Due to the high dynamics nature of TCL, it is unpossible to make a direct correlation between source code lines and execution lines. Anyway, it works quite well for normal TCL code. Try and comment.

Previous page

Up page

Next page

How does it work?