我想在调试项目时使用函数DateTimeToStr
。我想使用评估/修改窗口或监 window 口。这总是会导致错误“函数被链接器消除”。
我已经确保该函数被项目使用(我还在我想要调试的函数中显式放置了一个调用),并且我关闭了优化并重新编译了整个项目。
最佳答案
我编写了以下程序
program WhereDidItGo;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
DateTimeToStr(0.0);
end.
并且准确地找到了您所报告的内容。评估/修改窗口报告该功能已被删除。奇怪。
无论如何,我尝试了这个,这似乎足以欺骗它。
program WhyDoesThisSolveTheOddity;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
FunctionPtr: function(const DateTime: TDateTime): string;
VarFalse: Boolean;
begin
if VarFalse then
FunctionPtr := @DateTimeToStr;
end.
问题可能在于该函数被声明为内联
。尽管在我的测试中,函数调用实际上并未被内联。
关于Delphi 2009 函数被链接器消除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12748105/