Debugging a DLL lazarus / 12-Debugger ---------------------------------------------------------------------- Phil H. · 2005-11-10 20:04 How do you debug a DLL with Free Pascal/Lazarus? The -gl switch doesn't display line tracing info if your program uses SysUtils (what program doesn't?!). Setting ExceptProc := nil disables SysUtils' exception handler, so line tracing is displayed. However, this line tracing info doesn't work if they exception occurs in a DLL. Instead, the trace shows only up to the call of the DLL function in the main program, which is completely useless. Trapping the exception in the DLL and executing   WriteLn(BackTraceStrFunc(ExceptAddr)); displays the name of the source file and line number where the exception occurred (for example, in one of the run-time units), but not the place in the DLL source where the error started. How to trace back to this error location? Normally this is what -gl does automatically in an .exe. Also, BackTraceStrFunc (and -gl) don't work right if the FPC-compiled DLL is called by a non-FPC program. Thanks.