Delphi 2009功能由链接器消除

时间:2012-10-05 14:09:29

标签: delphi delphi-2009

我想在调试项目时使用函数DateTimeToStr。我想使用评估/修改窗口或监视窗口。这总是会导致错误“链接器消除了功能”。

我确保项目使用了该函数(我还在我想调试的函数中显式调用了),同时我关闭了优化并重新编译了整个项目。

1 个答案:

答案 0 :(得分:6)

我做了以下计划

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.

也许问题是该函数被声明为inline。虽然在我的测试中,函数调用实际上并没有内联。