Search code examples
delphidelphi-10.2-tokyonexusdbdebug-informationdcu

Is it possible to strip Debug Information from DCUs?


I am using free embedded NexusDB from GetIt which comes without sources, only .DCUs

However, these DCUs has debug info in them, which hamper debugging a lot, i.e. when I try to Step Into (F7) my code, IDE often prompts me about source file location of, say, nxdb.pas, and then, as I have no such file, come into CPU view with disassembly with line numbers only (see example at the bottom).

Same problem is with Trace to Next Source Line (Shift+F7)

NexusDB Library folder contains only one version of .DCUs, there is no "Release" version

So I come to this question - is there any way to strip debug info from .DCUs?

Example of CPU view with linenumbers only:

TnxDataset.Notification:
007930EC 55               push ebp
...
007930F7 8945FC           mov [ebp-$04],eax
<unknown file>.10682: 
007930FA 8BCB             mov ecx,ebx
...
00793101 E8F6F9D3FF       call TComponent.Notification
<unknown file>.10683: 
00793106 8B45FC           mov eax,[ebp-$04]

Solution

  • I'm not aware of any utility that will do this for you. Your best course of action is likely to actively set breakpoints in your event handlers etc. I suspect that the most common cause of the IDE's request for the source is when exceptions occur; then just continue running to see the exception.