用户一直在报告我无法在我的机器上重现的问题/崩溃/错误.我发现这些问题很难解决.
我已经开始使用EurekaLog(太棒了!)和SmartInspect.这两种工具都有很大帮助,但我仍然发现很难发现一些问题.
我刚刚购买了David Agans的Debugging(等待它到达).
是否还有其他特定于Delphi的工具或技术有助于捕捉这些难以找到的远程问题?我发现难以追查的问题是那些不会引起例外或有明确原因的问题.EurekaLog捕获异常,一旦我有理论检查,SmartInspect就相当不错了.但在某些情况下,这是一个看似随机的崩溃,有几千行代码可能有问题.如何缩小根本原因?
我如何获得由FastMM分配的内存总量?
我试过了:
function GetTotalAllocatedMemory: Cardinal;
var
MMState: TMemoryManagerState;
begin
GetMemoryManagerState(MMState);
Result := MMState.TotalAllocatedMediumBlockSize + MMState.TotalAllocatedLargeBlockSize;
end;
Run Code Online (Sandbox Code Playgroud)
这是对的吗?
无论如何它会返回奇怪的东西.它比我在Windows任务管理器中看到的值少5倍.我相信Delphi应用程序分配的内存量等于FastMM分配的内存加上一些系统开销.我错了吗?