[英]Is it possible to strip Debug Information from DCUs?
I am using free embedded NexusDB from GetIt which comes without sources, only .DCUs 我正在使用GetIt提供的免费嵌入式NexusDB,它没有来源,只有.DCU
However, these DCUs has debug info in them, which hamper debugging a lot, ie 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). 但是,这些DCU中包含调试信息,这极大地妨碍了调试,即当我尝试单Step Into (F7)
我的代码时,IDE经常提示我有关nxdb.pas
源文件位置,然后像我这样没有此类文件,请进入CPU视图,仅使用行号进行反汇编(请参见底部的示例)。
Same problem is with Trace to Next Source Line (Shift+F7)
Trace to Next Source Line (Shift+F7)
也是同样的问题
NexusDB Library folder contains only one version of .DCUs, there is no "Release" version NexusDB库文件夹仅包含一个版本的.DCU,没有“发行”版本
So I come to this question - is there any way to strip debug info from .DCUs? 所以我来问这个问题-有什么方法可以从.DCU中剥离调试信息?
Example of CPU view with linenumbers only: 仅具有行号的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]
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; 您最好的做法可能是在事件处理程序等中主动设置断点。我怀疑IDE请求源的最常见原因是发生异常时。 then just continue running to see the exception. 然后继续运行以查看异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.