Debugging DLLs is similar to debugging executable (EXE) applications (see Section 6.5.1 above), but there are a couple of differences.
One difference is that DLLs may not have a start function. Without a start function, there is nothing for the environment to place a breakpoint upon in order to pause the DLL's execution and enter the debugger.
Nonetheless, for debugging it is still useful to be able to pause the DLL once it has initialized completely but before it exits. To do this, simply remove the name in the Start Function section of the Project > Settings... dialog's Debug page. Then, when you choose Application > Debug or Application > Interact, the debugger lets the DLL execute all its top-level expressions, and pauses the DLL just as its main thread is about to exit. This gives you access to all the definitions and state that the DLL creates.
If the DLL does have a start function, simply specify it and the Application > Debug and Application > Interact commands will work as they do for EXE applications: the environment adds a breakpoint on the start function, and on entry to the function the DLL's main thread is paused and a debugger window is opened on it.
Another consideration is that it is not normally possible to execute a DLL directly; instead, you start an EXE that calls it. The environment normally handles this issue for you, by using a small EXE that takes the target DLL name as a command-line argument, loads it (causing all its top-level expressions to be executed), and exits. When you choose Application > Start, Application > Debug, or Application > Interact the environment runs the EXE. The point at which the EXE is paused again depends on whether you supply a start function.
Alternatively, you can supply your own EXE in the Executable field of the Project > Settings... dialog's Debug page. The Application > Start, Application > Debug, and Application > Interact commands then call your EXE and behave in the same way as if your EXE was the project target file. That is to say, execution of the EXE proceeds without intervention from the debugger until the DLL loads. Only then will the debugger be in a position to pause the DLL. (Again, the point at which the pause occurs depends on whether you specify a start function.)