gpt4 book ai didi

delphi - 运行 DSharp 示例时出现错误消息

转载 作者:行者123 更新时间:2023-12-03 15:24:54 26 4
gpt4 key购买 nike

我已经在 Delphi XE 中安装了所有 Dsharp 软件包。但是当我运行该示例时,我总是收到以下错误消息:

Exception: Patching : ObjAuto.GetTypeSize failed. Do you have set a breakpoint in the method?

有人找到解决此错误的方法吗?

enter image description here

最佳答案

该库正在尝试应用运行时代码补丁来修复 ObjAuto.GetTypeSize RTL 函数中的缺陷。执行此操作的代码可以在这里看到: https://bitbucket.org/sglienke/dsharp/src/ad7c5983505f0117f1347f92d2bb96c07bdfda94/Source/Core/ObjAutoPatch.pas?at=master&fileviewer=file-view-default

FindMethodBytes 的调用失败。由于此函数将修改执行代码以安装运行时补丁,因此它首先检查代码是否符合预期。它搜索代码,寻找该函数的已知签名。

找不到该签名,因此无法安装补丁。因此出现错误消息。补丁代码失败的一些可能原因:

  1. 此代码中设置了断点。断点是通过临时修改代码以包含断点指令来实现的。
  2. 您正在针对您自己的 RTL 修改版本进行编译和链接。因此,函数签名不同。
  3. 程序中的另一个单元也在修补相同的功能,并且由于明显的原因,第二次修补尝试失败了。
  4. 您使用的调试 DCU 具有与标准 DC​​U 不同的签名。
  5. DSharp 代码存在缺陷。也许是一个错误的签名,未在您的 Delphi RTL 版本上进行测试。这不太可能。也许您安装了未经 Stefan 测试的修补程序或 Delphi 更新。或者您可能尚未安装预期安装的修补程序或更新。也许链接器剥离了太多(或太少)代码,导致签名搜索失败。

这个问题可能是由于我还没有想到的其他原因造成的。但从根本上来说,这些都是同一主题的变体。运行时遇到的代码不符合预期。我确实建议您尝试找出原因,以便确定如何最好地继续。

鉴于此消息的可能原因有很多,我只是尝试解释其概念原因,但现在真正由您来调试环境中的具体情况了。

关于delphi - 运行 DSharp 示例时出现错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34033332/

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