使用XE2进行远程调试 - 显示字符串

Bri*_*ost 58 delphi string debugging remote-debugging delphi-xe2

我正在远程调试DElphi XE2(更新#4)和Windows XP目标之间的大型应用程序.PAServer正在目标上运行,应用程序正常工作并在断点处停止(您不会相信这个成就有多么难 - 提示 - 删除您的DPROJ并在XE之前通过任何IDE时再次启动).

我注意到局部变量和监视器的显示以一种奇怪的格式显示我的字符串,而在本地调试时通常会显示"某些字符串"格式.我知道了:

在此输入图像描述

任何人都可以告诉我为什么字符串以这种方式显示?我还得到{NULL}和{}之间的垃圾和未分配的输出变量之间的垃圾.谢谢.

.我看到这种格式表示宽字符串.我在Windows 7上尝试了一个简单的应用程序并获得了以下结果.我的应用程序在一个断点:

在此输入图像描述

显示的本地字符串变量:

在此输入图像描述

注意截断的'Hello'.似乎XE2有时会遇到远程unicode字符串的问题.我的PaServer是版本1.0.2.任何人都可以检查这是最新的吗?'来自更新#4的Twas ......

Dav*_*ave 1

我不确定它是否适用,但我知道 System.AnsiStrings 包含专门的命令,例如“Format”等......使用类似以下内容可能会解决您的问题:

var
  S1: AnsiString;
  S2: UnicodeString;
begin
  S1 := 'Foo';
  S2 := 'Bar';
  ShowMessage(Format('%s!', S2));
end;
Run Code Online (Sandbox Code Playgroud)

另外还有一些未解决的错误,只是为了排除其中的任何错误,您使用的是哪些特定版本的操作系统和工具,即 Win7 x64 Ultimate 等?