是否可以从DCU中剥离调试信息?

时间:2018-08-31 07:07:22

标签: delphi delphi-10.2-tokyo nexusdb debug-information dcu

我正在使用免费的嵌入式NexusDB from GetIt,它没有来源,只有.DCU

但是,这些DCU中包含调试信息,这极大地妨碍了调试,例如,当我尝试Step Into (F7)我的代码时,IDE经常提示我有关nxdb.pas的源文件位置,然后,因为我没有这样的文件,所以进入CPU视图时仅用行号进行反汇编(请参阅底部的示例)。

Trace to Next Source Line (Shift+F7)相同的问题

NexusDB库文件夹仅包含一个版本的.DCU,没有“发布”版本

所以我来问这个问题-有什么方法可以从.DCU中剥离调试信息?

仅具有行号的CPU视图示例:

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]

1 个答案:

答案 0 :(得分:1)

我不知道有任何实用程序可以为您执行此操作。您最好的做法可能是在事件处理程序等中主动设置断点。我怀疑IDE请求源的最常见原因是发生异常时。然后继续运行以查看异常。