При работе с отладчиком в Delphi 10 Update 2 на операционной системе Windows XP SP 3 пользователи могут столкнуться с проблемой, когда переменные типа Currency отображаются как ????. Это может быть неприятным сюрпризом, особенно если с другими типами данных, такими как Double или перечисления, все работает корректно.
Описание проблемы
При отладке программы, собранной в среде разработки BDS, после копирования исполняемого файла в директорию, где ожидается его работа, и запуска сервиса, пользователи обнаруживают, что значение переменных типа Currency не отображается в отладчике. Попытки использовать различные методы оценки переменных, такие как наведение курсора мыши, контекстное меню "Debug, Evaluate/Modify" или "Debug, Add Watch at Cursor", не приводят к желаемому результату. В окне "Local Variables" также отображается пустой набор фигурных скобок { }.
Пример кода
function FooBar: Boolean;
var
foo: Currency;
bar: Double;
begin
foo := 0; // В этом месте при отладке значение foo будет "????"
bar := 0; // В этом месте значение bar будет корректно отображаться как "0"
// ...
end;
Возможные причины и решения
Проблема может быть связана с настройками компилятора. В частности, стоит проверить опции компилятора, связанные с генерацией кода, синтаксисом, обработкой ошибок во время выполнения и отладкой.
Однако, как было установлено в ходе исследования, проблема заключалась в отсутствии файла program.rsm в директории, где находился исполняемый файл program.exe. Файл program.rsm генерируется, когда включена опция "Include remote debug symbols" в настройках проекта. Несмотря на то, что отладка производилась локально, отсутствие program.rsm в нужной директории приводило к ошибке.
Решения проблемы
Установить путь к program.rsm в настройках проекта: Project | Options | Debugger | Symbol Tables | Debug symbols search path.
Скопировать program.rsm в ту же директорию, что и program.exe, перед началом отладки.
Альтернативное решение
Также было предложено использовать приведение переменной к типу Int64 непосредственно в отладчике, что позволило бы увидеть значение, умноженное на 10000. Однако, это решение может не подойти, если в проекте отсутствуют необходимые символы.
Заключение
Проблема с отображением значений переменных типа Currency в отладчике Delphi может быть решена путем корректной настройки путей к отладочным символам и директорий вывода. Обратите внимание на важность наличия файла program.rsm в директории с исполняемым файлом. Это позволит избежать ошибок при отладке и обеспечит корректное отображение значений переменных.
При отладке программ на Delphi 10 Update 2 под Windows XP SP 3 пользователи сталкиваются с проблемой, когда переменные типа `Currency` в отладчике отображаются как `????`, что связано с отсутствием файла `program.rsm` в нужной директории.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS