use*_*275 3 delphi delphi-2009
我想DateTimeToStr在调试项目时使用该功能.我想使用评估/修改窗口或监视窗口.这总是会导致错误"链接器消除的功能".
我已经确保项目使用了该函数(我还在我想要调试的函数中显式调用了),同时我关闭了优化并重新编译了整个项目.
我做了以下计划
program WhereDidItGo;
{$APPTYPE CONSOLE}
uses
SysUtils;
begin
DateTimeToStr(0.0);
end.
Run Code Online (Sandbox Code Playgroud)
并找到你报告的确切内容.评估/修改窗口报告该功能已被删除.奇怪的.
无论如何,我试过这个,这似乎足以欺骗它.
program WhyDoesThisSolveTheOddity;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
FunctionPtr: function(const DateTime: TDateTime): string;
VarFalse: Boolean;
begin
if VarFalse then
FunctionPtr := @DateTimeToStr;
end.
Run Code Online (Sandbox Code Playgroud)
也许问题是该函数被声明为inline.虽然在我的测试中,函数调用实际上并没有被内联.