【问题标题】:How to find exception in C++Builder Release mode, but not Debug如何在 C++Builder 发布模式下找到异常,但不是调试
【发布时间】:2021-06-29 17:00:10
【问题描述】:

C++Builder v10.4.2,CLang 64位编译器 发布模式下的浮点错误,但调试中没有。当一个特定的图形被调用,一个特定的用户文件在模拟中运行时,就会发生这种情况。这在过去发生过(不同的用户文件,相同的图形模块),消失了,现在重新出现。通过注释掉代码进行故障排除会产生无意义的结果,表明问题发生在其他地方 - 而不是在图形模块中。

把我逼疯了。

C++Builder 中是否有任何工具/开关/等我可以用来在发布模式下暴露问题?

还有其他故障排除建议吗?

跟进:我将相同的源文件放入 C++Builder 10.2.3 中,重新构建,它运行没有错误。 重新安装了 10.4.2 和第三方工具,从头开始重建项目,仍然得到相同文件的相同错误。请注意,该项目涉及使用 std::complex 值的计算,如果这可能相关的话。 讨厌放弃 10.4.2(真的很喜欢 TwineCompile),但这显然是不可接受的。

谢谢

【问题讨论】:

  • 当涉及到浮点错误时,C++Builder/Delphi 中的 RTL 有一些非常奇怪的异常处理。看看SetExceptionMask()Set8087CW() 等内容。
  • 我能够让调试器至少给出一个线索:它在 0x00f5c4da 处给出了一个类 $C0000090 浮点无效操作,它把我带到了 CPU 视图——这对我来说毫无意义.有时它会给出除以零的错误。我应该补充一点,这发生在 32 位和 64 位中,并且只有在 C++Builder 10.4.2 v10.2.3 中才能正常工作。

标签: exception release c++builder


【解决方案1】:

您可以尝试madExceptEurekalog,我相信两者都有免费试用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2016-03-19
    • 1970-01-01
    • 2012-05-19
    • 2012-01-31
    相关资源
    最近更新 更多