GDB it is always possible to debug a running process by
attaching to it. It is possible to debug a DLL this way. The limitation
of this approach is that the DLL must run long enough to perform the
attach operation. It may be useful for instance to insert a time wasting
loop in the code of the DLL to meet this criterion.
$ gdb -nw
(gdb) attach 208
(gdb) symbol-file main.exe
(gdb) break ada_dll
This last step will resume the process execution, and stop at the breakpoint we have set. From there you can use the standard approach to debug a program as described in (see Running and Debugging Ada Programs).