|
|
1
5
虽然笨拙而且不是全局的,但是您可以检查边缘点的源代码,如下所示。这些行可以设置断点,因为代码没有被消除死码。 我相信这是在程序层面上发生的。我不知道如何在一个较不粗糙的层次上确定这一点。
|
|
|
2
4
这个线程讨论了删除未使用的单元,并讨论了诸如i卡洛斯帕斯卡分析器之类的工具。这个工具可以满足你所有的需要。 How to "automatically" remove unused units from uses clause? |
|
|
3
2
您还可以检查最常用的商业探查器/覆盖工具,aqtime,来自 http://www.automatedqa.com 以下是功能视频: http://www.automatedqa.com/products/aqtime/screencasts/coverage-profiling/ |
|
4
2
您可以使用 Code Coverage 用于查找未使用代码的工具。只需运行应用程序并手动执行所有部分。代码覆盖率报告将显示未接触的部件。(在单元测试上运行工具没有帮助,因为未使用的代码仍然可以进行单元测试)。 Delphi提供免费(开源)代码覆盖工具 here . 运行之后,检查报告中是否有红线,这些是尚未到达的线。
也许作者可以在将来的版本中添加“搜索死代码”功能。 |
|
|
5
0
在处签出工具 http://www.peganza.com/ 帮助完成一些任务。 Icarus是免费软件,它分析您的“uses”条款,允许您删除未使用的引用。 PascalAnalyzer是完整的版本,它包括i卡洛斯功能和大量其他工具。 |
|
|
6
0
也许吧 CodeHealer 可以帮助您处理未使用的代码
|
|
|
7
0
对于单位,使用 Pascal Analyzer . 您可能需要多次使用它。 对于在类工厂(以及类似工厂)中注册的对象/类,您需要手动进行双重检查,因为它们将在中完全编译。原因是编译器不知道您是否真的使用它们。 对于方法,您需要检查蓝色点。不太实际,所以还有另一种方法(从我调查同一个话题时被告知的情况来看)。您需要在启用详细映射文件的情况下进行完整的生成。完成后,您需要比较源代码以查看映射文件中是否有条目。如果不是,那么代码就不会编译在死代码中(可能是因为如果它是组件,那么可能是因为您没有使用该功能)。 |
|
|
8
0
在过去,我使用“生成汇编程序”功能使用免费的pascal编译了源代码,然后制作了一些简单的对源代码进行操作的过滤程序。(对于该位,了解使用链接器“部分”粒度完成智能链接很有用) 它有时会让您了解为什么某些事物没有智能链接(例如,因为在某些表中有一个引用 可以 在初始化时被某个对象访问) 当然,delphi不是fpc,但是当您有提示要查找什么时,需要在delphi编译后查看边缘中的点,以查看它是否是智能链接的。同样,如果您想知道为什么某些代码被智能链接出来,那么分析用fpc编译到汇编程序中的一个小示例程序可以使原因显而易见。(例如,您可以找到引用它的RTTI表) fpc路由允许系统路由搜索此类测试的候选。 |