Delphi 6 编译器选项(奔腾安全 FDIV)

2023-12-19

我收到了一位用户来自 MadExcept 的崩溃报告。异常是无效的浮点运算。

但奇怪的是,调用堆栈在 @FSafeDivide 处终止。

我谷歌了一下,发现这是对某些没有正确除法的奔腾芯片的检查。如果测试失败,所有划分都将在软件而不是硬件中完成。我在编译器设置中打开了 Pentium-Safe FDIV 选项。

这可能导致错误吗?我还在其他地方读到,作为异常类的 EInvalidOp 可能是堆栈溢出或其他原因。

如果您想阅读的话,这里有一段疯狂的例外消息。

异常类:EInvalidOp 异常消息:无效的浮点运算。

thread $1014 (TMyBossThread):
00403509 M5b3.exe System                @FSafeDivide
008300c9 M5b3.exe MMyWorkerThread    317 TMyBossThread.Search
0073e87a M5b3.exe MMyManagerThread 186 TMyWorkerThread.Execute
008e8c17 M5b3.exe madExcept             HookedTThreadExecute
0042c150 M5b3.exe Classes               ThreadProc
00405354 M5b3.exe System                ThreadWrapper
008e8af9 M5b3.exe madExcept             CallThreadProcSafe
008e8b63 M5b3.exe madExcept             ThreadExceptFrame
created by main thread ($864) at:
0073e828 M5b3.exe MMyManagerThread 171 TMyManagerThread.Create

首先,除非您实际上仍然有人在早期的 Pentium I 芯片上运行,否则您应该关闭该编译器选项。它是为了解决一些特定 CPU 中的故障,自 1995 年以来销售的任何芯片都没有出现过该问题。

话虽如此,如果除法中存在无效的浮点运算,问题很可能出在代码的某个地方,特别是因为 FSafeDivide 是应该产生正确结果的例程。看一下 TMyBossThread.Search,第 317 行,看看它在那里划分了什么。另请查看第 316 行,因为堆栈跟踪有时会将您指向您关心的行之后的行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Delphi 6 编译器选项(奔腾安全 FDIV) 的相关文章

  • delphi 变量值在循环中的线程中发生变化

    我的代码正在运行一个 for 循环来处理一些数据 如下所示 procedure printValue Value Integer begin TThread Synchronize TThread Current procedure beg
  • 在运行时按需更改组件类

    我的问题与这里的想法类似 替换delphi中的组件类 https stackoverflow com q 4685863 937125 但我需要改变一个specific按需组件类 这是一些伪演示代码 unit Unit1 TForm1 cl
  • 在 C++ 中,将 float 转换为 double 再转换回 float 是否给出相同的值

    假设在下面的代码中 float f1 double d1 static cast
  • 当显示对话框时淡出应用程序的所有其他窗口?

    如何在 Delphi 2009 中调暗 淡出应用程序的所有其他窗口 Form 有一个 AlphaBlend 属性 但它仅控制透明度级别 但如果我们能有这样的东西那就太好了 集中窗口 http www anappaday com downlo
  • 64位系统上编译32位系统-兼容性

    我有一台带有 64 位操作系统的 64 位机器 我如何使用 Visual Studio 2010 编译程序 以便它们在 32 位系统上运行 如果我在 64 位机器上安装 32 位操作系统 我认为这不会有问题 如果您正在谈论 NET 应用程序
  • Async InputQuery 不处理“取消”按钮

    我正在使用一个简单的调用TDialogServiceAsync InputQuery 使用单个输入 它只是忽略了Cancel按钮和窗口的X关闭按钮 But the Ok按钮工作正常 这是我的代码 uses FMX DialogService
  • 德尔福数据结构

    我可能需要在 Delphi 中做一个项目 并且是该领域的初学者 目前 我正在网上搜索资源 但由于资源站点太少而感到困惑 首先 你能给我一些好的网站 其中包含我迄今为止错过的 Delphi 资源吗 我也在 Delphi 中搜索数据结构 想知道
  • 我如何在Delphi中处理事件?

    例如 我有一个程序 在单击 Button1 后执行某些操作 如果没有 Button1Click 中的代码 如何处理按钮的 onclick 事件 我需要为 Button1 动态添加事件 unit Unit1 interface uses Wi
  • 如何从 cpp_dec_float_50 转换为 cpp_int?关于一般的浮点数?

    我的基本目标是减去两个应该相等的浮点数 考虑一下 float x 1 float a x 30 x 40 float b x 30 b x 40 std cout lt
  • OpenMP 与浮点范围并行

    我有以下程序 int main double sum 0 pragma omp parallel for reduction sum for double x 0 x lt 10 x 0 1 sum x x 当我编译它时 我收到错误inva
  • Delphi 返回 TList 时出错

    我做了一个非常简单的应用程序 但我有一个我真的无法理解的问题 看一下这个基本代码 unit Unit1 interface uses Winapi Windows Winapi Messages System SysUtils System
  • 不断断点?如何去除它们?

    我下载了一个用Delphi 2009制作的项目 这也是我使用的 但是有一个断点我无法删除 如果我尝试删除它 它会在程序执行后再次执行 我在其他调试器中遇到了这样的事情 称为硬件断点 但这并不重要 如何删除断点 EDIT Article ht
  • 在编译时检查堆栈使用情况

    有没有办法在 C 编译时知道并输出函数所需的堆栈大小 这是我想知道的 让我们看一些函数 void foo int a char c 5 char s do something return 编译这个函数时 我想知道调用它时会消耗多少堆栈空间
  • Delphi 2009 IDE结构视图折叠功能

    现在有谁知道折叠 Delphi 2009 IDE 结构视图中的所有项目吗 我不知道折叠所有项目 这使我很难从视图中找到我的课程 Thanks 选择根节点 类 并按数字键盘上的 除号 那会让一切崩溃 然后按数字键盘上的 加号 键 第一级将展开
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • 为什么 {$ifopt FINITEFLOAT ON} 无法编译?

    我有这样的构造 ifopt FINITEFLOAT ON message FINITEFLOAT option ON else message FINITEFLOAT option OFF endif 在我的源代码中 它不会编译 这一定是一
  • 将数据从一个数据集结构移动到另一个数据集结构的更快方法(在 TDatasetProvider 中)

    我有一个自定义的 TDatasetProvider 它允许为其提供的任何数据创建新字段 因此 假设您在原始数据集上获得了以下字段 客户ID Name Age 您需要使用显示位图在 DBGrid 上选择它 好吧 你可以 因为我的 DSP 可以
  • 调用 printf 系统子例程在汇编代码中输出整数错误[重复]

    这个问题在这里已经有答案了 来回 在windows7控制台窗口中运行gcc s2 asm 然后生成一个exe文件 运行a exe 然后崩溃 为什么 s2 asm 代码由以下源代码生成 int m m 1 iprint m s2 asm请参考
  • 如何从 VCL.Graphics 获取所有已注册的文件格式...但 64 位

    在我的 32 位应用程序中 我使用FindRegisteredPictureFileFormats 单元由 Cosmin Prund 提供 https stackoverflow com a 14677532 505088 gt 如何从图形
  • Delphi IDE导致CPU过热

    我正在使用 Delphi 7 但我已经尝试过 Delphi 2005 2010 版本 在所有这些新版本中 当 Delphi IDE 在屏幕上可见时 我的 CPU 利用率为 50 一个核心为 100 另一个核心为 宽松 当 IDE 最小化时

随机推荐