gpt4 book ai didi

delphi - Delphi调试器显示????货币变量

转载 作者:行者123 更新时间:2023-12-03 19:36:05 26 4
gpt4 key购买 nike

我正在尝试查看变量的值,但调试器显示的值为“ ????”。这似乎发生在Currency变量上,但其他类型则没有(Double和Enumed类型都可以)。

我正在使用Delphi 10 Update 2在Windows XP SP 3上进行调试。

我正在使用的过程是:


在BDS IDE中生成项目。
将exe复制到该服务预期存在的目录中。
启动服务。它在本地运行,我不是在尝试远程调试。
附加到服务流程(运行|附加到流程)。
该过程在我的断点处停止,因此附加似乎没有问题。
评估变量的值。


要评估我尝试过的变量:


将鼠标悬停在变量名称上。通常,这会显示该值,但在这种情况下,它不会显示任何内容(即没有弹出窗口)。
右键单击变量名称,“调试”,“评估/修改”显示值????
右键单击变量名称,“调试”,“在光标处添加监视”显示值????
局部变量窗口显示值为{


它似乎与Currency有关,因此我尝试将变量类型从Currency更改为Double,并且当我重新运行测试时,调试器显示了正确的值。

我要评估的变量是一个局部变量,没有做任何棘手的事情,例如:

  function FooBar: Boolean;
var
foo: Currency;
bar: Double;
begin
foo := 0; // Breakpoint next line, evaluate foo shows "????"
bar := 0; // Breakpoint next line, evaluate bar shows "0"
...
end;


我认为可能相关的项目选项是:

  Compiler
Code Generation
Optimization = Off
Stack frames = Off
Pentium-safe FDIV = Off
Syntax options
Strict var-strings = On
Complete boolean eval = Off
Extended syntax = On
Typed @ operator = Off
Open parameters = On
Huge strings = On
Assignable typed constants = Off
Runtime Errors
Range Checking = On
I/O Checking = On
Overflow Checking = On
Debugging
Debug Information = On
Local Symbols = On
Debug Info = On
Definitions Only = On
Assertions = On
Use Debug DCUs = Off
Linker
Map file = Detailed
Linker output = Generate DCUs
Exe and DLL options
Include TD32 debug info = On
Include remote debug symbols = On


谁能说出是什么原因以及如何使它起作用?

编辑:
我尝试了一个包含带有按钮的表单的测试程序,该按钮将Currency变量格式化为标签。如上所述进行调试(附加到进程等),调试器显示正确的值。现在想知道问题是否特定于调试服务...

最佳答案

嗯-它在Delphy 2006中对我有用。不过,我只创建了一个小型控制台应用程序。解决方法的建议-将变量转换为调试器内部的int64。它应该显示值乘以10000。

关于delphi - Delphi调试器显示????货币变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1326888/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com